[Pkg-mysql-commits] [mariadb-5.5] 01/06: Imported Upstream version 5.5.43

Otto Kekäläinen ottok-guest at moszumanska.debian.org
Tue May 5 20:27:30 UTC 2015


This is an automated email from the git hooks/post-receive script.

ottok-guest pushed a commit to branch master
in repository mariadb-5.5.

commit 1d7e28f9cf5d6d1893adc453ba319ebd3a6f5ee2
Author: Otto Kekäläinen <otto at seravo.fi>
Date:   Sun May 3 23:09:46 2015 +0300

    Imported Upstream version 5.5.43
---
 .gitattributes                                     |     5 +
 .gitignore                                         |   232 +
 CMakeLists.txt                                     |    10 +-
 Docs/INFO_SRC                                      |    12 +-
 VERSION                                            |     2 +-
 client/mysql_upgrade.c                             |    83 +-
 client/mysqladmin.cc                               |     3 +
 client/mysqlcheck.c                                |   232 +-
 client/mysqltest.cc                                |     2 +-
 cmake/compile_flags.cmake                          |     8 +-
 cmake/cpack_rpm.cmake                              |     1 +
 cmake/cpack_source_ignore_files.cmake              |     5 +-
 cmake/info_macros.cmake.in                         |    47 +-
 cmake/info_src.cmake                               |     8 +-
 cmake/maintainer.cmake                             |     4 +-
 cmake/make_dist.cmake.in                           |    41 +-
 cmake/plugin.cmake                                 |     7 -
 debian/dist/Debian/mariadb-server-5.5.files.in     |     2 +-
 debian/dist/Ubuntu/mariadb-server-5.5.files.in     |     2 +-
 debian/dist/Ubuntu/mariadb-server-5.5.postinst     |     2 +-
 extra/yassl/README                                 |    10 +
 extra/yassl/examples/client/client.cpp             |    11 +-
 extra/yassl/examples/server/server.cpp             |    23 +-
 extra/yassl/include/openssl/ssl.h                  |     2 +-
 extra/yassl/include/yassl_int.hpp                  |    21 +
 extra/yassl/src/yassl_imp.cpp                      |    29 +-
 extra/yassl/src/yassl_int.cpp                      |    76 +
 extra/yassl/taocrypt/src/asn.cpp                   |     8 +-
 extra/yassl/taocrypt/src/integer.cpp               |    10 +-
 extra/yassl/testsuite/cipher-test.sh               |   130 +
 extra/yassl/testsuite/test.hpp                     |    42 +-
 include/myisamchk.h                                |     1 +
 include/mysql.h                                    |     7 +
 include/mysql.h.pp                                 |     3 +
 include/welcome_copyright_notice.h                 |     6 +-
 libmysql/CMakeLists.txt                            |     5 +
 libmysql/libmysql.c                                |    20 +-
 mysql-test/extra/binlog_tests/database.test        |    35 +
 mysql-test/include/ctype_utf8_ilseq.inc            |   114 +
 mysql-test/lib/My/SafeProcess/Base.pm              |     1 +
 mysql-test/lib/My/SafeProcess/safe_process.cc      |    21 +-
 mysql-test/lib/generate-ssl-certs.sh               |    30 +
 mysql-test/mysql-test-run.pl                       |    30 +-
 mysql-test/r/blackhole.result                      |     7 +
 mysql-test/r/create.result                         |     2 +-
 mysql-test/r/ctype_uca.result                      |   412 +
 mysql-test/r/ctype_uca_innodb.result               |   218 +
 mysql-test/r/ctype_utf8.result                     |   628 +
 mysql-test/r/derived.result                        |    12 +
 mysql-test/r/derived_opt.result                    |    40 +-
 mysql-test/r/derived_view.result                   |     6 +-
 mysql-test/r/error_simulation.result               |    21 +
 mysql-test/r/file_contents.result                  |     2 +-
 mysql-test/r/filesort_bad_i_s-7585.result          |     9 +
 mysql-test/r/frm_bad_row_type-7333.result          |    14 +
 mysql-test/r/func_gconcat.result                   |    12 +
 mysql-test/r/gis.result                            |    15 +-
 mysql-test/r/group_by.result                       |    10 +
 mysql-test/r/having.result                         |    31 +
 mysql-test/r/information_schema.result             |    15 +
 mysql-test/r/log_errchk.result                     |     5 +-
 mysql-test/r/log_tables_upgrade.result             |     7 +-
 mysql-test/r/multi_update.result                   |   194 +
 mysql-test/r/mysql_upgrade.result                  |    61 +-
 mysql-test/r/mysql_upgrade_ssl.result              |     7 +-
 mysql-test/r/mysql_upgrade_view.result             |   234 +
 mysql-test/r/mysqlcheck.result                     |    11 +-
 mysql-test/r/openssl_1.result                      |     4 +-
 mysql-test/r/processlist.result                    |     5 +-
 mysql-test/r/select_jcl6.result                    |     4 +-
 mysql-test/r/sp-destruct.result                    |     4 +
 mysql-test/r/sp-innodb.result                      |   108 +
 mysql-test/r/subselect_extra.result                |     2 +-
 mysql-test/r/subselect_extra_no_semijoin.result    |     2 +-
 mysql-test/r/subselect_sj.result                   |     9 +
 mysql-test/r/subselect_sj2.result                  |    84 +
 .../r/subselect_sj2_jcl6,innodb_plugin.rdiff       |     9 +
 mysql-test/r/subselect_sj2_jcl6.result             |    88 +-
 mysql-test/r/subselect_sj2_mat.result              |    84 +
 mysql-test/r/subselect_sj_jcl6.result              |     9 +
 mysql-test/r/table_elim.result                     |    32 +
 mysql-test/r/table_keyinfo-6838.result             |    12 +
 mysql-test/r/trigger-trans.result                  |    25 +
 mysql-test/r/uniques_crash-7912.result             |    11 +
 mysql-test/r/view.result                           |    17 +-
 mysql-test/std_data/bad_row_type.MYD               |     0
 mysql-test/std_data/bad_row_type.MYI               |   Bin 0 -> 1024 bytes
 mysql-test/std_data/bad_row_type.frm               |   Bin 0 -> 1760 bytes
 mysql-test/std_data/cacert.pem                     |    96 +-
 mysql-test/std_data/client-cert.pem                |   106 +-
 mysql-test/std_data/client-key.pem                 |    26 +-
 mysql-test/std_data/mysql_upgrade/event.MYD        |     0
 mysql-test/std_data/mysql_upgrade/event.MYI        |   Bin 0 -> 2048 bytes
 mysql-test/std_data/mysql_upgrade/event.frm        |   Bin 0 -> 10223 bytes
 mysql-test/std_data/mysql_upgrade/v1.frm           |    15 +
 mysql-test/std_data/mysql_upgrade/v1badcheck.frm   |    15 +
 mysql-test/std_data/mysql_upgrade/v2.frm           |    15 +
 mysql-test/std_data/mysql_upgrade/v3.frm           |    15 +
 mysql-test/std_data/mysql_upgrade/v4.frm           |    16 +
 mysql-test/std_data/server-cert.pem                |   111 +-
 mysql-test/std_data/server-key.pem                 |    26 +-
 mysql-test/std_data/server8k-cert.pem              |   185 +-
 mysql-test/std_data/server8k-key.pem               |   110 +-
 mysql-test/suite/binlog/r/binlog_database.result   |    69 +-
 .../r/temptable_uservar_disconnect-7938.result     |     8 +
 .../t/temptable_uservar_disconnect-7938.test       |    17 +
 mysql-test/suite/innodb/r/binlog_consistent.result |    11 +-
 mysql-test/suite/innodb/r/innodb-fk.result         |    32 +
 mysql-test/suite/innodb/r/innodb-mdev-7513.result  |   204 +
 mysql-test/suite/innodb/r/multi_repair-7404.result |    21 +
 mysql-test/suite/innodb/t/binlog_consistent.test   |    33 +-
 mysql-test/suite/innodb/t/innodb-fk.test           |    40 +
 mysql-test/suite/innodb/t/innodb-mdev-7513.test    |   220 +
 mysql-test/suite/innodb/t/innodb_corrupt_bit.test  |    10 +-
 mysql-test/suite/innodb/t/multi_repair-7404.test   |    18 +
 mysql-test/suite/percona/innodb_sys_index.result   |     3 -
 mysql-test/suite/percona/innodb_sys_index.test     |     1 -
 mysql-test/suite/plugins/r/server_audit.result     |   183 +-
 mysql-test/suite/plugins/t/server_audit.test       |    61 +-
 mysql-test/suite/rpl/r/rpl_drop_db_fail.result     |    16 +
 mysql-test/suite/rpl/r/rpl_special_charset.result  |     7 +
 .../rpl/r/show_status_stop_slave_race-7126.result  |     2 +
 mysql-test/suite/rpl/t/rpl_drop_db_fail.test       |    34 +
 mysql-test/suite/rpl/t/rpl_special_charset.opt     |     1 +
 mysql-test/suite/rpl/t/rpl_special_charset.test    |    25 +
 .../rpl/t/show_status_stop_slave_race-7126.test    |    12 +
 .../sys_vars/r/stored_program_cache_basic.result   |     6 +-
 .../sys_vars/r/stored_program_cache_func.result    |    52 +
 .../r/transaction_alloc_block_size_basic.result    |    28 +-
 .../r/transaction_prealloc_size_basic.result       |     8 +-
 .../sys_vars/t/stored_program_cache_func.test      |    43 +
 .../t/transaction_alloc_block_size_basic.test      |    14 +-
 .../t/transaction_prealloc_size_basic.test         |     6 +-
 mysql-test/t/blackhole.test                        |    10 +
 mysql-test/t/ctype_uca.test                        |    11 +
 mysql-test/t/ctype_uca_innodb.test                 |    25 +
 mysql-test/t/ctype_utf8.test                       |    20 +
 mysql-test/t/derived.test                          |    14 +-
 mysql-test/t/error_simulation-master.opt           |     1 +
 mysql-test/t/error_simulation.test                 |    36 +
 mysql-test/t/file_contents.test                    |     8 +-
 mysql-test/t/filesort_bad_i_s-7585.test            |    14 +
 mysql-test/t/frm_bad_row_type-7333.test            |    14 +
 mysql-test/t/func_gconcat.test                     |    18 +
 mysql-test/t/gis.test                              |    16 +-
 mysql-test/t/group_by.test                         |    11 +
 mysql-test/t/having.test                           |    34 +
 mysql-test/t/information_schema.test               |    17 +
 mysql-test/t/log_errchk.test                       |    15 +-
 mysql-test/t/multi_update.test                     |   206 +
 mysql-test/t/mysql_upgrade_view.test               |   132 +
 mysql-test/t/mysqladmin.test                       |     6 +
 mysql-test/t/mysqlcheck.test                       |    14 +-
 mysql-test/t/openssl_1.test                        |     4 +-
 mysql-test/t/processlist.test                      |    18 +-
 mysql-test/t/sp-destruct.test                      |     8 +
 mysql-test/t/sp-innodb.test                        |   117 +
 mysql-test/t/subselect_sj.test                     |    11 +
 mysql-test/t/subselect_sj2.test                    |    71 +
 mysql-test/t/table_elim.test                       |    31 +
 mysql-test/t/table_keyinfo-6838.test               |    18 +
 mysql-test/t/trigger-trans.test                    |    54 +
 mysql-test/t/uniques_crash-7912.test               |    26 +
 mysql-test/t/view.test                             |    32 +
 mysys/my_context.c                                 |    13 +-
 packaging/WiX/custom_ui.wxs                        |     4 +-
 plugin/server_audit/server_audit.c                 |   678 +-
 scripts/mysql_install_db.pl.in                     |     4 +-
 scripts/mysql_install_db.sh                        |     4 +-
 scripts/mysqld_safe.sh                             |    17 +-
 sql-bench/test-table-elimination.sh                |     2 +-
 sql-common/client.c                                |    17 +-
 sql/CMakeLists.txt                                 |    11 +-
 sql/field.h                                        |     8 +
 sql/handler.cc                                     |     4 +-
 sql/handler.h                                      |     9 +-
 sql/item.cc                                        |    28 +-
 sql/item.h                                         |    28 +-
 sql/item_func.cc                                   |    13 +-
 sql/item_geofunc.cc                                |     8 +
 sql/item_geofunc.h                                 |     2 +-
 sql/item_strfunc.h                                 |     1 -
 sql/lex.h                                          |     1 +
 sql/log.cc                                         |    37 +-
 sql/mysqld.cc                                      |    23 +-
 sql/opt_subselect.cc                               |    53 +-
 sql/opt_subselect.h                                |     2 +-
 sql/slave.cc                                       |    22 +-
 sql/sp.cc                                          |     6 +-
 sql/sql_admin.cc                                   |    39 +-
 sql/sql_base.cc                                    |    20 +-
 sql/sql_class.cc                                   |    31 +-
 sql/sql_class.h                                    |    11 +-
 sql/sql_db.cc                                      |     6 +-
 sql/sql_delete.cc                                  |     7 +-
 sql/sql_derived.cc                                 |     7 +-
 sql/sql_lex.cc                                     |    37 +-
 sql/sql_lex.h                                      |     2 +
 sql/sql_plugin.cc                                  |     2 +-
 sql/sql_select.cc                                  |    60 +-
 sql/sql_select.h                                   |    14 +-
 sql/sql_table.cc                                   |    23 +-
 sql/sql_truncate.cc                                |     8 +-
 sql/sql_update.cc                                  |     2 +-
 sql/sql_view.cc                                    |   159 +-
 sql/sql_view.h                                     |     2 +
 sql/sql_yacc.cc                                    | 35351 ++++++++++---------
 sql/sql_yacc.h                                     |  1138 +-
 sql/sql_yacc.yy                                    |    48 +-
 sql/structs.h                                      |     1 +
 sql/sys_vars.cc                                    |    10 +-
 sql/table.cc                                       |   110 +-
 sql/table.h                                        |    21 +-
 sql/udf_example.c                                  |     5 +-
 sql/uniques.cc                                     |    11 +-
 storage/federated/ha_federated.cc                  |     8 +-
 storage/innobase/dict/dict0dict.c                  |    22 +-
 storage/innobase/handler/ha_innodb.cc              |    29 +-
 storage/innobase/ibuf/ibuf0ibuf.c                  |     8 +
 storage/innobase/include/dict0dict.h               |     2 +-
 storage/innobase/rem/rem0rec.c                     |     2 +-
 storage/oqgraph/CMakeLists.txt                     |     1 +
 storage/tokudb/CMakeLists.txt                      |    26 +-
 storage/tokudb/README.md                           |    37 +-
 .../doc2/sysbench.update.ma10.tokudb754.loglog.png |   Bin 0 -> 7209 bytes
 .../tokudb/doc2/sysbench.update.ma10.tokudb754.png |   Bin 0 -> 7527 bytes
 .../doc2/sysbench.update.ma55.tokudb753.binlog.png |   Bin 0 -> 6723 bytes
 .../doc2/sysbench.update.ma55.tokudb753.loglog.png |   Bin 0 -> 7367 bytes
 .../tokudb/doc2/sysbench.update.ma55.tokudb753.png |   Bin 0 -> 7561 bytes
 .../doc2/sysbench.update.my55.tokudb753.loglog.png |   Bin 0 -> 6899 bytes
 .../doc2/sysbench.update.ps56.tokudb754.loglog.png |   Bin 0 -> 7008 bytes
 .../tokudb/doc2/sysbench.update.ps56.tokudb754.png |   Bin 0 -> 7434 bytes
 storage/tokudb/ft-index/buildheader/make_tdb.cc    |     8 +-
 storage/tokudb/ft-index/ft/ft-internal.h           |     3 +-
 storage/tokudb/ft-index/ft/ft-ops.cc               |    18 +-
 storage/tokudb/ft-index/ft/ft.cc                   |     5 +
 storage/tokudb/ft-index/ft/logger/recover.cc       |     4 +-
 storage/tokudb/ft-index/ft/txn/txn.cc              |     4 +-
 storage/tokudb/ft-index/ft/txn/txn.h               |     2 +-
 storage/tokudb/ft-index/locktree/lock_request.cc   |    32 +-
 storage/tokudb/ft-index/locktree/lock_request.h    |     6 +
 storage/tokudb/ft-index/locktree/locktree.cc       |     1 +
 .../tests/lock_request_start_retry_race.cc}        |   167 +-
 storage/tokudb/ft-index/src/tests/recover-5146.cc  |     2 +-
 storage/tokudb/ft-index/src/tests/test-prepare.cc  |     2 +-
 storage/tokudb/ft-index/src/tests/test-prepare2.cc |     2 +-
 storage/tokudb/ft-index/src/tests/test-prepare3.cc |     2 +-
 .../tokudb/ft-index/src/tests/test-xa-prepare.cc   |     2 +-
 storage/tokudb/ft-index/src/tests/test5092.cc      |     2 +-
 storage/tokudb/ft-index/src/tests/test_5015.cc     |     2 +-
 .../ft-index/src/tests/test_cursor_interrupt.cc    |     4 +-
 .../ft-index/src/tests/test_stress_hot_indexing.cc |     2 +-
 .../tests/test_txn_close_before_prepare_commit.cc  |     2 +-
 .../src/tests/threaded_stress_test_helpers.h       |     2 +-
 .../tokudb/ft-index/src/tests/xa-dirty-commit.cc   |     2 +-
 .../tokudb/ft-index/src/tests/xa-dirty-rollback.cc |     2 +-
 .../ft-index/src/tests/xa-txn-discard-abort.cc     |     2 +-
 .../ft-index/src/tests/xa-txn-discard-commit.cc    |     2 +-
 storage/tokudb/ft-index/src/ydb_cursor.cc          |     2 +-
 storage/tokudb/ft-index/src/ydb_row_lock.cc        |     1 +
 storage/tokudb/ft-index/src/ydb_txn.cc             |    21 +-
 storage/tokudb/ft-index/tools/CMakeLists.txt       |     2 +-
 storage/tokudb/ft-index/tools/tokuftdump.cc        |   473 +-
 storage/tokudb/ha_tokudb.cc                        |    88 +-
 storage/tokudb/ha_tokudb.h                         |     2 +-
 storage/tokudb/ha_tokudb_admin.cc                  |    86 +-
 storage/tokudb/ha_tokudb_alter_56.cc               |     4 +-
 storage/tokudb/hatoku_defines.h                    |     3 +
 storage/tokudb/hatoku_hton.cc                      |   152 +-
 storage/tokudb/hatoku_hton.h                       |    24 +-
 storage/tokudb/mysql-test/rpl/disabled.def         |     3 +
 .../rpl/r/rpl_tokudb_read_only_ff.result           |    14 +
 .../rpl/r/rpl_tokudb_read_only_ft.result           |    14 +
 .../rpl/r/rpl_tokudb_read_only_tf.result           |    14 +
 .../rpl/r/rpl_tokudb_read_only_tt.result           |    14 +
 .../rpl/t/rpl_tokudb_read_only_ff-slave.opt        |     1 +
 .../mysql-test/rpl/t/rpl_tokudb_read_only_ff.test  |    53 +
 .../rpl/t/rpl_tokudb_read_only_ft-slave.opt        |     1 +
 .../mysql-test/rpl/t/rpl_tokudb_read_only_ft.test  |    53 +
 .../rpl/t/rpl_tokudb_read_only_tf-slave.opt        |     1 +
 .../mysql-test/rpl/t/rpl_tokudb_read_only_tf.test  |    53 +
 .../rpl/t/rpl_tokudb_read_only_tt-slave.opt        |     1 +
 .../mysql-test/rpl/t/rpl_tokudb_read_only_tt.test  |    53 +
 .../tokudb/r/change_column_varchar.result          |     1 +
 .../r/information-schema-global-status.result      |     1 +
 .../mysql-test/tokudb/t/bf_create_select.test      |     8 +-
 .../tokudb/t/bf_create_select_hash_part.test       |     8 +-
 .../tokudb/t/bf_create_select_range_part.test      |     8 +-
 .../mysql-test/tokudb/t/bf_create_temp_select.test |     8 +-
 storage/tokudb/mysql-test/tokudb/t/bf_delete.test  |     7 +-
 .../mysql-test/tokudb/t/bf_insert_select.test      |     6 +-
 .../tokudb/t/bf_insert_select_dup_key.test         |     8 +-
 .../mysql-test/tokudb/t/bf_replace_select.test     |     7 +-
 .../mysql-test/tokudb/t/bf_select_hash_part.test   |     8 +-
 .../mysql-test/tokudb/t/bf_select_range_part.test  |     8 +-
 .../mysql-test/tokudb/t/change_column_varchar.test |     1 +
 .../mysql-test/tokudb_bugs/r/5733_tokudb.result    |     2 +-
 .../tokudb/mysql-test/tokudb_bugs/r/db762.result   |     7 +
 .../tokudb/mysql-test/tokudb_bugs/r/db766.result   |     7 +
 .../tokudb/mysql-test/tokudb_bugs/r/db768.result   |    10 +
 .../tokudb/mysql-test/tokudb_bugs/r/db771.result   |    11 +
 .../tokudb_bugs/r/db788-optimize-index-name.result |    16 +
 .../tokudb/mysql-test/tokudb_bugs/r/db801.result   |    18 +
 .../tokudb/mysql-test/tokudb_bugs/r/db817.result   |    33 +
 .../mysql-test/tokudb_bugs/r/memcache_dirty.result |    14 -
 .../mysql-test/tokudb_bugs/t/5585-master.opt       |     1 +
 .../mysql-test/tokudb_bugs/t/5733_tokudb.test      |    15 +-
 storage/tokudb/mysql-test/tokudb_bugs/t/db762.test |    13 +
 storage/tokudb/mysql-test/tokudb_bugs/t/db766.test |    12 +
 storage/tokudb/mysql-test/tokudb_bugs/t/db768.test |    12 +
 storage/tokudb/mysql-test/tokudb_bugs/t/db771.test |    13 +
 .../tokudb_bugs/t/db788-optimize-index-name.test   |    21 +
 storage/tokudb/mysql-test/tokudb_bugs/t/db801.test |    50 +
 storage/tokudb/mysql-test/tokudb_bugs/t/db817.test |    38 +
 .../mysql-test/tokudb_bugs/t/memcache_dirty.test   |    25 -
 storage/tokudb/scripts/common.sh                   |    24 +-
 storage/tokudb/scripts/make.mysql.bash             |    16 +-
 storage/tokudb/scripts/make.mysql.debug.env.bash   |    12 +-
 storage/tokudb/tokudb_card.h                       |    35 +-
 storage/tokudb/tokudb_update_fun.cc                |     2 +-
 storage/xtradb/CMakeLists.txt                      |     8 +
 storage/xtradb/dict/dict0dict.c                    |    51 +-
 storage/xtradb/handler/ha_innodb.cc                |    79 +-
 storage/xtradb/ibuf/ibuf0ibuf.c                    |     6 +
 storage/xtradb/include/btr0cur.ic                  |     4 +-
 storage/xtradb/include/dict0dict.h                 |    10 +-
 storage/xtradb/include/dict0dict.ic                |    12 +
 storage/xtradb/include/os0stacktrace.h             |     4 +-
 storage/xtradb/include/os0sync.h                   |     2 +-
 storage/xtradb/include/univ.i                      |     8 +-
 storage/xtradb/lock/lock0lock.c                    |     2 +-
 storage/xtradb/log/log0log.c                       |     2 +-
 storage/xtradb/log/log0online.c                    |     2 +-
 storage/xtradb/log/log0recv.c                      |     4 +-
 storage/xtradb/rem/rem0rec.c                       |     4 +-
 storage/xtradb/row/row0mysql.c                     |     9 +-
 storage/xtradb/srv/srv0start.c                     |    19 +-
 strings/ctype-uca.c                                |    20 +-
 support-files/build-tags                           |     4 +-
 support-files/mysql.5.5.41.spec                    |  2064 --
 support-files/mysql.server.sh                      |     3 +
 support-files/rpm/server-postin.sh                 |    53 +-
 support-files/rpm/server-postun.sh                 |     7 +
 vio/viosslfactories.c                              |     6 +-
 win/packaging/heidisql.cmake                       |     2 +-
 win/packaging/heidisql.wxi.in                      |    28 +-
 346 files changed, 27752 insertions(+), 21575 deletions(-)

diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..cdfedef
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,5 @@
+*.c     diff=cpp
+*.h     diff=cpp
+*.cc    diff=cpp
+*.ic    diff=cpp
+*.cpp   diff=cpp
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..fc97ceb
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,232 @@
+*-t
+*.a
+*.ctest
+*.o
+*.reject
+*.so
+*.so.*
+*.spec
+*~
+.*.swp
+*.ninja
+.ninja_*
+.gdb_history
+errmsg.sys
+typescript
+CMakeCache.txt
+CMakeFiles/
+CPackConfig.cmake
+CPackSourceConfig.cmake
+CTestTestfile.cmake
+Docs/INFO_BIN
+Docs/INFO_SRC
+Makefile
+TAGS
+Testing/
+VERSION.dep
+configure
+client/async_example
+client/mysql
+client/mysql_plugin
+client/mysql_upgrade
+client/mysqladmin
+client/mysqlbinlog
+client/mysqlcheck
+client/mysqldump
+client/mysqlimport
+client/mysqlshow
+client/mysqlslap
+client/mysqltest
+cmake_install.cmake
+dbug/*.r
+dbug/factorial
+dbug/tests
+dbug/user.ps
+dbug/user.t
+extra/comp_err
+extra/innochecksum
+extra/jemalloc/build/
+extra/jemalloc/tmp/
+extra/my_print_defaults
+extra/mysql_waitpid
+extra/perror
+extra/replace
+extra/resolve_stack_dump
+extra/resolveip
+import_executables.cmake
+include/*.h.tmp
+include/config.h
+include/my_config.h
+include/mysql_version.h
+include/mysqld_ername.h
+include/mysqld_error.h
+include/sql_state.h
+info_macros.cmake
+libmysql*/libmysql*_exports_file.cc
+libmysql*/merge_archives_mysql*.cmake
+libmysql*/mysql*_depends.c
+libmysql/libmysql_versions.ld
+libmysqld/examples/mysql_client_test_embedded
+libmysqld/examples/mysql_embedded
+libmysqld/examples/mysqltest_embedded
+make_dist.cmake
+mariadb-*.*.*.tar.gz
+mariadb-*.*.*/
+mysql-test/lib/My/SafeProcess/my_safe_process
+mysql-test/mtr
+mysql-test/mysql-test-run
+mysql-test/var
+mysys/thr_lock
+mysys/thr_timer
+packaging/rpm-oel/mysql.spec
+packaging/rpm-uln/mysql.10.0.11.spec
+packaging/solaris/postinstall-solaris
+pcre/config.h
+pcre/pcre*test.sh
+pcre/pcre.h
+pcre/pcre_chartables.c
+pcre/pcregrep
+pcre/pcretest
+pcre/test*grep
+scripts/comp_sql
+scripts/make_binary_distribution
+scripts/msql2mysql
+scripts/mysql_config
+scripts/mysql_config.pl
+scripts/mysql_convert_table_format
+scripts/mysql_find_rows
+scripts/mysql_fix_extensions
+scripts/mysql_fix_privilege_tables.sql
+scripts/mysql_fix_privilege_tables_sql.c
+scripts/mysql_install_db
+scripts/mysql_secure_installation
+scripts/mysql_setpermission
+scripts/mysql_zap
+scripts/mysqlaccess
+scripts/mysqlbug
+scripts/mysqld_multi
+scripts/mysqld_safe
+scripts/mysqldumpslow
+scripts/mysqlhotcopy
+scripts/mytop
+scripts/wsrep_sst_common
+scripts/wsrep_sst_mysqldump
+scripts/wsrep_sst_rsync
+scripts/wsrep_sst_xtrabackup
+scripts/wsrep_sst_xtrabackup-v2
+sql-bench/bench-count-distinct
+sql-bench/bench-init.pl
+sql-bench/compare-results
+sql-bench/copy-db
+sql-bench/crash-me
+sql-bench/graph-compare-results
+sql-bench/innotest1
+sql-bench/innotest1a
+sql-bench/innotest1b
+sql-bench/innotest2
+sql-bench/innotest2a
+sql-bench/innotest2b
+sql-bench/run-all-tests
+sql-bench/server-cfg
+sql-bench/test-ATIS
+sql-bench/test-alter-table
+sql-bench/test-big-tables
+sql-bench/test-connect
+sql-bench/test-create
+sql-bench/test-insert
+sql-bench/test-select
+sql-bench/test-table-elimination
+sql-bench/test-transactions
+sql-bench/test-wisconsin
+sql/gen_lex_hash
+sql/lex_hash.h
+sql/mysql_tzinfo_to_sql
+sql/mysqld
+sql/sql_builtin.cc
+sql/sql_yacc.cc
+sql/sql_yacc.h
+storage/heap/hp_test1
+storage/heap/hp_test2
+storage/maria/aria_chk
+storage/maria/aria_dump_log
+storage/maria/aria_ftdump
+storage/maria/aria_pack
+storage/maria/aria_read_log
+storage/maria/ma_rt_test
+storage/maria/ma_sp_test
+storage/maria/ma_test1
+storage/maria/ma_test2
+storage/maria/ma_test3
+storage/myisam/mi_test1
+storage/myisam/mi_test2
+storage/myisam/mi_test3
+storage/myisam/myisam_ftdump
+storage/myisam/myisamchk
+storage/myisam/myisamlog
+storage/myisam/myisampack
+storage/myisam/rt_test
+storage/myisam/sp_test
+storage/perfschema/gen_pfs_lex_token
+storage/perfschema/pfs_lex_token.h
+storage/tokudb/ft-index/buildheader/db.h
+storage/tokudb/ft-index/buildheader/make_tdb
+storage/tokudb/ft-index/buildheader/runcat.sh
+storage/tokudb/ft-index/ft/log_code.cc
+storage/tokudb/ft-index/ft/log_header.h
+storage/tokudb/ft-index/ft/log_print.cc
+storage/tokudb/ft-index/ft/logformat
+storage/tokudb/ft-index/ft/ftverify
+storage/tokudb/ft-index/ft/tdb-recover
+storage/tokudb/ft-index/ft/tdb_logprint
+storage/tokudb/ft-index/ft/tokuftdump
+storage/tokudb/ft-index/portability/merge_archives_tokuportability_static.cmake
+storage/tokudb/ft-index/portability/toku_config.h
+storage/tokudb/ft-index/portability/tokuportability_static_depends.cc
+storage/tokudb/ft-index/src/merge_archives_tokufractaltree_static.cmake
+storage/tokudb/ft-index/src/tokufractaltree_static_depends.cc
+storage/tokudb/ft-index/toku_include/toku_config.h
+storage/tokudb/ft-index/tools/ba_replay
+storage/tokudb/ft-index/tools/ftverify
+storage/tokudb/ft-index/tools/tdb-recover
+storage/tokudb/ft-index/tools/tdb_logprint
+storage/tokudb/ft-index/tools/tokudb_dump
+storage/tokudb/ft-index/tools/tokudb_gen
+storage/tokudb/ft-index/tools/tokudb_load
+storage/tokudb/ft-index/tools/tokuftdump
+storage/tokudb/ft-index/ft/ftverify
+storage/tokudb/ft-index/ft/tdb-recover
+storage/tokudb/ft-index/ft/tdb_logprint
+storage/tokudb/ft-index/ft/tokuftdump
+storage/tokudb/ft-index/xz/
+support-files/MySQL-shared-compat.spec
+support-files/binary-configure
+support-files/config.huge.ini
+support-files/config.medium.ini
+support-files/config.small.ini
+support-files/mariadb.pc
+support-files/my-huge.cnf
+support-files/my-innodb-heavy-4G.cnf
+support-files/my-large.cnf
+support-files/my-medium.cnf
+support-files/my-small.cnf
+support-files/mysql-log-rotate
+support-files/mysql.10.0.11.spec
+support-files/mysql.server
+support-files/mysql.spec
+support-files/mysqld_multi.server
+support-files/wsrep.cnf
+support-files/wsrep_notify
+tags
+tests/async_queries
+tests/bug25714
+tests/mysql_client_test
+storage/mroonga/config.sh
+storage/mroonga/mrn_version.h
+storage/mroonga/data/install.sql
+storage/mroonga/vendor/groonga/config.h
+storage/mroonga/vendor/groonga/config.sh
+storage/mroonga/vendor/groonga/groonga.pc
+storage/mroonga/vendor/groonga/src/grnslap
+storage/mroonga/vendor/groonga/src/groonga
+storage/mroonga/vendor/groonga/src/groonga-benchmark
+storage/mroonga/vendor/groonga/src/suggest/groonga-suggest-create-dataset
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6bb269a..c1ce1c5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -350,6 +350,11 @@ MYSQL_CHECK_READLINE()
 
 CHECK_JEMALLOC()
 
+IF(CMAKE_CROSSCOMPILING)
+  SET(IMPORT_EXECUTABLES "IMPORTFILE-NOTFOUND" CACHE FILEPATH "Path to import_executables.cmake from a native build")
+  INCLUDE(${IMPORT_EXECUTABLES})
+ENDIF()
+
 #
 # Setup maintainer mode options by the end. Platform checks are
 # not run with the warning options as to not perturb fragile checks
@@ -428,7 +433,8 @@ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc.in
     ${CMAKE_BINARY_DIR}/sql/sql_builtin.cc)
 CONFIGURE_FILE(
-    ${CMAKE_SOURCE_DIR}/cmake/info_macros.cmake.in ${CMAKE_BINARY_DIR}/info_macros.cmake @ONLY)
+    ${CMAKE_SOURCE_DIR}/cmake/info_macros.cmake.in
+    ${CMAKE_BINARY_DIR}/info_macros.cmake @ONLY)
 
 IF(DEB)
   CONFIGURE_FILE(
@@ -440,7 +446,7 @@ ENDIF(DEB)
 INCLUDE(${CMAKE_BINARY_DIR}/info_macros.cmake)
 # Source: This can be done during the cmake phase, all information is
 # available, but should be repeated on each "make" just in case someone
-# does "cmake ; make ; bzr pull ; make".
+# does "cmake ; make ; git pull ; make".
 CREATE_INFO_SRC(${CMAKE_BINARY_DIR}/Docs)
 ADD_CUSTOM_TARGET(INFO_SRC ALL
   COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/info_src.cmake
diff --git a/Docs/INFO_SRC b/Docs/INFO_SRC
index 75ba1db..4c84d5d 100644
--- a/Docs/INFO_SRC
+++ b/Docs/INFO_SRC
@@ -1,8 +1,8 @@
-revision-id: sergii at pisem.net-20141219104403-wo7bvoif9zii3ie5
-date: 2014-12-19 11:44:03 +0100
-build-date: 2014-12-19 11:57:35 +0100
-revno: 4393
-branch-nick: 5.5
+commit: 4c87f727734955f9e4a0ffde25aae4d43ec0b2a5
+date: 2015-04-29 16:24:52 +0200
+build-date: 2015-04-29 20:55:40 +0200 
+short: 4c87f72
+branch: HEAD
 
 
-MySQL source 5.5.41
+MySQL source 5.5.43
diff --git a/VERSION b/VERSION
index 8d4846b..dbfc5f8 100644
--- a/VERSION
+++ b/VERSION
@@ -1,4 +1,4 @@
 MYSQL_VERSION_MAJOR=5
 MYSQL_VERSION_MINOR=5
-MYSQL_VERSION_PATCH=41
+MYSQL_VERSION_PATCH=43
 MYSQL_VERSION_EXTRA=
diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c
index 5fb3b13..d513d5d 100644
--- a/client/mysql_upgrade.c
+++ b/client/mysql_upgrade.c
@@ -36,6 +36,8 @@
 # endif
 #endif
 
+static int phase = 1;
+static int phases_total = 4;
 static char mysql_path[FN_REFLEN];
 static char mysqlcheck_path[FN_REFLEN];
 
@@ -738,9 +740,16 @@ static void print_conn_args(const char *tool_name)
 
 static int run_mysqlcheck_upgrade(void)
 {
-  verbose("Phase 2/3: Checking and upgrading tables");
+  int retch;
+  if (opt_systables_only)
+  {
+    verbose("Phase %d/%d: Checking and upgrading tables... Skipped",
+            phase++, phases_total);
+    return 0;
+  }
+  verbose("Phase %d/%d: Checking and upgrading tables", phase++, phases_total);
   print_conn_args("mysqlcheck");
-  return run_tool(mysqlcheck_path,
+  retch= run_tool(mysqlcheck_path,
                   NULL, /* Send output from mysqlcheck directly to screen */
                   "--no-defaults",
                   ds_args.str,
@@ -752,12 +761,72 @@ static int run_mysqlcheck_upgrade(void)
                   opt_write_binlog ? "--write-binlog" : "--skip-write-binlog",
                   "2>&1",
                   NULL);
+  return retch;
 }
 
+#define EVENTS_STRUCT_LEN 7000
+
+static my_bool is_mysql()
+{
+  my_bool ret= TRUE;
+  DYNAMIC_STRING ds_events_struct;
+
+  if (init_dynamic_string(&ds_events_struct, NULL,
+                          EVENTS_STRUCT_LEN, EVENTS_STRUCT_LEN))
+    die("Out of memory");
+
+  if (run_query("show create table mysql.event",
+                &ds_events_struct, FALSE) ||
+      strstr(ds_events_struct.str, "IGNORE_BAD_TABLE_OPTIONS") != NULL)
+    ret= FALSE;
+  else
+    verbose("MySQL upgrade detected");
+
+  dynstr_free(&ds_events_struct);
+  return(ret);
+}
+
+static int run_mysqlcheck_views(void)
+{
+  const char *upgrade_views="--process-views=YES";
+  if (is_mysql())
+  {
+    upgrade_views="--process-views=UPGRADE_FROM_MYSQL";
+    verbose("Phase %d/%d: Fixing views from mysql", phase++, phases_total);
+  }
+  else if (opt_systables_only)
+  {
+    verbose("Phase %d/%d: Fixing views... Skipped", phase++, phases_total);
+    return 0;
+  }
+  else
+    verbose("Phase %d/%d: Fixing views", phase++, phases_total);
+
+  print_conn_args("mysqlcheck");
+  return run_tool(mysqlcheck_path,
+                  NULL, /* Send output from mysqlcheck directly to screen */
+                  "--no-defaults",
+                  ds_args.str,
+                  "--all-databases", "--repair",
+                  upgrade_views,
+                  "--skip-process-tables",
+                  opt_verbose ? "--verbose": "",
+                  opt_silent ? "--silent": "",
+                  opt_write_binlog ? "--write-binlog" : "--skip-write-binlog",
+                  "2>&1",
+                  NULL);
+}
 
 static int run_mysqlcheck_fixnames(void)
 {
-  verbose("Phase 1/3: Fixing table and database names");
+  if (opt_systables_only)
+  {
+    verbose("Phase %d/%d: Fixing table and database names ... Skipped",
+            phase++, phases_total);
+    return 0;
+  }
+  verbose("Phase %d/%d: Fixing table and database names",
+          phase++, phases_total);
   print_conn_args("mysqlcheck");
   return run_tool(mysqlcheck_path,
                   NULL, /* Send output from mysqlcheck directly to screen */
@@ -838,7 +907,8 @@ static int run_sql_fix_privilege_tables(void)
   if (init_dynamic_string(&ds_result, "", 512, 512))
     die("Out of memory");
 
-  verbose("Phase 3/3: Running 'mysql_fix_privilege_tables'...");
+  verbose("Phase %d/%d: Running 'mysql_fix_privilege_tables'",
+          phase++, phases_total);
   run_query(mysql_fix_privilege_tables,
             &ds_result, /* Collect result */
             TRUE);
@@ -1000,9 +1070,8 @@ int main(int argc, char **argv)
   /*
     Run "mysqlcheck" and "mysql_fix_privilege_tables.sql"
   */
-  if ((!opt_systables_only &&
-       (run_mysqlcheck_fixnames() || run_mysqlcheck_upgrade())) ||
-      run_sql_fix_privilege_tables())
+  if (run_mysqlcheck_views() || run_mysqlcheck_fixnames() ||
+      run_mysqlcheck_upgrade() || run_sql_fix_privilege_tables())
   {
     /*
       The upgrade failed to complete in some way or another,
diff --git a/client/mysqladmin.cc b/client/mysqladmin.cc
index 57feed1..10026cf 100644
--- a/client/mysqladmin.cc
+++ b/client/mysqladmin.cc
@@ -1198,6 +1198,9 @@ static int execute_commands(MYSQL *mysql,int argc, char **argv)
 static char **mask_password(int argc, char ***argv)
 {
   char **temp_argv;
+  if (!argc)
+    return NULL;
+
   temp_argv= (char **)(my_malloc(sizeof(char *) * argc, MYF(MY_WME)));
   argc--;
   while (argc > 0)
diff --git a/client/mysqlcheck.c b/client/mysqlcheck.c
index 11a88c8..021b89e 100644
--- a/client/mysqlcheck.c
+++ b/client/mysqlcheck.c
@@ -18,7 +18,7 @@
 
 /* By Jani Tolonen, 2001-04-20, MySQL Development Team */
 
-#define CHECK_VERSION "2.7.1"
+#define CHECK_VERSION "2.7.2-MariaDB"
 
 #include "client_priv.h"
 #include <m_ctype.h>
@@ -42,7 +42,8 @@ static my_bool opt_alldbs = 0, opt_check_only_changed = 0, opt_extended = 0,
                opt_medium_check = 0, opt_quick = 0, opt_all_in_1 = 0,
                opt_silent = 0, opt_auto_repair = 0, ignore_errors = 0,
                tty_password= 0, opt_frm= 0, debug_info_flag= 0, debug_check_flag= 0,
-               opt_fix_table_names= 0, opt_fix_db_names= 0, opt_upgrade= 0;
+               opt_fix_table_names= 0, opt_fix_db_names= 0, opt_upgrade= 0,
+               opt_do_tables= 1;
 static my_bool opt_write_binlog= 1, opt_flush_tables= 0;
 static uint verbose = 0, opt_mysql_port=0;
 static int my_end_arg;
@@ -55,7 +56,17 @@ DYNAMIC_ARRAY tables4repair, tables4rebuild, alter_table_cmds;
 static char *shared_memory_base_name=0;
 static uint opt_protocol=0;
 
-enum operations { DO_CHECK=1, DO_REPAIR, DO_ANALYZE, DO_OPTIMIZE, DO_UPGRADE };
+enum operations { DO_CHECK=1, DO_REPAIR, DO_ANALYZE, DO_OPTIMIZE, DO_FIX_NAMES };
+const char *operation_name[]=
+{
+  "???", "check", "repair", "analyze", "optimize", "fix names"
+};
+
+typedef enum { DO_VIEWS_NO, DO_VIEWS_YES, DO_VIEWS_FROM_MYSQL } enum_do_views;
+const char *do_views_opts[]= {"NO", "YES", "UPGRADE_FROM_MYSQL", NullS};
+TYPELIB do_views_typelib= { array_elements(do_views_opts) - 1, "",
+    do_views_opts, NULL };
+static ulong opt_do_views= DO_VIEWS_NO;
 
 static struct my_option my_long_options[] =
 {
@@ -196,6 +207,14 @@ static struct my_option my_long_options[] =
    NO_ARG, 0, 0, 0, 0, 0, 0},
   {"version", 'V', "Output version information and exit.", 0, 0, 0, GET_NO_ARG,
    NO_ARG, 0, 0, 0, 0, 0, 0},
+  {"process-views", 0,
+   "Perform the requested operation (check or repair) on views. "
+   "One of: NO, YES (correct the checksum, if necessary, add the "
+   "mariadb-version field), UPGRADE_FROM_MYSQL (same as YES and toggle "
+   "the algorithm MERGE<->TEMPTABLE.", &opt_do_views, &opt_do_views,
+   &do_views_typelib, GET_ENUM, OPT_ARG, 0, 0, 0, 0, 0, 0},
+  {"process-tables", 0, "Perform the requested operation on tables.",
+   &opt_do_tables, &opt_do_tables, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
   {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
 };
 
@@ -212,7 +231,7 @@ static int process_selected_tables(char *db, char **table_names, int tables);
 static int process_all_tables_in_db(char *database);
 static int process_one_db(char *database);
 static int use_db(char *database);
-static int handle_request_for_tables(char *tables, uint length);
+static int handle_request_for_tables(char *tables, size_t length, my_bool view);
 static int dbConnect(char *host, char *user,char *passwd);
 static void dbDisconnect(char *host);
 static void DBerror(MYSQL *mysql, const char *when);
@@ -287,11 +306,11 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
     what_to_do = DO_OPTIMIZE;
     break;
   case OPT_FIX_DB_NAMES:
-    what_to_do= DO_UPGRADE;
+    what_to_do= DO_FIX_NAMES;
     opt_databases= 1;
     break;
   case OPT_FIX_TABLE_NAMES:
-    what_to_do= DO_UPGRADE;
+    what_to_do= DO_FIX_NAMES;
     break;
   case 'p':
     if (argument == disabled_my_option)
@@ -332,7 +351,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
   case 'v':
     verbose++;
     break;
-  case 'V': print_version(); exit(0);
+  case 'V':
+    print_version(); exit(0);
+    break;
   case OPT_MYSQL_PROTOCOL:
     opt_protocol= find_type_or_exit(argument, &sql_protocol_typelib,
                                     opt->name);
@@ -341,7 +362,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
 
   if (orig_what_to_do && (what_to_do != orig_what_to_do))
   {
-    fprintf(stderr, "Error:  %s doesn't support multiple contradicting commands.\n",
+    fprintf(stderr, "Error: %s doesn't support multiple contradicting commands.\n",
             my_progname);
     DBUG_RETURN(1);
   }
@@ -363,6 +384,12 @@ static int get_options(int *argc, char ***argv)
   if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
     exit(ho_error);
 
+  if (what_to_do == DO_REPAIR && !opt_do_views && !opt_do_tables)
+  {
+    fprintf(stderr, "Error: Nothing to repair when both "
+            "--process-tables=NO and --process-views=NO\n");
+    exit(1);
+  }
   if (!what_to_do)
   {
     size_t pnlen= strlen(my_progname);
@@ -379,6 +406,13 @@ static int get_options(int *argc, char ***argv)
       what_to_do = DO_CHECK;
   }
 
+  if (opt_do_views && what_to_do != DO_REPAIR && what_to_do != DO_CHECK)
+  {
+    fprintf(stderr, "Error: %s doesn't support %s for views.\n",
+            my_progname, operation_name[what_to_do]);
+    exit(1);
+  }
+
   /*
     If there's no --default-character-set option given with
     --fix-table-name or --fix-db-name set the default character set to "utf8".
@@ -463,13 +497,41 @@ static int process_databases(char **db_names)
 } /* process_databases */
 
 
+/* returns: -1 for error, 1 for view, 0 for table */
+static int is_view(const char *table)
+{
+  char query[1024];
+  MYSQL_RES *res;
+  MYSQL_FIELD *field;
+  int view;
+  DBUG_ENTER("is_view");
+
+  my_snprintf(query, sizeof(query), "SHOW CREATE TABLE %`s", table);
+  if (mysql_query(sock, query))
+  {
+    fprintf(stderr, "Failed to %s\n", query);
+    fprintf(stderr, "Error: %s\n", mysql_error(sock));
+    my_free(query);
+    DBUG_RETURN(-1);
+  }
+  res= mysql_store_result(sock);
+  field= mysql_fetch_field(res);
+  view= (strcmp(field->name,"View") == 0) ? 1 : 0;
+  mysql_free_result(res);
+
+  DBUG_RETURN(view);
+}
+
 static int process_selected_tables(char *db, char **table_names, int tables)
 {
+  int view;
+  char *table;
+  uint table_len;
   DBUG_ENTER("process_selected_tables");
 
   if (use_db(db))
     DBUG_RETURN(1);
-  if (opt_all_in_1 && what_to_do != DO_UPGRADE)
+  if (opt_all_in_1 && what_to_do != DO_FIX_NAMES)
   {
     /* 
       We need table list in form `a`, `b`, `c`
@@ -480,6 +542,15 @@ static int process_selected_tables(char *db, char **table_names, int tables)
     size_t tot_length= 0;
     int             i= 0;
 
+    if (opt_do_tables && opt_do_views)
+    {
+      fprintf(stderr, "Error: %s cannot process both tables and views "
+                      "in one command (--process-tables=YES "
+                      "--process-views=YES --all-in-1).\n",
+              my_progname);
+      DBUG_RETURN(1);
+    }
+
     for (i = 0; i < tables; i++)
       tot_length+= fixed_name_length(*(table_names + i)) + 2;
 
@@ -494,12 +565,20 @@ static int process_selected_tables(char *db, char **table_names, int tables)
       *end++= ',';
     }
     *--end = 0;
-    handle_request_for_tables(table_names_comma_sep + 1, (uint) (tot_length - 1));
+    handle_request_for_tables(table_names_comma_sep + 1, tot_length - 1,
+                              opt_do_views != 0);
     my_free(table_names_comma_sep);
   }
   else
     for (; tables > 0; tables--, table_names++)
-      handle_request_for_tables(*table_names, fixed_name_length(*table_names));
+    {
+      table= *table_names;
+      table_len= fixed_name_length(*table_names);
+      view= is_view(table);
+      if (view < 0)
+        continue;
+      handle_request_for_tables(table, table_len, (view == 1));
+    }
   DBUG_RETURN(0);
 } /* process_selected_tables */
 
@@ -514,9 +593,6 @@ static uint fixed_name_length(const char *name)
   {
     if (*p == '`')
       extra_length++;
-    else if (*p == '.')
-      extra_length+= 2;
-
   }
   DBUG_RETURN((uint) ((p - name) + extra_length));
 }
@@ -530,11 +606,6 @@ static char *fix_table_name(char *dest, char *src)
   for (; *src; src++)
   {
     switch (*src) {
-    case '.':            /* add backticks around '.' */
-      *dest++= '`';
-      *dest++= '.';
-      *dest++= '`';
-      break;
     case '`':            /* escape backtick character */
       *dest++= '`';
       /* fall through */
@@ -554,6 +625,7 @@ static int process_all_tables_in_db(char *database)
   MYSQL_ROW row;
   uint num_columns;
   my_bool system_database= 0;
+  my_bool view= FALSE;
   DBUG_ENTER("process_all_tables_in_db");
 
   if (use_db(database))
@@ -572,7 +644,7 @@ static int process_all_tables_in_db(char *database)
 
   num_columns= mysql_num_fields(res);
 
-  if (opt_all_in_1 && what_to_do != DO_UPGRADE)
+  if (opt_all_in_1 && what_to_do != DO_FIX_NAMES)
   {
     /*
       We need table list in form `a`, `b`, `c`
@@ -583,8 +655,17 @@ static int process_all_tables_in_db(char *database)
     char *tables, *end;
     uint tot_length = 0;
 
+    char *views, *views_end;
+    uint tot_views_length = 0;
+
     while ((row = mysql_fetch_row(res)))
-      tot_length+= fixed_name_length(row[0]) + 2;
+    {
+      if ((num_columns == 2) && (strcmp(row[1], "VIEW") == 0) &&
+          opt_do_views)
+        tot_views_length+= fixed_name_length(row[0]) + 2;
+      else if (opt_do_tables)
+        tot_length+= fixed_name_length(row[0]) + 2;
+    }
     mysql_data_seek(res, 0);
 
     if (!(tables=(char *) my_malloc(sizeof(char)*tot_length+4, MYF(MY_WME))))
@@ -592,32 +673,62 @@ static int process_all_tables_in_db(char *database)
       mysql_free_result(res);
       DBUG_RETURN(1);
     }
-    for (end = tables + 1; (row = mysql_fetch_row(res)) ;)
+    if (!(views=(char *) my_malloc(sizeof(char)*tot_views_length+4, MYF(MY_WME))))
     {
-      if ((num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
-        continue;
+      my_free(tables);
+      mysql_free_result(res);
+      DBUG_RETURN(1);
+    }
 
-      end= fix_table_name(end, row[0]);
-      *end++= ',';
+    for (end = tables + 1, views_end= views + 1; (row = mysql_fetch_row(res)) ;)
+    {
+      if ((num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
+      {
+        if (!opt_do_views)
+          continue;
+        views_end= fix_table_name(views_end, row[0]);
+        *views_end++= ',';
+      }
+      else
+      {
+        if (!opt_do_tables)
+          continue;
+        end= fix_table_name(end, row[0]);
+        *end++= ',';
+      }
     }
     *--end = 0;
+    *--views_end = 0;
     if (tot_length)
-      handle_request_for_tables(tables + 1, tot_length - 1);
+      handle_request_for_tables(tables + 1, tot_length - 1, FALSE);
+    if (tot_views_length)
+      handle_request_for_tables(views + 1, tot_views_length - 1, TRUE);
     my_free(tables);
+    my_free(views);
   }
   else
   {
     while ((row = mysql_fetch_row(res)))
     {
       /* Skip views if we don't perform renaming. */
-      if ((what_to_do != DO_UPGRADE) && (num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
-        continue;
+      if ((what_to_do != DO_FIX_NAMES) && (num_columns == 2) && (strcmp(row[1], "VIEW") == 0))
+      {
+        if (!opt_do_views)
+          continue;
+        view= TRUE;
+      }
+      else
+      {
+        if (!opt_do_tables)
+          continue;
+        view= FALSE;
+      }
       if (system_database &&
           (!strcmp(row[0], "general_log") ||
            !strcmp(row[0], "slow_log")))
         continue;                               /* Skip logging tables */
 
-      handle_request_for_tables(row[0], fixed_name_length(row[0]));
+      handle_request_for_tables(row[0], fixed_name_length(row[0]), view);
     }
   }
   mysql_free_result(res);
@@ -696,7 +807,7 @@ static int process_one_db(char *database)
 
   if (verbose)
     puts(database);
-  if (what_to_do == DO_UPGRADE)
+  if (what_to_do == DO_FIX_NAMES)
   {
     int rc= 0;
     if (opt_fix_db_names && !strncmp(database,"#mysql50#", 9))
@@ -735,15 +846,17 @@ static int disable_binlog()
   return run_query(stmt);
 }
 
-static int handle_request_for_tables(char *tables, uint length)
+static int handle_request_for_tables(char *tables, size_t length, my_bool view)
 {
   char *query, *end, options[100], message[100];
   char table_name_buff[NAME_CHAR_LEN*2*2+1], *table_name;
   uint query_length= 0;
   const char *op = 0;
+  const char *tab_view;
   DBUG_ENTER("handle_request_for_tables");
 
   options[0] = 0;
+  tab_view= view ? " VIEW " : " TABLE ";
   end = options;
   switch (what_to_do) {
   case DO_CHECK:
@@ -756,18 +869,28 @@ static int handle_request_for_tables(char *tables, uint length)
     if (opt_upgrade)            end = strmov(end, " FOR UPGRADE");
     break;
   case DO_REPAIR:
-    op= (opt_write_binlog) ? "REPAIR" : "REPAIR NO_WRITE_TO_BINLOG";
-    if (opt_quick)              end = strmov(end, " QUICK");
-    if (opt_extended)           end = strmov(end, " EXTENDED");
-    if (opt_frm)                end = strmov(end, " USE_FRM");
+    op= opt_write_binlog ?  "REPAIR" : "REPAIR NO_WRITE_TO_BINLOG";
+    if (view)
+    {
+      if (opt_do_views == DO_VIEWS_FROM_MYSQL) end = strmov(end, " FROM MYSQL");
+    }
+    else
+    {
+      if (opt_quick)    end = strmov(end, " QUICK");
+      if (opt_extended) end = strmov(end, " EXTENDED");
+      if (opt_frm)      end = strmov(end, " USE_FRM");
+    }
     break;
   case DO_ANALYZE:
+    DBUG_ASSERT(!view);
     op= (opt_write_binlog) ? "ANALYZE" : "ANALYZE NO_WRITE_TO_BINLOG";
     break;
   case DO_OPTIMIZE:
+    DBUG_ASSERT(!view);
     op= (opt_write_binlog) ? "OPTIMIZE" : "OPTIMIZE NO_WRITE_TO_BINLOG";
     break;
-  case DO_UPGRADE:
+  case DO_FIX_NAMES:
+    DBUG_ASSERT(!view);
     DBUG_RETURN(fix_table_storage_name(tables));
   }
 
@@ -776,14 +899,15 @@ static int handle_request_for_tables(char *tables, uint length)
   if (opt_all_in_1)
   {
     /* No backticks here as we added them before */
-    query_length= sprintf(query, "%s TABLE %s %s", op, tables, options);
+    query_length= sprintf(query, "%s%s%s %s", op,
+                          tab_view, tables, options);
     table_name= tables;
   }
   else
   {
     char *ptr, *org;
 
-    org= ptr= strmov(strmov(query, op), " TABLE ");
+    org= ptr= strmov(strmov(query, op), tab_view);
     ptr= fix_table_name(ptr, tables);
     strmake(table_name_buff, org, min((int) sizeof(table_name_buff)-1,
                                       (int) (ptr - org)));
@@ -793,7 +917,7 @@ static int handle_request_for_tables(char *tables, uint length)
   }
   if (mysql_real_query(sock, query, query_length))
   {
-    sprintf(message, "when executing '%s TABLE ... %s'", op, options);
+    sprintf(message, "when executing '%s%s... %s'", op, tab_view, options);
     DBerror(sock, message);
     my_free(query);
     DBUG_RETURN(1);
@@ -818,13 +942,17 @@ static void print_result()
 {
   MYSQL_RES *res;
   MYSQL_ROW row;
-  char prev[(NAME_LEN+9)*2+2];
+  char prev[(NAME_LEN+9)*3+2];
   char prev_alter[MAX_ALTER_STR_SIZE];
+  char *db_name;
+  uint length_of_db;
   uint i;
   my_bool found_error=0, table_rebuild=0;
   DBUG_ENTER("print_result");
 
   res = mysql_use_result(sock);
+  db_name= sock->db;
+  length_of_db= strlen(db_name);
 
   prev[0] = '\0';
   prev_alter[0]= 0;
@@ -848,10 +976,16 @@ static void print_result()
           if (prev_alter[0])
             insert_dynamic(&alter_table_cmds, (uchar*) prev_alter);
           else
-            insert_dynamic(&tables4rebuild, (uchar*) prev);
+          {
+            char *table_name= prev + (length_of_db+1);
+            insert_dynamic(&tables4rebuild, (uchar*) table_name);
+          }
         }
         else
-          insert_dynamic(&tables4repair, (uchar*) prev);
+        {
+          char *table_name= prev + (length_of_db+1);
+          insert_dynamic(&tables4repair, (uchar*) table_name);
+        }
       }
       found_error=0;
       table_rebuild=0;
@@ -911,10 +1045,16 @@ static void print_result()
       if (prev_alter[0])
         insert_dynamic(&alter_table_cmds, (uchar*) prev_alter);
       else
-        insert_dynamic(&tables4rebuild, (uchar*) prev);
+      {
+        char *table_name= prev + (length_of_db+1);
+        insert_dynamic(&tables4rebuild, (uchar*) table_name);
+      }
     }
     else
-      insert_dynamic(&tables4repair, (uchar*) prev);
+    {
+      char *table_name= prev + (length_of_db+1);
+      insert_dynamic(&tables4repair, (uchar*) table_name);
+    }
   }
   mysql_free_result(res);
   DBUG_VOID_RETURN;
@@ -1047,7 +1187,7 @@ int main(int argc, char **argv)
     for (i = 0; i < tables4repair.elements ; i++)
     {
       char *name= (char*) dynamic_array_ptr(&tables4repair, i);
-      handle_request_for_tables(name, fixed_name_length(name));
+      handle_request_for_tables(name, fixed_name_length(name), FALSE);
     }
     for (i = 0; i < tables4rebuild.elements ; i++)
       rebuild_table((char*) dynamic_array_ptr(&tables4rebuild, i));
diff --git a/client/mysqltest.cc b/client/mysqltest.cc
index 6ead479..9b925d6 100644
--- a/client/mysqltest.cc
+++ b/client/mysqltest.cc
@@ -5883,7 +5883,7 @@ void do_connect(struct st_command *command)
 {
   int con_port= opt_port;
   char *con_options;
-  char *ssl_cipher= 0;
+  char *ssl_cipher __attribute__((unused))= 0;
   my_bool con_ssl= 0, con_compress= 0;
   my_bool con_pipe= 0;
   my_bool con_shm __attribute__ ((unused))= 0;
diff --git a/cmake/compile_flags.cmake b/cmake/compile_flags.cmake
index 5e872f9..b39bf7b 100644
--- a/cmake/compile_flags.cmake
+++ b/cmake/compile_flags.cmake
@@ -1,4 +1,4 @@
-# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2015, 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
@@ -18,11 +18,11 @@
 MACRO(ADD_COMPILE_FLAGS)
   SET(FILES "")
   SET(FLAGS "")
-  SET(COMPILE_FLAGS)
+  SET(COMPILE_FLAGS_SEEN)
   FOREACH(ARG ${ARGV})
     IF(ARG STREQUAL "COMPILE_FLAGS")
-      SET(COMPILE_FLAGS "COMPILE_FLAGS")
-    ELSEIF(COMPILE_FLAGS)
+      SET(COMPILE_FLAGS_SEEN 1)
+    ELSEIF(COMPILE_FLAGS_SEEN)
       LIST(APPEND FLAGS ${ARG})
     ELSE()
       LIST(APPEND FILES ${ARG})
diff --git a/cmake/cpack_rpm.cmake b/cmake/cpack_rpm.cmake
index f5642ff..bd8d961 100644
--- a/cmake/cpack_rpm.cmake
+++ b/cmake/cpack_rpm.cmake
@@ -188,6 +188,7 @@ ELSEIF(RPM MATCHES "fedora" OR RPM MATCHES "(rhel|centos)7")
   ALTERNATIVE_NAME("client" "mysql")
   ALTERNATIVE_NAME("devel"  "mariadb-devel")
   ALTERNATIVE_NAME("server" "mariadb-server")
+  ALTERNATIVE_NAME("server" "mysql-compat-server")
   ALTERNATIVE_NAME("shared" "mariadb-libs")
   ALTERNATIVE_NAME("shared" "mysql-libs")
   ALTERNATIVE_NAME("test"   "mariadb-test")
diff --git a/cmake/cpack_source_ignore_files.cmake b/cmake/cpack_source_ignore_files.cmake
index 5db383a..0874311 100644
--- a/cmake/cpack_source_ignore_files.cmake
+++ b/cmake/cpack_source_ignore_files.cmake
@@ -1,4 +1,4 @@
-# Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2009, 2014, 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
@@ -14,9 +14,6 @@
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301  USA 
 
 SET(CPACK_SOURCE_IGNORE_FILES
-\\\\.bzr/
-\\\\.bzr-mysql
-\\\\.bzrignore
 CMakeCache\\\\.txt
 cmake_dist\\\\.cmake
 CPackSourceConfig\\\\.cmake
diff --git a/cmake/info_macros.cmake.in b/cmake/info_macros.cmake.in
index 9f40a41..fc2f884 100644
--- a/cmake/info_macros.cmake.in
+++ b/cmake/info_macros.cmake.in
@@ -1,4 +1,4 @@
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, 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
@@ -23,11 +23,14 @@
 # If further variables are used in this file, add them to this list.
 
 SET(VERSION "@VERSION@")
+SET(MAJOR_VERSION "@MAJOR_VERSION@")
+SET(MINOR_VERSION "@MINOR_VERSION@")
+SET(PATCH_VERSION "@PATCH_VERSION@")
 SET(CMAKE_SOURCE_DIR "@CMAKE_SOURCE_DIR@")
 SET(CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@")
 SET(CMAKE_GENERATOR "@CMAKE_GENERATOR@")
 SET(CMAKE_SIZEOF_VOID_P "@CMAKE_SIZEOF_VOID_P@")
-SET(BZR_EXECUTABLE "@BZR_EXECUTABLE@")
+SET(GIT_EXECUTABLE "@GIT_EXECUTABLE@")
 SET(CMAKE_CROSSCOMPILING "@CMAKE_CROSSCOMPILING@")
 SET(CMAKE_HOST_SYSTEM "@CMAKE_HOST_SYSTEM@")
 SET(CMAKE_HOST_SYSTEM_PROCESSOR "@CMAKE_HOST_SYSTEM_PROCESSOR@")
@@ -36,27 +39,51 @@ SET(CMAKE_SYSTEM_PROCESSOR "@CMAKE_SYSTEM_PROCESSOR@")
  
  
 # Create an "INFO_SRC" file with information about the source (only).
-# We use "bzr version-info", if possible, and the "VERSION" contents.
+# We use "git log", if possible, and the "VERSION" contents.
 #
-# Outside development (BZR tree), the "INFO_SRC" file will not be modified
+# Outside development (git tree), the "INFO_SRC" file will not be modified
 # provided it exists (from "make dist" or a source tarball creation).
 
 MACRO(CREATE_INFO_SRC target_dir)
   SET(INFO_SRC "${target_dir}/INFO_SRC")
 
-  IF(EXISTS ${CMAKE_SOURCE_DIR}/.bzr)
-    # Sources are in a BZR repository: Always update.
+  SET(PERLSCRIPT
+    "use warnings; use POSIX qw(strftime); "
+    "print strftime \"%F %T %z\", localtime;")
+  EXECUTE_PROCESS(
+    COMMAND perl -e "${PERLSCRIPT}"
+    RESULT_VARIABLE result
+    OUTPUT_VARIABLE bdate
+    ERROR_VARIABLE error
+  )
+  IF(error)
+    MESSAGE(STATUS "Could not determine build-date: <${error}>")
+  ENDIF()
+
+  IF(GIT_EXECUTABLE AND EXISTS ${CMAKE_SOURCE_DIR}/.git)
+    # Sources are in a GIT repository: Always update.
+    EXECUTE_PROCESS(
+      COMMAND ${GIT_EXECUTABLE} rev-parse --abbrev-ref HEAD
+      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
+      OUTPUT_VARIABLE bname
+    )
+
     EXECUTE_PROCESS(
-      COMMAND ${BZR_EXECUTABLE} version-info ${CMAKE_SOURCE_DIR}
+      COMMAND ${GIT_EXECUTABLE} log -1
+      --pretty="commit: %H%ndate: %ci%nbuild-date: ${bdate} %nshort: %h%nbranch: ${bname}"
+      WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
       OUTPUT_VARIABLE VERSION_INFO
-      RESULT_VARIABLE RESULT
     )
+
+    ## Output from git is quoted with "", remove them.
+    STRING(REPLACE "\"" "" VERSION_INFO "${VERSION_INFO}")
     FILE(WRITE ${INFO_SRC} "${VERSION_INFO}\n")
     # to debug, add: FILE(APPEND ${INFO_SRC} "\nResult ${RESULT}\n")
     # For better readability ...
-    FILE(APPEND ${INFO_SRC} "\nMySQL source ${VERSION}\n")
+    FILE(APPEND ${INFO_SRC}
+      "MySQL source ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION}\n")
   ELSEIF(EXISTS ${INFO_SRC})
-    # Outside a BZR tree, there is no need to change an existing "INFO_SRC",
+    # Outside a git tree, there is no need to change an existing "INFO_SRC",
     # it cannot be improved.
   ELSEIF(EXISTS ${CMAKE_SOURCE_DIR}/Docs/INFO_SRC)
     # If we are building from a source distribution, it also contains "INFO_SRC".
diff --git a/cmake/info_src.cmake b/cmake/info_src.cmake
index 97776b7..ce9873c 100644
--- a/cmake/info_src.cmake
+++ b/cmake/info_src.cmake
@@ -1,4 +1,4 @@
-# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, 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
@@ -16,11 +16,11 @@
 
 # The sole purpose of this cmake control file is to create the "INFO_SRC" file.
 
-# As long as and "bzr pull" (or "bzr commit") is followed by a "cmake",
+# As long as and "git pull" (or "git commit") is followed by a "cmake",
 # the call in top level "CMakeLists.txt" is sufficient.
 # This file is to provide a separate target for the "make" phase,
-# to ensure the BZR revision-id is correct even after a sequence
-#   cmake ; make ; bzr pull ; make
+# to ensure the git commit hash is correct even after a sequence
+#   cmake ; make ; git pull ; make
 
 
 # Get the macros which handle the "INFO_*" files.
diff --git a/cmake/maintainer.cmake b/cmake/maintainer.cmake
index 5d3ce4d..872d61d 100644
--- a/cmake/maintainer.cmake
+++ b/cmake/maintainer.cmake
@@ -36,8 +36,8 @@ ENDIF()
 
 # Turn on Werror (warning => error) when using maintainer mode.
 IF(MYSQL_MAINTAINER_MODE MATCHES "ON")
-  SET(MY_C_WARNING_FLAGS "${MY_C_WARNING_FLAGS} -Werror")
-  SET(MY_CXX_WARNING_FLAGS "${MY_CXX_WARNING_FLAGS} -Werror")
+  SET(MY_C_WARNING_FLAGS "${MY_C_WARNING_FLAGS} -DFORCE_INIT_OF_VARS -Werror")
+  SET(MY_CXX_WARNING_FLAGS "${MY_CXX_WARNING_FLAGS} -DFORCE_INIT_OF_VARS -Werror")
 ENDIF()
 
 # Set warning flags for GCC/Clang
diff --git a/cmake/make_dist.cmake.in b/cmake/make_dist.cmake.in
index ada27c3..c561baa 100644
--- a/cmake/make_dist.cmake.in
+++ b/cmake/make_dist.cmake.in
@@ -22,13 +22,12 @@ SET(CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@")
 SET(CPACK_SOURCE_PACKAGE_FILE_NAME "@CPACK_SOURCE_PACKAGE_FILE_NAME@")
 SET(CMAKE_CPACK_COMMAND  "@CMAKE_CPACK_COMMAND@")
 SET(CMAKE_COMMAND  "@CMAKE_COMMAND@")
-SET(BZR_EXECUTABLE "@BZR_EXECUTABLE@")
+SET(GIT_EXECUTABLE "@GIT_EXECUTABLE@")
 SET(GTAR_EXECUTABLE "@GTAR_EXECUTABLE@")
 SET(TAR_EXECUTABLE "@TAR_EXECUTABLE@")
 SET(CMAKE_GENERATOR "@CMAKE_GENERATOR@")
 SET(CMAKE_MAKE_PROGRAM "@CMAKE_MAKE_PROGRAM@")
 SET(CMAKE_SYSTEM_NAME "@CMAKE_SYSTEM_NAME@")
-SET(PLUGIN_REPOS "@PLUGIN_REPOS@")
 
 SET(VERSION "@VERSION@")
 
@@ -40,38 +39,21 @@ SET(PACKAGE_DIR  ${CMAKE_BINARY_DIR}/${CPACK_SOURCE_PACKAGE_FILE_NAME})
 FILE(REMOVE_RECURSE ${PACKAGE_DIR})
 FILE(REMOVE ${PACKAGE_DIR}.tar.gz )
 
-IF(BZR_EXECUTABLE)
-  MESSAGE(STATUS "Running bzr export")
+IF(GIT_EXECUTABLE)
+  MESSAGE(STATUS "Running git checkout-index")
   EXECUTE_PROCESS(
-    COMMAND "${BZR_EXECUTABLE}" export 
-    ${PACKAGE_DIR}
+    COMMAND "${GIT_EXECUTABLE}" checkout-index --all --prefix=${PACKAGE_DIR}/
     WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
     RESULT_VARIABLE RESULT
   )
 
   IF(NOT RESULT EQUAL 0)
-   SET(BZR_EXECUTABLE)
+   SET(GIT_EXECUTABLE)
   ENDIF()
 ENDIF()
 
-IF(BZR_EXECUTABLE)
-  FOREACH(REPO ${PLUGIN_REPOS})
-    GET_FILENAME_COMPONENT(PLUGIN_NAME ${REPO} NAME)
-    SET(DEST ${PACKAGE_DIR}/plugin/${PLUGIN_NAME})
-    MESSAGE(STATUS "Running bzr export for plugin/${PLUGIN_NAME}")
-    EXECUTE_PROCESS(
-      COMMAND "${BZR_EXECUTABLE}" export ${DEST}
-      WORKING_DIRECTORY ${REPO}
-      RESULT_VARIABLE RESULT
-    )
-    IF(NOT RESULT EQUAL 0)
-      MESSAGE(STATUS "bzr export failed")
-    ENDIF()
-  ENDFOREACH()
-ENDIF()
-
-IF(NOT BZR_EXECUTABLE)
-  MESSAGE(STATUS "bzr not found or source dir is not a repo, use CPack")
+IF(NOT GIT_EXECUTABLE)
+  MESSAGE(STATUS "git not found or source dir is not a repo, use CPack")
   
   IF(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
     # In-source build is the worst option, we have to cleanup source tree.
@@ -119,15 +101,6 @@ CONFIGURE_FILE(${CMAKE_BINARY_DIR}/sql/sql_yacc.h
 CONFIGURE_FILE(${CMAKE_BINARY_DIR}/sql/sql_yacc.cc
    ${PACKAGE_DIR}/sql/sql_yacc.cc COPYONLY)
 
-# Copy spec files
-SET(SPECFILENAME "mysql.${VERSION}.spec")
-IF("${VERSION}" MATCHES "-ndb-")
-  STRING(REGEX REPLACE "^.*-ndb-" "" NDBVERSION "${VERSION}")
-  SET(SPECFILENAME "mysql-cluster-${NDBVERSION}.spec")
-ENDIF()
-CONFIGURE_FILE(${CMAKE_BINARY_DIR}/support-files/${SPECFILENAME}
-   ${PACKAGE_DIR}/support-files/${SPECFILENAME} COPYONLY)
-
 # Add documentation, if user has specified where to find them
 IF(MYSQL_DOCS_LOCATION)
   MESSAGE("Copying documentation files from " ${MYSQL_DOCS_LOCATION})
diff --git a/cmake/plugin.cmake b/cmake/plugin.cmake
index bfc9a76..e166275 100644
--- a/cmake/plugin.cmake
+++ b/cmake/plugin.cmake
@@ -237,11 +237,4 @@ MACRO(CONFIGURE_PLUGINS)
       ADD_SUBDIRECTORY(${dir})
     ENDIF()
   ENDFOREACH()
-  FOREACH(dir ${dirs_plugin})
-    IF (EXISTS ${dir}/.bzr)
-      MESSAGE(STATUS "Found repo ${dir}/.bzr")
-      LIST(APPEND PLUGIN_BZR_REPOS "${dir}")
-    ENDIF()
-  ENDFOREACH()
-  SET(PLUGIN_REPOS "${PLUGIN_BZR_REPOS}" CACHE INTERNAL "")
 ENDMACRO()
diff --git a/debian/dist/Debian/mariadb-server-5.5.files.in b/debian/dist/Debian/mariadb-server-5.5.files.in
index 5682adb..c1ea587 100644
--- a/debian/dist/Debian/mariadb-server-5.5.files.in
+++ b/debian/dist/Debian/mariadb-server-5.5.files.in
@@ -1,5 +1,4 @@
 usr/lib/mysql/plugin/ha_innodb.so
-usr/lib/mysql/plugin/ha_oqgraph.so
 usr/lib/mysql/plugin/sphinx.so
 usr/lib/mysql/plugin/auth_socket.so
 usr/lib/mysql/plugin/auth_pam.so
@@ -73,3 +72,4 @@ usr/share/mysql/mysql_system_tables.sql
 usr/share/mysql/mysql_performance_tables.sql
 usr/share/mysql/mysql_test_data_timezone.sql
 @TOKUDB_DEB_FILES@
+ at OQGRAPH_DEB_FILES@
diff --git a/debian/dist/Ubuntu/mariadb-server-5.5.files.in b/debian/dist/Ubuntu/mariadb-server-5.5.files.in
index 06a6643..7f75ccc 100644
--- a/debian/dist/Ubuntu/mariadb-server-5.5.files.in
+++ b/debian/dist/Ubuntu/mariadb-server-5.5.files.in
@@ -1,5 +1,4 @@
 usr/lib/mysql/plugin/ha_innodb.so
-usr/lib/mysql/plugin/ha_oqgraph.so
 usr/lib/mysql/plugin/sphinx.so
 usr/lib/mysql/plugin/auth_socket.so
 usr/lib/mysql/plugin/auth_pam.so
@@ -75,3 +74,4 @@ usr/share/mysql/mysql_system_tables.sql
 usr/share/mysql/mysql_performance_tables.sql
 usr/share/mysql/mysql_test_data_timezone.sql
 @TOKUDB_DEB_FILES@
+ at OQGRAPH_DEB_FILES@
diff --git a/debian/dist/Ubuntu/mariadb-server-5.5.postinst b/debian/dist/Ubuntu/mariadb-server-5.5.postinst
index 1c7aa37..920868e 100644
--- a/debian/dist/Ubuntu/mariadb-server-5.5.postinst
+++ b/debian/dist/Ubuntu/mariadb-server-5.5.postinst
@@ -213,7 +213,7 @@ EOF
     # admin might already have chosen to remove one or more plugins. Newlines are necessary.
     install_plugins=`/bin/echo -e \
         "USE mysql;\n" \
-        "CREATE TABLE plugin (name char(64) COLLATE utf8_bin NOT NULL DEFAULT '', " \
+        "CREATE TABLE IF NOT EXISTS plugin (name char(64) COLLATE utf8_bin NOT NULL DEFAULT '', " \
         "  dl char(128) COLLATE utf8_bin NOT NULL DEFAULT '', " \
         "  PRIMARY KEY (name)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='MySQL plugins';" `
 
diff --git a/extra/yassl/README b/extra/yassl/README
index 30c7af4..da399c3 100644
--- a/extra/yassl/README
+++ b/extra/yassl/README
@@ -12,6 +12,16 @@ before calling SSL_new();
 
 *** end Note ***
 
+yaSSL Release notes, version 2.3.7 (12/10/2014)
+    This release of yaSSL fixes the potential to process duplicate handshake
+    messages by explicitly marking/checking received handshake messages.
+
+yaSSL Release notes, version 2.3.6 (11/25/2014)
+
+    This release of yaSSL fixes some valgrind warnings/errors including
+    uninitialized reads and off by one index errors induced from fuzzing
+    the handshake.  These were reported by Oracle. 
+
 yaSSL Release notes, version 2.3.5 (9/29/2014)
 
     This release of yaSSL fixes an RSA Padding check vulnerability reported by
diff --git a/extra/yassl/examples/client/client.cpp b/extra/yassl/examples/client/client.cpp
index fc05b66..102ed61 100644
--- a/extra/yassl/examples/client/client.cpp
+++ b/extra/yassl/examples/client/client.cpp
@@ -18,6 +18,10 @@
 
 /* client.cpp  */
 
+// takes an optional command line argument of cipher list to make scripting
+// easier
+
+
 #include "../../testsuite/test.hpp"
 
 //#define TEST_RESUME
@@ -73,11 +77,16 @@ void client_test(void* args)
 #ifdef NON_BLOCKING
     tcp_set_nonblocking(sockfd);
 #endif
-
     SSL_METHOD* method = TLSv1_client_method();
     SSL_CTX*    ctx = SSL_CTX_new(method);
 
     set_certs(ctx);
+    if (argc >= 2) {
+        printf("setting cipher list to %s\n", argv[1]);
+        if (SSL_CTX_set_cipher_list(ctx, argv[1]) != SSL_SUCCESS) {
+            ClientError(ctx, NULL, sockfd, "set_cipher_list error\n");
+        }
+    }
     SSL* ssl = SSL_new(ctx);
 
     SSL_set_fd(ssl, sockfd);
diff --git a/extra/yassl/examples/server/server.cpp b/extra/yassl/examples/server/server.cpp
index 173ce8f..1540f6d 100644
--- a/extra/yassl/examples/server/server.cpp
+++ b/extra/yassl/examples/server/server.cpp
@@ -18,6 +18,9 @@
 
 /* server.cpp */
 
+// takes 2 optional command line argument to make scripting
+// if the first  command line argument is 'n' client auth is disabled
+// if the second command line argument is 'd' DSA certs are used instead of RSA
 
 #include "../../testsuite/test.hpp"
 
@@ -69,6 +72,9 @@ THREAD_RETURN YASSL_API server_test(void* args)
     char**   argv     = 0;
 
     set_args(argc, argv, *static_cast<func_args*>(args));
+#ifdef SERVER_READY_FILE
+    set_file_ready("server_ready", *static_cast<func_args*>(args));
+#endif
     tcp_accept(sockfd, clientfd, *static_cast<func_args*>(args));
 
     tcp_close(sockfd);
@@ -77,8 +83,21 @@ THREAD_RETURN YASSL_API server_test(void* args)
     SSL_CTX*    ctx = SSL_CTX_new(method);
 
     //SSL_CTX_set_cipher_list(ctx, "RC4-SHA:RC4-MD5");
-    SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
-    set_serverCerts(ctx);
+    
+    // should we disable client auth
+    if (argc >= 2 && argv[1][0] == 'n')
+        printf("disabling client auth\n");
+    else
+        SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, 0);
+
+    // are we using DSA certs
+    if (argc >= 3 && argv[2][0] == 'd') {
+        printf("using DSA certs\n");
+        set_dsaServerCerts(ctx);
+    }
+    else {
+        set_serverCerts(ctx);
+    }
     DH* dh = set_tmpDH(ctx);
 
     SSL* ssl = SSL_new(ctx);
diff --git a/extra/yassl/include/openssl/ssl.h b/extra/yassl/include/openssl/ssl.h
index e678c60..24acc7e 100644
--- a/extra/yassl/include/openssl/ssl.h
+++ b/extra/yassl/include/openssl/ssl.h
@@ -35,7 +35,7 @@
 #include "rsa.h"
 
 
-#define YASSL_VERSION "2.3.5"
+#define YASSL_VERSION "2.3.7"
 
 
 #if defined(__cplusplus)
diff --git a/extra/yassl/include/yassl_int.hpp b/extra/yassl/include/yassl_int.hpp
index f93727a..9f28cbe 100644
--- a/extra/yassl/include/yassl_int.hpp
+++ b/extra/yassl/include/yassl_int.hpp
@@ -107,6 +107,25 @@ enum AcceptState {
 };
 
 
+// track received messages to explicitly disallow duplicate messages
+struct RecvdMessages {
+    uint8 gotClientHello_;
+    uint8 gotServerHello_;
+    uint8 gotCert_;
+    uint8 gotServerKeyExchange_;
+    uint8 gotCertRequest_;
+    uint8 gotServerHelloDone_;
+    uint8 gotCertVerify_;
+    uint8 gotClientKeyExchange_;
+    uint8 gotFinished_;
+    RecvdMessages() : gotClientHello_(0), gotServerHello_(0), gotCert_(0),
+                      gotServerKeyExchange_(0), gotCertRequest_(0),
+                      gotServerHelloDone_(0), gotCertVerify_(0),
+                      gotClientKeyExchange_(0), gotFinished_(0)
+                    {} 
+};
+
+
 // combines all states
 class States {
     RecordLayerState recordLayer_;
@@ -115,6 +134,7 @@ class States {
     ServerState      serverState_;
     ConnectState     connectState_;
     AcceptState      acceptState_;
+    RecvdMessages    recvdMessages_;
     char             errorString_[MAX_ERROR_SZ];
     YasslError       what_;
 public:
@@ -137,6 +157,7 @@ public:
     AcceptState&      UseAccept();
     char*             useString();
     void              SetError(YasslError);
+    int               SetMessageRecvd(HandShakeType);
 private:
     States(const States&);              // hide copy
     States& operator=(const States&);   // and assign
diff --git a/extra/yassl/src/yassl_imp.cpp b/extra/yassl/src/yassl_imp.cpp
index e2da042..742d079 100644
--- a/extra/yassl/src/yassl_imp.cpp
+++ b/extra/yassl/src/yassl_imp.cpp
@@ -242,6 +242,7 @@ void EncryptedPreMasterSecret::read(SSL& ssl, input_buffer& input)
     }
 
     opaque preMasterSecret[SECRET_LEN];
+    memset(preMasterSecret, 0, sizeof(preMasterSecret));
     rsa.decrypt(preMasterSecret, secret_, length_, 
                 ssl.getCrypto().get_random());
 
@@ -300,6 +301,11 @@ void ClientDiffieHellmanPublic::read(SSL& ssl, input_buffer& input)
     tmp[1] = input[AUTO];
     ato16(tmp, keyLength);
 
+    if (keyLength < dh.get_agreedKeyLength()/2) {
+        ssl.SetError(bad_input);
+        return;
+    }
+
     alloc(keyLength);
     input.read(Yc_, keyLength);
     if (input.get_error()) {
@@ -408,6 +414,10 @@ void DH_Server::read(SSL& ssl, input_buffer& input)
     tmp[1] = input[AUTO];
     ato16(tmp, length);
 
+    if (length == 0) {
+        ssl.SetError(bad_input);
+        return;
+    }
     signature_ = NEW_YS byte[length];
     input.read(signature_, length);
     if (input.get_error()) {
@@ -864,6 +874,12 @@ void ChangeCipherSpec::Process(input_buffer& input, SSL& ssl)
         return;
     }
 
+    // detect duplicate change_cipher
+    if (ssl.getSecurity().get_parms().pending_ == false) {
+        ssl.order_error();
+        return;
+    }
+
     ssl.useSecurity().use_parms().pending_ = false;
     if (ssl.getSecurity().get_resuming()) {
         if (ssl.getSecurity().get_parms().entity_ == client_end)
@@ -2047,12 +2063,8 @@ input_buffer& operator>>(input_buffer& input, CertificateRequest& request)
         tmp[0] = input[AUTO];
         tmp[1] = input[AUTO];
         ato16(tmp, dnSz);
-        
-        DistinguishedName dn;
-        request.certificate_authorities_.push_back(dn = NEW_YS 
-                                                  byte[REQUEST_HEADER + dnSz]);
-        memcpy(dn, tmp, REQUEST_HEADER);
-        input.read(&dn[REQUEST_HEADER], dnSz);
+       
+        input.set_current(input.get_current() + dnSz);
 
         sz -= dnSz + REQUEST_HEADER;
 
@@ -2191,6 +2203,11 @@ input_buffer& operator>>(input_buffer& input, CertificateVerify& request)
     ato16(tmp, sz);
     request.set_length(sz);
 
+    if (sz == 0) {
+        input.set_error();
+        return input;
+    }
+
     request.signature_ = NEW_YS byte[sz];
     input.read(request.signature_, sz);
 
diff --git a/extra/yassl/src/yassl_int.cpp b/extra/yassl/src/yassl_int.cpp
index 75e4dc5..a98b4f3 100644
--- a/extra/yassl/src/yassl_int.cpp
+++ b/extra/yassl/src/yassl_int.cpp
@@ -255,6 +255,77 @@ void States::SetError(YasslError ye)
 }
 
 
+// mark message recvd, check for duplicates, return 0 on success
+int States::SetMessageRecvd(HandShakeType hst)
+{
+    switch (hst) {
+        case hello_request:
+            break;  // could send more than one
+
+        case client_hello:
+            if (recvdMessages_.gotClientHello_)
+                return -1;
+            recvdMessages_.gotClientHello_ = 1;
+            break;
+
+        case server_hello:
+            if (recvdMessages_.gotServerHello_)
+                return -1;
+            recvdMessages_.gotServerHello_ = 1;
+            break;
+
+        case certificate:
+            if (recvdMessages_.gotCert_)
+                return -1;
+            recvdMessages_.gotCert_ = 1;
+            break;
+
+        case server_key_exchange:
+            if (recvdMessages_.gotServerKeyExchange_)
+                return -1;
+            recvdMessages_.gotServerKeyExchange_ = 1;
+            break;
+
+        case certificate_request:
+            if (recvdMessages_.gotCertRequest_)
+                return -1;
+            recvdMessages_.gotCertRequest_ = 1;
+            break;
+
+        case server_hello_done:
+            if (recvdMessages_.gotServerHelloDone_)
+                return -1;
+            recvdMessages_.gotServerHelloDone_ = 1;
+            break;
+
+        case certificate_verify:
+            if (recvdMessages_.gotCertVerify_)
+                return -1;
+            recvdMessages_.gotCertVerify_ = 1;
+            break;
+
+        case client_key_exchange:
+            if (recvdMessages_.gotClientKeyExchange_)
+                return -1;
+            recvdMessages_.gotClientKeyExchange_ = 1;
+            break;
+
+        case finished:
+            if (recvdMessages_.gotFinished_)
+                return -1;
+            recvdMessages_.gotFinished_ = 1;
+            break;
+
+
+        default:
+            return -1;
+
+    }
+
+    return 0;
+}
+
+
 sslFactory::sslFactory() :           
         messageFactory_(InitMessageFactory),
         handShakeFactory_(InitHandShakeFactory),
@@ -1199,6 +1270,11 @@ void SSL::verifyState(const HandShakeHeader& hsHeader)
         return;
     }
 
+    if (states_.SetMessageRecvd(hsHeader.get_handshakeType()) != 0) {
+        order_error();
+        return;
+    }
+
     if (secure_.get_parms().entity_ == client_end)
         verifyClientState(hsHeader.get_handshakeType());
     else
diff --git a/extra/yassl/taocrypt/src/asn.cpp b/extra/yassl/taocrypt/src/asn.cpp
index 544e951..d521088 100644
--- a/extra/yassl/taocrypt/src/asn.cpp
+++ b/extra/yassl/taocrypt/src/asn.cpp
@@ -672,7 +672,7 @@ word32 CertDecoder::GetSignature()
     }
 
     sigLength_ = GetLength(source_);
-    if (sigLength_ == 0 || source_.IsLeft(sigLength_) == false) {
+    if (sigLength_ <= 1 || source_.IsLeft(sigLength_) == false) {
         source_.SetError(CONTENT_E);
         return 0;
     }
@@ -1001,11 +1001,17 @@ bool CertDecoder::ConfirmSignature(Source& pub)
         RSA_PublicKey pubKey(pub);
         RSAES_Encryptor enc(pubKey);
 
+        if (pubKey.FixedCiphertextLength() != sigLength_) {
+            source_.SetError(SIG_LEN_E);
+            return false;
+        }
+
         return enc.SSL_Verify(build.get_buffer(), build.size(), signature_);
     }
     else  { // DSA
         // extract r and s from sequence
         byte seqDecoded[DSA_SIG_SZ];
+        memset(seqDecoded, 0, sizeof(seqDecoded));
         DecodeDSA_Signature(seqDecoded, signature_, sigLength_);
 
         DSA_PublicKey pubKey(pub);
diff --git a/extra/yassl/taocrypt/src/integer.cpp b/extra/yassl/taocrypt/src/integer.cpp
index b5262e5..d851006 100644
--- a/extra/yassl/taocrypt/src/integer.cpp
+++ b/extra/yassl/taocrypt/src/integer.cpp
@@ -2605,18 +2605,20 @@ void Integer::Decode(Source& source)
 void Integer::Decode(const byte* input, unsigned int inputLen, Signedness s)
 {
     unsigned int idx(0);
-    byte b = input[idx++];
+    byte b = 0; 
+    if (inputLen>0)
+        b = input[idx];   // peek
     sign_  = ((s==SIGNED) && (b & 0x80)) ? NEGATIVE : POSITIVE;
 
     while (inputLen>0 && (sign_==POSITIVE ? b==0 : b==0xff))
     {
-        inputLen--;
-        b = input[idx++];
+        idx++;   // skip
+        if (--inputLen>0)
+            b = input[idx];  // peek
     }
 
     reg_.CleanNew(RoundupSize(BytesToWords(inputLen)));
 
-    --idx;
     for (unsigned int i=inputLen; i > 0; i--)
     {
         b = input[idx++];
diff --git a/extra/yassl/testsuite/cipher-test.sh b/extra/yassl/testsuite/cipher-test.sh
new file mode 100644
index 0000000..5ce2945
--- /dev/null
+++ b/extra/yassl/testsuite/cipher-test.sh
@@ -0,0 +1,130 @@
+#!/bin/bash
+
+# test all yassl cipher suties 
+# 
+
+
+server_pid=$no_pid
+
+
+do_cleanup() {
+    echo "in cleanup"
+
+    if [[ $server_pid != $no_pid ]]
+    then
+        echo "killing server"
+        kill -9 $server_pid
+    fi
+}
+
+do_trap() {
+    echo "got trap"
+    do_cleanup
+    exit -1
+}
+
+trap do_trap INT TERM
+
+
+# make sure example server and client are built
+if test ! -s ../examples/server/server; then
+    echo "Please build yaSSL first, example server missing"
+    exit -1
+fi
+
+if test ! -s ../examples/client/client; then
+    echo "Please build yaSSL first, example client missing"
+    exit -1
+fi
+
+
+# non DSA suites
+for suite in {"DHE-RSA-AES256-SHA","AES256-SHA","DHE-RSA-AES128-SHA","AES128-SHA","AES256-RMD","AES128-RMD","DES-CBC3-RMD","DHE-RSA-AES256-RMD","DHE-RSA-AES128-RMD","DHE-RSA-DES-CBC3-RMD","RC4-SHA","RC4-MD5","DES-CBC3-SHA","DES-CBC-SHA","EDH-RSA-DES-CBC3-SHA","EDH-RSA-DES-CBC-SHA"}
+do
+  for client_auth in {y,n}
+  do
+    echo "Trying $suite client auth = $client_auth ..."
+
+    if test -e server_ready; then
+        echo -e "removing exisitng server_ready file"
+        rm server_ready
+    fi
+    ../examples/server/server $client_auth &
+    server_pid=$!
+
+    while [ ! -s server_ready ]; do
+        echo -e "waiting for server_ready file..."
+        sleep 0.1
+    done
+
+    ../examples/client/client $suite
+    client_result=$?
+
+    wait $server_pid
+    server_result=$?
+
+    server_pid=$no_pid
+
+    if [[ $client_result != 0 ]]
+    then
+        echo "Client Error"
+        exit $client_result
+    fi
+
+    if [[ $server_result != 0 ]]
+    then
+        echo "Server Error"
+        exit $server_result
+    fi
+
+  done   # end client auth loop
+done  # end non dsa suite list
+echo -e "Non DSA Loop SUCCESS"
+
+
+
+# DSA suites
+for suite in {"DHE-DSS-AES256-SHA","DHE-DSS-AES128-SHA","DHE-DSS-AES256-RMD","DHE-DSS-AES128-RMD","DHE-DSS-DES-CBC3-RMD","EDH-DSS-DES-CBC3-SHA","EDH-DSS-DES-CBC-SHA"}
+do
+  for client_auth in {y,n}
+  do
+    echo "Trying $suite client auth = $client_auth ..."
+
+    if test -e server_ready; then
+        echo -e "removing exisitng server_ready file"
+        rm server_ready
+    fi
+    # d signifies DSA
+    ../examples/server/server $client_auth d &
+    server_pid=$!
+
+    while [ ! -s server_ready ]; do
+        echo -e "waiting for server_ready file..."
+        sleep 0.1
+    done
+
+    ../examples/client/client $suite
+    client_result=$?
+
+    wait $server_pid
+    server_result=$?
+
+    server_pid=$no_pid
+
+    if [[ $client_result != 0 ]]
+    then
+        echo "Client Error"
+        exit $client_result
+    fi
+
+    if [[ $server_result != 0 ]]
+    then
+        echo "Server Error"
+        exit $server_result
+    fi
+
+  done   # end client auth loop
+done  # end dsa suite list
+echo -e "DSA Loop SUCCESS"
+
+exit 0
diff --git a/extra/yassl/testsuite/test.hpp b/extra/yassl/testsuite/test.hpp
index 33f398a..52f6ed7 100644
--- a/extra/yassl/testsuite/test.hpp
+++ b/extra/yassl/testsuite/test.hpp
@@ -131,9 +131,10 @@ struct func_args {
     int    argc;
     char** argv;
     int    return_code;
+    const char* file_ready;
     tcp_ready* signal_;
 
-    func_args(int c = 0, char** v = 0) : argc(c), argv(v) {}
+    func_args(int c = 0, char** v = 0) : argc(c), argv(v), file_ready(0) {}
 
     void SetSignal(tcp_ready* p) { signal_ = p; }
 };
@@ -146,6 +147,7 @@ void join_thread(THREAD_TYPE);
 // yaSSL
 const char* const    yasslIP      = "127.0.0.1";
 const unsigned short yasslPort    =  11111;
+const unsigned short proxyPort    =  12345;
 
 
 // client
@@ -172,13 +174,13 @@ const char* const svrKey3  = "../../../certs/server-key.pem";
 
 // server dsa
 const char* const dsaCert = "../certs/dsa-cert.pem";
-const char* const dsaKey  = "../certs/dsa512.der";
+const char* const dsaKey  = "../certs/dsa1024.der";
 
 const char* const dsaCert2 = "../../certs/dsa-cert.pem";
-const char* const dsaKey2  = "../../certs/dsa512.der";
+const char* const dsaKey2  = "../../certs/dsa1024.der";
 
 const char* const dsaCert3 = "../../../certs/dsa-cert.pem";
-const char* const dsaKey3  = "../../../certs/dsa512.der";
+const char* const dsaKey3  = "../../../certs/dsa1024.der";
 
 
 // CA 
@@ -222,6 +224,13 @@ inline void store_ca(SSL_CTX* ctx)
         if (SSL_CTX_load_verify_locations(ctx, certSuite, 0) != SSL_SUCCESS)
             if (SSL_CTX_load_verify_locations(ctx, certDebug,0) != SSL_SUCCESS)
                 err_sys("failed to use certificate: certs/client-cert.pem");
+
+    // DSA cert 
+    if (SSL_CTX_load_verify_locations(ctx, dsaCert, 0) != SSL_SUCCESS)
+        if (SSL_CTX_load_verify_locations(ctx, dsaCert2, 0) != SSL_SUCCESS)
+            if (SSL_CTX_load_verify_locations(ctx, dsaCert3, 0) != SSL_SUCCESS)
+                err_sys("failed to use certificate: certs/dsa-cert.pem");
+
 }
 
 
@@ -298,7 +307,7 @@ inline void set_dsaServerCerts(SSL_CTX* ctx)
             != SSL_SUCCESS) 
                 if (SSL_CTX_use_PrivateKey_file(ctx, dsaKey3,SSL_FILETYPE_ASN1)
                     != SSL_SUCCESS) 
-                    err_sys("failed to use key file: certs/dsa512.der");
+                    err_sys("failed to use key file: certs/dsa1024.der");
 }
 
 
@@ -310,6 +319,12 @@ inline void set_args(int& argc, char**& argv, func_args& args)
 }
 
 
+inline void set_file_ready(const char* name, func_args& args)
+{
+    args.file_ready = name;
+}
+
+
 inline void tcp_set_nonblocking(SOCKET_T& sockfd)
 {
 #ifdef NON_BLOCKING
@@ -349,7 +364,11 @@ inline void tcp_socket(SOCKET_T& sockfd, SOCKADDR_IN_T& addr)
         */   // end external testing later
 #else
     addr.sin_family = AF_INET_V;
+#ifdef YASSL_PROXY_PORT
+    addr.sin_port = htons(proxyPort);
+#else
     addr.sin_port = htons(yasslPort);
+#endif
     addr.sin_addr.s_addr = inet_addr(yasslIP);
 #endif
 
@@ -401,6 +420,16 @@ inline void tcp_listen(SOCKET_T& sockfd)
 }
 
 
+inline void create_ready_file(func_args& args)
+{
+    FILE* f = fopen(args.file_ready, "w+");
+
+    if (f) {
+        fputs("ready", f);
+        fclose(f);
+    }
+}
+
 
 inline void tcp_accept(SOCKET_T& sockfd, SOCKET_T& clientfd, func_args& args)
 {
@@ -418,6 +447,9 @@ inline void tcp_accept(SOCKET_T& sockfd, SOCKET_T& clientfd, func_args& args)
     pthread_mutex_unlock(&ready.mutex_);
 #endif
 
+    if (args.file_ready)
+        create_ready_file(args);
+
     clientfd = accept(sockfd, (sockaddr*)&client, (ACCEPT_THIRD_T)&client_len);
 
     if (clientfd == (SOCKET_T) -1) {
diff --git a/include/myisamchk.h b/include/myisamchk.h
index a09e53e..ded463f 100644
--- a/include/myisamchk.h
+++ b/include/myisamchk.h
@@ -34,6 +34,7 @@
 
 #define TT_USEFRM               1
 #define TT_FOR_UPGRADE          2
+#define TT_FROM_MYSQL           4
 
 /* Bits set in out_flag */
 #define O_NEW_DATA	2
diff --git a/include/mysql.h b/include/mysql.h
index 090abf4..2f205ec 100644
--- a/include/mysql.h
+++ b/include/mysql.h
@@ -75,6 +75,7 @@ typedef int my_socket;
 
 #include "my_list.h" /* for LISTs used in 'MYSQL' and 'MYSQL_STMT' */
 
+extern unsigned int mariadb_deinitialize_ssl;
 extern unsigned int mysql_port;
 extern char *mysql_unix_port;
 
@@ -853,6 +854,12 @@ my_socket STDCALL mysql_get_socket(const MYSQL *mysql);
 unsigned int STDCALL mysql_get_timeout_value(const MYSQL *mysql);
 unsigned int STDCALL mysql_get_timeout_value_ms(const MYSQL *mysql);
 
+/********************************************************************
+  mysql_net_ functions - low-level API to MySQL protocol
+*********************************************************************/
+unsigned long STDCALL mysql_net_read_packet(MYSQL *mysql);
+unsigned long STDCALL mysql_net_field_length(unsigned char **packet);
+
 /* status return codes */
 #define MYSQL_NO_DATA        100
 #define MYSQL_DATA_TRUNCATED 101
diff --git a/include/mysql.h.pp b/include/mysql.h.pp
index c45a8d7..f6be582 100644
--- a/include/mysql.h.pp
+++ b/include/mysql.h.pp
@@ -168,6 +168,7 @@ extern LIST *list_reverse(LIST *root);
 extern void list_free(LIST *root,unsigned int free_data);
 extern unsigned int list_length(LIST *);
 extern int list_walk(LIST *,list_walk_action action,unsigned char * argument);
+extern unsigned int mariadb_deinitialize_ssl;
 extern unsigned int mysql_port;
 extern char *mysql_unix_port;
 typedef struct st_mysql_field {
@@ -731,3 +732,5 @@ int mysql_close_cont(MYSQL *sock, int status);
 my_socket mysql_get_socket(const MYSQL *mysql);
 unsigned int mysql_get_timeout_value(const MYSQL *mysql);
 unsigned int mysql_get_timeout_value_ms(const MYSQL *mysql);
+unsigned long mysql_net_read_packet(MYSQL *mysql);
+unsigned long mysql_net_field_length(unsigned char **packet);
diff --git a/include/welcome_copyright_notice.h b/include/welcome_copyright_notice.h
index 956a9f1..096d424 100644
--- a/include/welcome_copyright_notice.h
+++ b/include/welcome_copyright_notice.h
@@ -1,5 +1,5 @@
-/* Copyright (c) 2011, 2014, Oracle and/or its affiliates.
-   Copyright (c) 2011, 2012, Monty Program Ab
+/* Copyright (c) 2011, 2015, Oracle and/or its affiliates.
+   Copyright (c) 2011, 2015, MariaDB
 
    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
@@ -17,7 +17,7 @@
 #ifndef _welcome_copyright_notice_h_
 #define _welcome_copyright_notice_h_
 
-#define COPYRIGHT_NOTICE_CURRENT_YEAR "2014"
+#define COPYRIGHT_NOTICE_CURRENT_YEAR "2015"
 
 /*
   This define specifies copyright notice which is displayed by every MySQL
diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt
index fc4abb0..4ce4ab0 100644
--- a/libmysql/CMakeLists.txt
+++ b/libmysql/CMakeLists.txt
@@ -236,6 +236,11 @@ dynamic_column_exists
 dynamic_column_list
 dynamic_column_get
 dynamic_column_prepare_decimal
+#
+mariadb_deinitialize_ssl
+# low-level API to MySQL protocol
+mysql_net_read_packet
+mysql_net_field_length
 )
 
 SET(CLIENT_API_FUNCTIONS
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c
index 7a4fc9f..1df5f0b 100644
--- a/libmysql/libmysql.c
+++ b/libmysql/libmysql.c
@@ -205,7 +205,8 @@ void STDCALL mysql_server_end()
   mysql_client_plugin_deinit();
 
   finish_client_errs();
-  vio_end();
+  if (mariadb_deinitialize_ssl)
+    vio_end();
 #ifdef EMBEDDED_LIBRARY
   end_embedded_server();
 #endif
@@ -4896,3 +4897,20 @@ my_bool STDCALL mysql_read_query_result(MYSQL *mysql)
   return (*mysql->methods->read_query_result)(mysql);
 }
 
+/********************************************************************
+  mysql_net_ functions - low-level API to MySQL protocol
+*********************************************************************/
+#if MYSQL_VERSION_ID > 100100
+#error remove these wrappers in 10.1, rename functions instead
+#endif
+
+ulong STDCALL mysql_net_read_packet(MYSQL *mysql)
+{
+  return cli_safe_read(mysql);
+}
+
+ulong STDCALL mysql_net_field_length(uchar **packet)
+{
+  return net_field_length(packet);
+}
+
diff --git a/mysql-test/extra/binlog_tests/database.test b/mysql-test/extra/binlog_tests/database.test
index d071415..61e8b59 100644
--- a/mysql-test/extra/binlog_tests/database.test
+++ b/mysql-test/extra/binlog_tests/database.test
@@ -31,12 +31,47 @@ source include/show_binlog_events.inc;
 
 FLUSH STATUS;
 
+--echo
+--echo # 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
+--echo # when 'DROP DATABASE' fails and at least one table is deleted
+--echo # from the database.
+RESET MASTER;
+CREATE DATABASE testing_1;
+USE testing_1;
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2(c1 INT);
+
+let $prefix= `SELECT UUID()`;
+--echo # Create a file in the database directory
+--replace_result $prefix FAKE_FILE
+eval SELECT 'hello' INTO OUTFILE 'fake_file.$prefix';
+
+--echo
+--echo # 'DROP DATABASE' will fail if there is any other file in the the
+--echo # database directory
+
+# Use '/' instead of '\' in the error message. On windows platform, dir is
+# formed with '\'.
+--replace_regex /\\testing_1\\*/\/testing_1\//
+--error 1010
+DROP DATABASE testing_1;
+let $wait_binlog_event= DROP TABLE IF EXIST;
+source include/wait_for_binlog_event.inc;
+let $MYSQLD_DATADIR= `SELECT @@datadir`;
+
+--echo
+--echo # Remove the fake file.
+--remove_file $MYSQLD_DATADIR/testing_1/fake_file.$prefix
+--echo # Now we can drop the database.
+DROP DATABASE testing_1;
+
 
 --echo #
 --echo # Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT
 --echo #              BASED REPLICATION
 --echo #
 
+USE test;
 --disable_warnings
 DROP DATABASE IF EXISTS db1;
 DROP TABLE IF EXISTS t3;
diff --git a/mysql-test/include/ctype_utf8_ilseq.inc b/mysql-test/include/ctype_utf8_ilseq.inc
new file mode 100644
index 0000000..c400731
--- /dev/null
+++ b/mysql-test/include/ctype_utf8_ilseq.inc
@@ -0,0 +1,114 @@
+#
+# Compare a field to an utf8 string literal with illegal byte sequences
+#
+
+--echo #
+--echo # Start of ctype_utf8_ilseq.inc
+--echo #
+
+--eval CREATE TABLE t1 ENGINE=$ENGINE AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;
+ALTER TABLE t1
+  ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+  ADD KEY(ch);
+SHOW CREATE TABLE t1;
+
+INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
+SELECT ch FROM t1 WHERE ch='admin𝌆';
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
+DELETE FROM t1;
+INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
+INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
+INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
+INSERT INTO t1 (ch) VALUES ('z');
+# LATIN SMALL LETTER A + LATIN CAPITAL LETTER E WITH GRAVE
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
+# LATIN SMALL LETTER A + ARMENIAN SMALL LETTER REH
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
+
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+
+ALTER TABLE t1 DROP KEY ch;
+
+--echo # 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+
+#
+# Non-equality comparison currently work differently depending on collation:
+#
+# - utf8_general_ci falls back to memcmp() on bad byte
+# - utf8_unicode_ci treats bad bytes greater than any valid character
+#
+#  For example, these two characters:
+#    _utf8 0xD080 (U+00C8 LATIN CAPITAL LETTER E WITH GRAVE)
+#    _utf8 0xD680 (U+0580 ARMENIAN SMALL LETTER REH)
+#
+#  will give different results (depending on collation) when compared 
+#  to an incomplete byte sequence 0xD1 (mb2head not followed by mb2tail).
+#
+# For utf8_general_ci the result depends on the valid side:
+# - 0xD080 is smaller than 0xD1, because 0xD0 < 0xD1
+# - 0xD680 is greater than 0xD1, because 0xD6 > 0xD1
+#
+# For utf8_unicode_ci the result does not depend on the valid side:
+# - 0xD080 is smaller than 0xD1, because 0xD1 is greater than any valid character
+# - 0xD680 is smaller than 0xD1, because 0xD1 is greater than any valid character
+#
+# utf8_general_ci should be eventually fixed to treat bad bytes greater
+# than any valid character, similar to utf8_unicode_ci.
+#
+
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+
+--echo # 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+
+--echo # 0x8F is a bad byte sequence (an mb2tail without mb2head)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+
+--echo # 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+
+DROP TABLE t1;
+
+--echo #
+--echo # End of ctype_utf8_ilseq.inc
+--echo #
diff --git a/mysql-test/lib/My/SafeProcess/Base.pm b/mysql-test/lib/My/SafeProcess/Base.pm
index 0e8c191..1ac0120 100644
--- a/mysql-test/lib/My/SafeProcess/Base.pm
+++ b/mysql-test/lib/My/SafeProcess/Base.pm
@@ -180,6 +180,7 @@ sub create_process {
   }
 
   $SIG{INT}= 'DEFAULT';
+  $SIG{HUP}= 'DEFAULT';
 
   # Make this process it's own process group to be able to kill
   # it and any childs(that hasn't changed group themself)
diff --git a/mysql-test/lib/My/SafeProcess/safe_process.cc b/mysql-test/lib/My/SafeProcess/safe_process.cc
index f19ca62..feb3eb4 100644
--- a/mysql-test/lib/My/SafeProcess/safe_process.cc
+++ b/mysql-test/lib/My/SafeProcess/safe_process.cc
@@ -125,7 +125,7 @@ extern "C" void handle_abort(int sig)
     message("Got signal %d, child_pid: %d, sending ABRT", sig, child_pid);
 
     if (child_pid > 0) {
-	kill (-child_pid, SIGABRT);	// Don't wait for it to terminate
+	kill(-child_pid, SIGABRT);	// Don't wait for it to terminate
     }
 }
 
@@ -141,6 +141,7 @@ extern "C" void handle_signal(int sig)
   // Ignore further signals
   signal(SIGTERM, SIG_IGN);
   signal(SIGINT,  SIG_IGN);
+  signal(SIGHUP, SIG_IGN);
 
   // Continune execution, allow the child to be started and
   // finally terminated by monitor loop
@@ -164,6 +165,7 @@ int main(int argc, char* const argv[] )
   /* Install signal handlers */
   sigaction(SIGTERM, &sa,NULL);
   sigaction(SIGINT, &sa,NULL);
+  sigaction(SIGHUP, &sa, NULL);
   sigaction(SIGCHLD, &sa,NULL);
   sigaction(SIGABRT, &sa_abort,NULL);
 
@@ -224,6 +226,18 @@ int main(int argc, char* const argv[] )
     sleep(1);
   }
 
+  /*
+    Child: Make this process it's own process group to be able to kill
+    it and any its children that hasn't changed a group themselves)
+
+    Parent: Detach from the parent's process group, so that killing a parent
+    group wouldn't kill us (if we're killed, there's no one to kill our child
+    processes that run in their own process group). There's a loop below
+    that monitors the parent, it's enough.
+  */
+  setpgid(0, 0);
+
+
   if (child_pid == 0)
   {
     close(pfd[0]); // Close unused read end
@@ -231,12 +245,9 @@ int main(int argc, char* const argv[] )
     // Use default signal handlers in child
     signal(SIGTERM, SIG_DFL);
     signal(SIGINT,  SIG_DFL);
+    signal(SIGHUP, SIG_DFL);
     signal(SIGCHLD, SIG_DFL);
 
-    // Make this process it's own process group to be able to kill
-    // it and any childs(that hasn't changed group themself)
-    setpgid(0, 0);
-
     if (nocore)
     {
       struct rlimit corelim = { 0, 0 };
diff --git a/mysql-test/lib/generate-ssl-certs.sh b/mysql-test/lib/generate-ssl-certs.sh
new file mode 100755
index 0000000..5dca21a
--- /dev/null
+++ b/mysql-test/lib/generate-ssl-certs.sh
@@ -0,0 +1,30 @@
+#/bin/sh -xe
+
+# simply run me from mysql-test/
+cd std_data/
+
+# boilerplace for "openssl ca" and /etc/ssl/openssl.cnf
+rm -rf demoCA
+mkdir demoCA demoCA/private demoCA/newcerts
+touch demoCA/index.txt
+echo 01 > demoCA/serial
+
+# CA certificate, self-signed
+openssl req -x509 -newkey rsa:2048 -keyout demoCA/private/cakey.pem -out cacert.pem -days 7300 -nodes -subj '/CN=cacert/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB' -text
+
+# server certificate signing request and private key. Note the very long subject (for MDEV-7859)
+openssl req -newkey rsa:1024 -keyout server-key.pem -out demoCA/server-req.pem -days 7300 -nodes -subj '/CN=localhost/C=FI/ST=state or province within country, in other certificates in this file it is the same as L/L=location, usually an address but often ambiguously used/OU=organizational unit name, a division name within an organization/O=organization name, typically a company name'
+# convert the key to yassl compatible format
+openssl rsa -in server-key.pem -out server-key.pem
+# sign the server certificate with CA certificate
+openssl ca -days 7300 -batch -cert cacert.pem -policy policy_anything -out server-cert.pem -infiles demoCA/server-req.pem
+
+openssl req -newkey rsa:8192 -keyout server8k-key.pem -out demoCA/server8k-req.pem -days 7300 -nodes -subj '/CN=server8k/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB'
+openssl rsa -in server8k-key.pem -out server8k-key.pem
+openssl ca -days 7300 -batch -cert cacert.pem -policy policy_anything -out server8k-cert.pem -infiles demoCA/server8k-req.pem
+
+openssl req -newkey rsa:1024 -keyout client-key.pem -out demoCA/client-req.pem -days 7300 -nodes -subj '/CN=client/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB'
+openssl rsa -in client-key.pem -out client-key.pem
+openssl ca -days 7300 -batch -cert cacert.pem -policy policy_anything -out client-cert.pem -infiles demoCA/client-req.pem
+
+rm -rf demoCA
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 60f3475..566423a 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -109,6 +109,7 @@ require "lib/mtr_gprof.pl";
 require "lib/mtr_misc.pl";
 
 $SIG{INT}= sub { mtr_error("Got ^C signal"); };
+$SIG{HUP}= sub { mtr_error("Hangup detected on controlling terminal"); };
 
 our $mysql_version_id;
 my $mysql_version_extra;
@@ -908,6 +909,7 @@ sub run_worker ($) {
   my ($server_port, $thread_num)= @_;
 
   $SIG{INT}= sub { exit(1); };
+  $SIG{HUP}= sub { exit(1); };
 
   # Connect to server
   my $server = new IO::Socket::INET
@@ -1022,15 +1024,7 @@ sub ignore_option {
 
 # Setup any paths that are $opt_vardir related
 sub set_vardir {
-  my ($vardir)= @_;
-  if(IS_WINDOWS)
-  {
-    $opt_vardir= $vardir;
-  }
-  else
-  {
-    $opt_vardir= realpath($vardir);
-  }
+  ($opt_vardir)= @_;
 
   $path_vardir_trace= $opt_vardir;
   # Chop off any "c:", DBUG likes a unix path ex: c:/src/... => /src/...
@@ -1468,7 +1462,7 @@ sub command_line_setup {
     # Search through list of locations that are known
     # to be "fast disks" to find a suitable location
     # Use --mem=<dir> as first location to look.
-    my @tmpfs_locations= ($opt_mem, "/dev/shm", "/tmp");
+    my @tmpfs_locations= ($opt_mem,"/run/shm", "/dev/shm", "/tmp");
 
     foreach my $fs (@tmpfs_locations)
     {
@@ -1484,14 +1478,11 @@ sub command_line_setup {
   # --------------------------------------------------------------------------
   # Set the "var/" directory, the base for everything else
   # --------------------------------------------------------------------------
-  if(defined $ENV{MTR_BINDIR})
-  {
-    $default_vardir= "$ENV{MTR_BINDIR}/mysql-test/var";
-  }
-  else
-  {
-    $default_vardir= "$glob_mysql_test_dir/var";
-  }
+  my $vardir_location= (defined $ENV{MTR_BINDIR} 
+                          ? "$ENV{MTR_BINDIR}/mysql-test" 
+                          : $glob_mysql_test_dir);
+  $vardir_location= realpath $vardir_location unless IS_WINDOWS;
+  $default_vardir= "$vardir_location/var";
 
   if ( ! $opt_vardir )
   {
@@ -2495,6 +2486,7 @@ sub environment_setup {
   # ----------------------------------------------------
   my $exe_replace= mtr_exe_exists(vs_config_dirs('extra', 'replace'),
                                  "$basedir/extra/replace",
+                                 "$bindir/extra$opt_vs_config/replace",
                                  "$path_client_bindir/replace");
   $ENV{'REPLACE'}= native_path($exe_replace);
 
@@ -6375,7 +6367,7 @@ Options to control directories to use
   mem                   Run testsuite in "memory" using tmpfs or ramdisk
                         Attempts to find a suitable location
                         using a builtin list of standard locations
-                        for tmpfs (/dev/shm)
+                        for tmpfs (/run/shm, /dev/shm, /tmp)
                         The option can also be set using environment
                         variable MTR_MEM=[DIR]
   clean-vardir          Clean vardir if tests were successful and if
diff --git a/mysql-test/r/blackhole.result b/mysql-test/r/blackhole.result
index 317070c..1e8ea38 100644
--- a/mysql-test/r/blackhole.result
+++ b/mysql-test/r/blackhole.result
@@ -8,4 +8,11 @@ CREATE TABLE t2 (a INT UNSIGNED, b INT, UNIQUE KEY (a, b)) ENGINE=BLACKHOLE;
 SELECT 1 FROM t1 WHERE a = ANY (SELECT a FROM t2);
 1
 DROP TABLE t1, t2;
+create temporary table t1 (a int) engine=blackhole;
+lock table t1 write;
+truncate table t1;
+select * from t1;
+a
+unlock tables;
+drop temporary table t1;
 End of 5.5 tests 
diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result
index d7023fe..8dd3cc8 100644
--- a/mysql-test/r/create.result
+++ b/mysql-test/r/create.result
@@ -291,7 +291,7 @@ Level	Code	Message
 Note	1050	Table 't1' already exists
 show status like "Opened_tables";
 Variable_name	Value
-Opened_tables	2
+Opened_tables	1
 select * from t1;
 a	b
 1	1
diff --git a/mysql-test/r/ctype_uca.result b/mysql-test/r/ctype_uca.result
index 1d5dd4e..22f2fdf 100644
--- a/mysql-test/r/ctype_uca.result
+++ b/mysql-test/r/ctype_uca.result
@@ -3216,5 +3216,417 @@ a	c1
 10	=> DŽ
 drop table t1;
 #
+# MDEV-7649 wrong result when comparing utf8 column with an invalid literal
+#
+SET NAMES utf8 COLLATE utf8_unicode_ci;
+#
+# Start of ctype_utf8_ilseq.inc
+#
+CREATE TABLE t1 ENGINE=MyISAM AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;;
+ALTER TABLE t1
+ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ADD KEY(ch);
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`id`),
+  KEY `ch` (`ch`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
+SELECT ch FROM t1 WHERE ch='admin𝌆';
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
+ch
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+DELETE FROM t1;
+INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
+INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
+INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
+INSERT INTO t1 (ch) VALUES ('z');
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+ch
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+ch
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+ch
+z
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+ch
+z
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+ALTER TABLE t1 DROP KEY ch;
+# 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+z
+# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+# 0x8F is a bad byte sequence (an mb2tail without mb2head)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+# 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+DROP TABLE t1;
+#
+# End of ctype_utf8_ilseq.inc
+#
+#
+# Start of ctype_utf8_ilseq.inc
+#
+CREATE TABLE t1 ENGINE=HEAP AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;;
+ALTER TABLE t1
+ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ADD KEY(ch);
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`id`),
+  KEY `ch` (`ch`)
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
+SELECT ch FROM t1 WHERE ch='admin𝌆';
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
+ch
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+DELETE FROM t1;
+INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
+INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
+INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
+INSERT INTO t1 (ch) VALUES ('z');
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+ch
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+ch
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+ch
+z
+ALTER TABLE t1 DROP KEY ch;
+# 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+z
+# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+# 0x8F is a bad byte sequence (an mb2tail without mb2head)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+# 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+DROP TABLE t1;
+#
+# End of ctype_utf8_ilseq.inc
+#
+#
 # End of 5.5 tests
 #
diff --git a/mysql-test/r/ctype_uca_innodb.result b/mysql-test/r/ctype_uca_innodb.result
new file mode 100644
index 0000000..a4e1ae0
--- /dev/null
+++ b/mysql-test/r/ctype_uca_innodb.result
@@ -0,0 +1,218 @@
+#
+# Start of 5.5 tests
+#
+#
+# MDEV-7649 wrong result when comparing utf8 column with an invalid literal
+#
+SET NAMES utf8 COLLATE utf8_unicode_ci;
+#
+# Start of ctype_utf8_ilseq.inc
+#
+CREATE TABLE t1 ENGINE=InnoDB AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;;
+ALTER TABLE t1
+ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ADD KEY(ch);
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `ch` varchar(60) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
+  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`id`),
+  KEY `ch` (`ch`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
+SELECT ch FROM t1 WHERE ch='admin𝌆';
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
+ch
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+DELETE FROM t1;
+INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
+INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
+INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
+INSERT INTO t1 (ch) VALUES ('z');
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+ch
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+ch
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+ch
+z
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+ch
+z
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+ALTER TABLE t1 DROP KEY ch;
+# 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+z
+# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+# 0x8F is a bad byte sequence (an mb2tail without mb2head)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+# 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+DROP TABLE t1;
+#
+# End of ctype_utf8_ilseq.inc
+#
+#
+# End of 5.5 tests
+#
diff --git a/mysql-test/r/ctype_utf8.result b/mysql-test/r/ctype_utf8.result
index 9a6dadb..b8ecc05 100644
--- a/mysql-test/r/ctype_utf8.result
+++ b/mysql-test/r/ctype_utf8.result
@@ -5134,5 +5134,633 @@ a	1024
 Warnings:
 Warning	1260	Row 2 was cut by GROUP_CONCAT()
 #
+# MDEV-7814 Assertion `args[0]->fixed' fails in Item_func_conv_charset::Item_func_conv_charset
+#
+CREATE TABLE t1(a CHAR(1) CHARACTER SET latin1, b INT NOT NULL);
+CREATE TABLE t2(a CHAR(1) CHARACTER SET utf8 COLLATE utf8_general_ci, b INT NOT NULL);
+SELECT (SELECT t2.a FROM t2 WHERE t2.a=t1.a) AS aa, b, COUNT(b) FROM t1 GROUP BY aa;
+aa	b	COUNT(b)
+DROP TABLE t1,t2;
+#
+# MDEV-7649 wrong result when comparing utf8 column with an invalid literal
+#
+SET NAMES utf8 COLLATE utf8_general_ci;
+#
+# Start of ctype_utf8_ilseq.inc
+#
+CREATE TABLE t1 ENGINE=InnoDB AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;;
+ALTER TABLE t1
+ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ADD KEY(ch);
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `ch` varchar(60) CHARACTER SET utf8 NOT NULL DEFAULT '',
+  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`id`),
+  KEY `ch` (`ch`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1
+INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
+SELECT ch FROM t1 WHERE ch='admin𝌆';
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
+ch
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+DELETE FROM t1;
+INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
+INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
+INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
+INSERT INTO t1 (ch) VALUES ('z');
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+ch
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+ch
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+ch
+z
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+ch
+z
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+ALTER TABLE t1 DROP KEY ch;
+# 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+aր
+z
+# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+# 0x8F is a bad byte sequence (an mb2tail without mb2head)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+# 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+DROP TABLE t1;
+#
+# End of ctype_utf8_ilseq.inc
+#
+#
+# Start of ctype_utf8_ilseq.inc
+#
+CREATE TABLE t1 ENGINE=MyISAM AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;;
+ALTER TABLE t1
+ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ADD KEY(ch);
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `ch` varchar(60) CHARACTER SET utf8 NOT NULL DEFAULT '',
+  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`id`),
+  KEY `ch` (`ch`)
+) ENGINE=MyISAM DEFAULT CHARSET=latin1
+INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
+SELECT ch FROM t1 WHERE ch='admin𝌆';
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
+ch
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+DELETE FROM t1;
+INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
+INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
+INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
+INSERT INTO t1 (ch) VALUES ('z');
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+ch
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+ch
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+ch
+z
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+ch
+z
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+ALTER TABLE t1 DROP KEY ch;
+# 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+aր
+z
+# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+# 0x8F is a bad byte sequence (an mb2tail without mb2head)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+# 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+DROP TABLE t1;
+#
+# End of ctype_utf8_ilseq.inc
+#
+#
+# Start of ctype_utf8_ilseq.inc
+#
+CREATE TABLE t1 ENGINE=HEAP AS SELECT REPEAT(' ', 60) AS ch LIMIT 0;;
+ALTER TABLE t1
+ADD id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ADD KEY(ch);
+SHOW CREATE TABLE t1;
+Table	Create Table
+t1	CREATE TABLE `t1` (
+  `ch` varchar(60) CHARACTER SET utf8 NOT NULL DEFAULT '',
+  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`id`),
+  KEY `ch` (`ch`)
+) ENGINE=MEMORY DEFAULT CHARSET=latin1
+INSERT INTO t1 (ch) VALUES ('admin'),('admin1');
+SELECT ch FROM t1 WHERE ch='admin𝌆';
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='admin𝌆';
+ch
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='admin𝌆';
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+DELETE FROM t1;
+INSERT INTO t1 (ch) VALUES ('a'), ('a?'), ('a??'), ('a???'), ('a????');
+INSERT INTO t1 (ch) VALUES ('ab'),('a?b'),('a??b'),('a???b'),('a????b');
+INSERT INTO t1 (ch) VALUES ('az'),('a?z'),('a??z'),('a???z'),('a????z');
+INSERT INTO t1 (ch) VALUES ('z');
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D080);
+INSERT INTO t1 (ch) VALUES (_utf8 0x61D680);
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+ch
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+ch
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆' ORDER BY ch;
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86' for column 'ch' at row 1
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch='a𝌆b' ORDER BY ch;
+ch
+Warnings:
+Warning	1366	Incorrect string value: '\xF0\x9D\x8C\x86b' for column 'ch' at row 1
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch<'a𝌆b' ORDER BY ch;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+aր
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 IGNORE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆' ORDER BY ch;
+ch
+z
+SELECT ch FROM t1 FORCE KEY (ch) WHERE ch>'a𝌆b' ORDER BY ch;
+ch
+z
+ALTER TABLE t1 DROP KEY ch;
+# 0xD18F would be a good 2-byte character, 0xD1 is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xD1,'b''');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch<''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+a
+a?
+a??
+a???
+a????
+a????b
+a????z
+a???b
+a???z
+a??b
+a??z
+a?b
+a?z
+ab
+az
+aЀ
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch>''a', 0xD1,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+aր
+z
+# 0xEA9A96 would be a good 3-byte character, 0xEA9A is an incomplete sequence
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0xEA9A,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+# 0x8F is a bad byte sequence (an mb2tail without mb2head)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+# 0x8F8F is a bad byte sequence (an mb2tail without mb2head, two times)
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,''' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+SET @query=CONCAT('SELECT ch FROM t1 WHERE ch=''a', 0x8F8F,'b'' ORDER BY ch');
+PREPARE stmt FROM @query;
+EXECUTE stmt;
+ch
+DROP TABLE t1;
+#
+# End of ctype_utf8_ilseq.inc
+#
+#
 # End of 5.5 tests
 #
diff --git a/mysql-test/r/derived.result b/mysql-test/r/derived.result
index d0f42c3..7c44466 100644
--- a/mysql-test/r/derived.result
+++ b/mysql-test/r/derived.result
@@ -568,3 +568,15 @@ update t1 set balance=(select sum(balance) from (SELECT balance FROM t1 where ac
 set optimizer_switch=@save_derived_optimizer_switch_bug;
 drop table t1;
 set optimizer_switch=@save_derived_optimizer_switch;
+#
+# MDEV-6892: WHERE does not apply
+#
+create table t1 (id int);
+create table t2 (id int);
+insert into t1 values(1),(2),(3);
+insert into t2 values(4),(5),(6);
+select x.id, message from (select id from t1) x left join
+(select id, 1 as message from t2) y on x.id=y.id
+where coalesce(message,0) <> 0;
+id	message
+drop table t1,t2;
diff --git a/mysql-test/r/derived_opt.result b/mysql-test/r/derived_opt.result
index a7adf8f..dc9b591 100644
--- a/mysql-test/r/derived_opt.result
+++ b/mysql-test/r/derived_opt.result
@@ -413,64 +413,64 @@ create VIEW v27 AS select tab1_v27.f1,tab1_v27.f2 from t0 tab1_v27 join v26 tab2
 EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, CAST(f2 AS CHAR) AS f2 FROM v27;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	SIMPLE	tab1_v27	ALL	NULL	NULL	NULL	NULL	5	Using where
-1	SIMPLE	tab1_v26	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v27.f1,test1.tab1_v27.f2	5	Using where; Using join buffer (flat, BNLH join)
+1	SIMPLE	tab1_v26	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v27.f1,test1.tab1_v27.f2	5	Using where; Using join buffer (flat, BNLH join)
 1	SIMPLE	tab1_v25	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v26.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v24	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v25.f1,test1.tab1_v25.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v23	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v24.f1,test1.tab1_v24.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v23	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v24.f1,test1.tab1_v24.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v22	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v23.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v21	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v22.f1,test1.tab1_v22.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v20	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v21.f1,test1.tab1_v21.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v20	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v21.f1,test1.tab1_v21.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v19	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v20.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v18	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v19.f1,test1.tab1_v19.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v17	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v18.f1,test1.tab1_v18.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v17	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v18.f1,test1.tab1_v18.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v16	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v17.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v15	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v16.f1,test1.tab1_v16.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v14	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v15.f1,test1.tab1_v15.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v14	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v15.f1,test1.tab1_v15.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v13	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v14.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v12	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v13.f1,test1.tab1_v13.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v11	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v12.f1,test1.tab1_v12.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v11	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v12.f1,test1.tab1_v12.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v10	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v11.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v9	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v10.f1,test1.tab1_v10.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v8	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v9.f1,test1.tab1_v9.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v8	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v9.f1,test1.tab1_v9.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v7	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v8.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v6	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v7.f1,test1.tab1_v7.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v5	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v6.f1,test1.tab1_v6.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v5	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v6.f1,test1.tab1_v6.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v4	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v5.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v3	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v4.f1,test1.tab1_v4.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v2	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v3.f1,test1.tab1_v3.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v2	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v3.f1,test1.tab1_v3.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v1	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v2.f1	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	t1	hash_ALL	NULL	#hash#$hj	85	test1.tab1_v1.f1,test1.tab1_v1.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	t1	hash_ALL	NULL	#hash#$hj	84	test1.tab1_v1.f1,test1.tab1_v1.f2	5	Using where; Using join buffer (incremental, BNLH join)
 # This used to hang forever:
 EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, CAST(f2 AS CHAR) AS f2 FROM v27;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	SIMPLE	tab1_v27	ALL	NULL	NULL	NULL	NULL	5	Using where
-1	SIMPLE	tab1_v26	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v27.f1,test1.tab1_v27.f2	5	Using where; Using join buffer (flat, BNLH join)
+1	SIMPLE	tab1_v26	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v27.f1,test1.tab1_v27.f2	5	Using where; Using join buffer (flat, BNLH join)
 1	SIMPLE	tab1_v25	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v26.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v24	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v25.f1,test1.tab1_v25.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v23	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v24.f1,test1.tab1_v24.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v23	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v24.f1,test1.tab1_v24.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v22	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v23.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v21	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v22.f1,test1.tab1_v22.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v20	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v21.f1,test1.tab1_v21.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v20	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v21.f1,test1.tab1_v21.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v19	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v20.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v18	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v19.f1,test1.tab1_v19.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v17	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v18.f1,test1.tab1_v18.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v17	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v18.f1,test1.tab1_v18.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v16	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v17.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v15	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v16.f1,test1.tab1_v16.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v14	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v15.f1,test1.tab1_v15.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v14	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v15.f1,test1.tab1_v15.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v13	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v14.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v12	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v13.f1,test1.tab1_v13.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v11	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v12.f1,test1.tab1_v12.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v11	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v12.f1,test1.tab1_v12.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v10	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v11.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v9	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v10.f1,test1.tab1_v10.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v8	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v9.f1,test1.tab1_v9.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v8	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v9.f1,test1.tab1_v9.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v7	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v8.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v6	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v7.f1,test1.tab1_v7.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v5	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v6.f1,test1.tab1_v6.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v5	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v6.f1,test1.tab1_v6.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v4	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v5.f1	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v3	hash_ALL	NULL	#hash#$hj	60	test1.tab1_v4.f1,test1.tab1_v4.f2	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	tab1_v2	hash_ALL	NULL	#hash#$hj	63	test1.tab1_v3.f1,test1.tab1_v3.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	tab1_v2	hash_ALL	NULL	#hash#$hj	62	test1.tab1_v3.f1,test1.tab1_v3.f2	5	Using where; Using join buffer (incremental, BNLH join)
 1	SIMPLE	tab1_v1	hash_ALL	NULL	#hash#$hj	31	test1.tab1_v2.f1	5	Using where; Using join buffer (incremental, BNLH join)
-1	SIMPLE	t1	hash_ALL	NULL	#hash#$hj	85	test1.tab1_v1.f1,test1.tab1_v1.f2	5	Using where; Using join buffer (incremental, BNLH join)
+1	SIMPLE	t1	hash_ALL	NULL	#hash#$hj	84	test1.tab1_v1.f1,test1.tab1_v1.f2	5	Using where; Using join buffer (incremental, BNLH join)
 use test;
 drop database test1;
 set join_cache_level=@tmp_jcl;
diff --git a/mysql-test/r/derived_view.result b/mysql-test/r/derived_view.result
index ec9357e..230660f 100644
--- a/mysql-test/r/derived_view.result
+++ b/mysql-test/r/derived_view.result
@@ -770,7 +770,7 @@ SELECT * FROM t1, t2, v1 WHERE t2.a=t1.a AND t2.a=v1.a AND t2.a=v1.b;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	PRIMARY	t1	system	NULL	NULL	NULL	NULL	1	
 1	PRIMARY	t2	ref	a	a	4	const	1	Using index
-1	PRIMARY	<derived2>	ref	key0	key0	10	const,const	1	
+1	PRIMARY	<derived2>	ref	key0	key0	8	const,const	1	
 2	DERIVED	t3	ALL	NULL	NULL	NULL	NULL	12	Using temporary; Using filesort
 SELECT * FROM t1, t2, v1 WHERE t2.a=t1.a AND t2.a=v1.a AND t2.a=v1.b;
 a	a	a	b
@@ -1518,7 +1518,7 @@ WHERE t3.b IN (SELECT v1.b FROM  v1, t2
 WHERE t2.c = v1.c AND t2.c = v1.b AND v1.b = t3.c);
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	PRIMARY	t2	system	NULL	NULL	NULL	NULL	1	
-1	PRIMARY	<derived3>	ref	key1	key1	10	const,const	0	Start temporary
+1	PRIMARY	<derived3>	ref	key1	key1	8	const,const	0	Start temporary
 1	PRIMARY	t3	ALL	NULL	NULL	NULL	NULL	2	Using where; End temporary; Using join buffer (flat, BNL join)
 3	DERIVED	t1	ALL	NULL	NULL	NULL	NULL	3	
 SELECT * FROM t3 
@@ -1596,7 +1596,7 @@ EXPLAIN
 SELECT v1.a FROM v1,v2 WHERE v2.b = v1.b ORDER BY 1;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	PRIMARY	<derived2>	ALL	NULL	NULL	NULL	NULL	3	Using where; Using filesort
-1	PRIMARY	<derived3>	ref	key0	key0	5	v1.b	2	
+1	PRIMARY	<derived3>	ref	key0	key0	4	v1.b	2	
 3	DERIVED	t2	ALL	NULL	NULL	NULL	NULL	5	Using temporary; Using filesort
 2	DERIVED	t1	ALL	NULL	NULL	NULL	NULL	3	Using temporary; Using filesort
 DROP VIEW v1,v2;
diff --git a/mysql-test/r/error_simulation.result b/mysql-test/r/error_simulation.result
index 8c16ebf..9a78319 100644
--- a/mysql-test/r/error_simulation.result
+++ b/mysql-test/r/error_simulation.result
@@ -100,3 +100,24 @@ DROP TABLE t1,t2;
 #
 # End of 5.1 tests
 #
+#
+# BUG#11747548:DETECT ORPHAN TEMP-POOL FILES, AND HANDLE GRACEFULLY.
+#
+#Set up.
+CREATE TABLE pid_table(pid_no INT);
+CREATE TABLE t1 (a BLOB);
+INSERT INTO t1 VALUES (1), (2);
+#Create MYD and MYI files for intrinsic temp table.
+LOAD DATA LOCAL INFILE 'pid_file' INTO TABLE pid_table;
+#Reports an error since the temp file already exists.
+SELECT a FROM t1 ORDER BY rand(1);
+a
+1
+2
+#With patch, the query executes successfully.
+SELECT a FROM t1 ORDER BY rand(1);
+a
+1
+2
+#cleanup
+DROP TABLE t1, pid_table;
diff --git a/mysql-test/r/file_contents.result b/mysql-test/r/file_contents.result
index 110769e..0b0d5d5 100644
--- a/mysql-test/r/file_contents.result
+++ b/mysql-test/r/file_contents.result
@@ -1,6 +1,6 @@
 
 Checking 'INFO_SRC' and 'INFO_BIN'
-INFO_SRC: Found MySQL version number / Found BZR revision id
+INFO_SRC: Found MySQL version number / Found GIT revision id
 INFO_BIN: Found 'Compiler ... used' line / Found 'Feature flags' line
 
 End of tests
diff --git a/mysql-test/r/filesort_bad_i_s-7585.result b/mysql-test/r/filesort_bad_i_s-7585.result
new file mode 100644
index 0000000..edb1574
--- /dev/null
+++ b/mysql-test/r/filesort_bad_i_s-7585.result
@@ -0,0 +1,9 @@
+SET sql_mode=STRICT_TRANS_TABLES;
+CREATE TABLE t0 (i INT) ENGINE=MyISAM;
+CREATE VIEW v1 AS SELECT * FROM t0;
+CREATE VIEW v2 AS SELECT * FROM v1;
+DROP VIEW IF EXISTS v1;
+CREATE TABLE t1 (i INT) ENGINE=MyISAM;
+INSERT INTO t1 SELECT TABLE_ROWS FROM information_schema.tables ORDER BY TABLE_ROWS;
+DROP VIEW v2;
+DROP TABLE t1, t0;
diff --git a/mysql-test/r/frm_bad_row_type-7333.result b/mysql-test/r/frm_bad_row_type-7333.result
new file mode 100644
index 0000000..198b494
--- /dev/null
+++ b/mysql-test/r/frm_bad_row_type-7333.result
@@ -0,0 +1,14 @@
+call mtr.add_suppression("bad_row_type.frm: invalid value 11 for the field row_format");
+select * from bad_row_type;
+category_id	category_name
+show create table bad_row_type;
+Table	Create Table
+bad_row_type	CREATE TABLE `bad_row_type` (
+  `category_id` int(11) NOT NULL AUTO_INCREMENT,
+  `category_name` varchar(255) DEFAULT NULL,
+  PRIMARY KEY (`category_id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8
+show table status like 'bad_row_type';
+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
+bad_row_type	MyISAM	10	Dynamic	0	0	0	281474976710655	1024	0	1	x	x	NULL	utf8_general_ci	NULL		
+drop table bad_row_type;
diff --git a/mysql-test/r/func_gconcat.result b/mysql-test/r/func_gconcat.result
index b60deae..f12a0c1 100644
--- a/mysql-test/r/func_gconcat.result
+++ b/mysql-test/r/func_gconcat.result
@@ -1091,3 +1091,15 @@ insert into t1 values ('a'),('b');
 select 1 from t1 where a in (select group_concat(a) from t1);
 1
 drop table t1;
+CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE=MyISAM;
+INSERT INTO t1 VALUES ('a'),('b');
+CREATE TABLE t2 (f2 VARCHAR(10)) ENGINE=MyISAM;
+INSERT INTO t2 VALUES ('c');
+CREATE TABLE t3 (f3 VARCHAR(10)) ENGINE=MyISAM;
+INSERT INTO t3 VALUES ('d'),('e');
+SELECT GROUP_CONCAT( f2 ORDER BY ( f2 IN ( SELECT f1 FROM t1 WHERE f1 <= f2 ) ) ) AS field
+FROM ( SELECT * FROM t2 ) AS sq2, t3
+ORDER BY field;
+field
+c,c
+drop table t3, t2, t1;
diff --git a/mysql-test/r/gis.result b/mysql-test/r/gis.result
index ba69416..c2de65e 100644
--- a/mysql-test/r/gis.result
+++ b/mysql-test/r/gis.result
@@ -1,4 +1,5 @@
 DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+DROP VIEW IF EXISTS v1;
 CREATE TABLE gis_point  (fid INTEGER NOT NULL PRIMARY KEY, g POINT);
 CREATE TABLE gis_line  (fid INTEGER NOT NULL PRIMARY KEY, g LINESTRING);
 CREATE TABLE gis_polygon   (fid INTEGER NOT NULL PRIMARY KEY, g POLYGON);
@@ -489,7 +490,7 @@ explain extended select issimple(MultiPoint(Point(3, 6), Point(4, 10))), issimpl
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
 Warnings:
-Note	1003	select st_issimple(st_multipoint(st_point(3,6),st_point(4,10))) AS `issimple(MultiPoint(Point(3, 6), Point(4, 10)))`,st_issimple(st_point(3,6)) AS `issimple(Point(3, 6))`
+Note	1003	select st_issimple(st_multipoint(point(3,6),point(4,10))) AS `issimple(MultiPoint(Point(3, 6), Point(4, 10)))`,st_issimple(point(3,6)) AS `issimple(Point(3, 6))`
 create table t1 (a geometry not null);
 insert into t1 values (GeomFromText('Point(1 2)'));
 insert into t1 values ('Garbage');
@@ -1607,4 +1608,14 @@ create table t1 (pt point);
 insert into t1 values(Geomfromtext('POLYGON((1 1, 2 2, 2 1, 1 1))'));
 ERROR 22007: Incorrect POINT value: 'POLYGON' for column 'pt' at row 1
 drop table t1;
-End of 5.5 tests
+SELECT st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100));
+st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100))
+GEOMETRYCOLLECTION EMPTY
+CREATE VIEW v1 AS SELECT POINT(1,1) AS p;
+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 point(1,1) AS `p`	latin1	latin1_swedish_ci
+SELECT ASTEXT(p) FROM v1;
+ASTEXT(p)
+POINT(1 1)
+DROP VIEW v1;
diff --git a/mysql-test/r/group_by.result b/mysql-test/r/group_by.result
index 32f7d61..1518a2f 100644
--- a/mysql-test/r/group_by.result
+++ b/mysql-test/r/group_by.result
@@ -2339,6 +2339,16 @@ MIN(a)	b
 0	a
 
 DROP TABLE t1;
+create table t1 (a int, b int);
+insert into t1 values (1,11), (1,12), (2,22),(2,23), (4,44),(4,45);
+create table t2 (c int, d int);
+insert into t2 values (1,11), (1,12), (2,22),(2,23), (4,44),(4,45);
+select distinct a,sum(b), (select d from t2 where c=a order by max(b) limit 1) from t1 group by a order by max(b);
+a	sum(b)	(select d from t2 where c=a order by max(b) limit 1)
+1	23	11
+2	45	22
+4	89	44
+drop table t1, t2;
 #
 # LP bug#993726 Wrong result from a query with ALL subquery predicate in WHERE
 #
diff --git a/mysql-test/r/having.result b/mysql-test/r/having.result
index 7ead7e3..514abbf 100644
--- a/mysql-test/r/having.result
+++ b/mysql-test/r/having.result
@@ -666,3 +666,34 @@ SELECT * FROM t1 WHERE f = 2 HAVING ( pk IN ( SELECT 9 ) AND f != 0 );
 pk	f
 DROP TABLE t1;
 End of 5.3 tests
+#
+# Bug MDEV-7301: Unknown column quoted with backticks in HAVING clause when using function.
+# Bug#16221433 MYSQL REJECTS QUERY DUE TO BAD RESOLUTION OF NAMES IN HAVING; VIEW UNREADABLE
+#
+CREATE TABLE `t1` (
+`id` int(11) NOT NULL,
+`title` varchar(45) DEFAULT NULL,
+PRIMARY KEY (`id`)
+) DEFAULT CHARSET=utf8;
+INSERT INTO `t1` VALUES ('1', 'Just for fun');
+INSERT INTO `t1` VALUES ('2', 'Wait until a sunhine');
+INSERT INTO `t1` VALUES ('3', 'Take a new turn');
+SELECT `id`, SHA1(`title`) AS `column_1`
+FROM `t1`
+HAVING `column_1` LIKE '8%';
+id	column_1
+1	80a12660d24a72460e5e292fe33f870276d7f40a
+expected 1 row(s) returned
+SELECT `id`, SHA1(`title`) AS `column_1`
+FROM `t1`
+HAVING UPPER(column_1) LIKE '8%';
+id	column_1
+1	80a12660d24a72460e5e292fe33f870276d7f40a
+expected -- 1 row(s) returned
+SELECT `id`, SHA1(`title`) AS `column_1`
+FROM `t1`
+HAVING UPPER(`column_1`) LIKE '8%';
+id	column_1
+1	80a12660d24a72460e5e292fe33f870276d7f40a
+expected -- 1 row(s) returned not ER_BAD_FIELD_ERROR
+drop table t1;
diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result
index 729b9e9..d98f816 100644
--- a/mysql-test/r/information_schema.result
+++ b/mysql-test/r/information_schema.result
@@ -1959,5 +1959,20 @@ drop view v1;
 # Clean-up.
 drop database mysqltest;
 #
+# Test for bug #16869534 - "QUERYING SUBSET OF COLUMNS DOESN'T USE TABLE
+#                           CACHE; OPENED_TABLES INCREASES"
+#
+SELECT * FROM INFORMATION_SCHEMA.TABLES;
+SELECT VARIABLE_VALUE INTO @val1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE
+VARIABLE_NAME LIKE 'Opened_tables';
+SELECT ENGINE FROM INFORMATION_SCHEMA.TABLES;
+# The below SELECT query should give same output as above SELECT query.
+SELECT VARIABLE_VALUE INTO @val2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE
+VARIABLE_NAME LIKE 'Opened_tables';
+# The below select should return '1'
+SELECT @val1 = @val2;
+ at val1 = @val2
+1
+#
 # End of 5.5 tests
 #
diff --git a/mysql-test/r/log_errchk.result b/mysql-test/r/log_errchk.result
index 407fba2..7311108 100644
--- a/mysql-test/r/log_errchk.result
+++ b/mysql-test/r/log_errchk.result
@@ -1,5 +1,4 @@
-call mtr.add_suppression("Could not use");
-# Case 1: Setting fife file to general_log_file and slow_query_log_file
+# Case 1: Setting fifo file to general_log_file and slow_query_log_file
 #         system variable.
 SET GLOBAL general_log_file="MYSQLTEST_VARDIR/tmp/general_log.fifo";;
 ERROR 42000: Variable 'general_log_file' can't be set to the value of 'MYSQLTEST_VARDIR/tmp/general_log.fifo'
@@ -7,4 +6,6 @@ SET GLOBAL slow_query_log_file="MYSQLTEST_VARDIR/tmp/slow_log.fifo";;
 ERROR 42000: Variable 'slow_query_log_file' can't be set to the value of 'MYSQLTEST_VARDIR/tmp/slow_log.fifo'
 # Case 2: Starting server with fifo file as general log file
 #         and slow query log file.
+call mtr.add_suppression("Could not use .* for logging \\(error 6\\)");
+call mtr.add_suppression("File '.*' not found \\(Errcode: 6\\)");
 Setting fifo file as general log file and slow query log failed.
diff --git a/mysql-test/r/log_tables_upgrade.result b/mysql-test/r/log_tables_upgrade.result
index 5ed59ee..e68b34e 100644
--- a/mysql-test/r/log_tables_upgrade.result
+++ b/mysql-test/r/log_tables_upgrade.result
@@ -11,8 +11,9 @@ Table	Op	Msg_type	Msg_text
 test.bug49823	repair	status	OK
 RENAME TABLE general_log TO renamed_general_log;
 RENAME TABLE test.bug49823 TO general_log;
-Phase 1/3: Fixing table and database names
-Phase 2/3: Checking and upgrading tables
+Phase 1/4: Fixing views
+Phase 2/4: Fixing table and database names
+Phase 3/4: Checking and upgrading tables
 Processing databases
 information_schema
 mtr
@@ -44,7 +45,7 @@ mysql.time_zone_transition_type                    OK
 mysql.user                                         OK
 performance_schema
 test
-Phase 3/3: Running 'mysql_fix_privilege_tables'...
+Phase 4/4: Running 'mysql_fix_privilege_tables'
 OK
 DROP TABLE general_log;
 RENAME TABLE renamed_general_log TO general_log;
diff --git a/mysql-test/r/multi_update.result b/mysql-test/r/multi_update.result
index aef001c..09df98c 100644
--- a/mysql-test/r/multi_update.result
+++ b/mysql-test/r/multi_update.result
@@ -823,4 +823,198 @@ create view v3 as select t2.id, t3.b from t2 join t3 using(id);
 update t1 join v3 using (id) set t1.a=0;
 drop view v1, v2, v3;
 drop table t2, t3, t1;
+#
+# MDEV-7613: MariaDB 5.5.40 server crash on update table left join
+# with a view  
+#
+CREATE TABLE `t1` (
+`f1` varchar(6) COLLATE latin1_general_ci DEFAULT NULL,
+`f2` varchar(6) COLLATE latin1_general_ci DEFAULT NULL,
+`f3` varchar(7) COLLATE latin1_general_ci DEFAULT NULL,
+`f4` varchar(15) COLLATE latin1_general_ci DEFAULT NULL,
+`f5` datetime DEFAULT NULL,
+`f6` varchar(2) COLLATE latin1_general_ci DEFAULT NULL,
+`f7` varchar(2) COLLATE latin1_general_ci DEFAULT NULL,
+`ff1` int(1) DEFAULT NULL,
+`ff2` int(1) DEFAULT NULL,
+`ff3` int(1) DEFAULT NULL,
+`ff4` int(1) DEFAULT NULL,
+`ff5` int(1) DEFAULT NULL,
+`ff6` int(1) DEFAULT NULL,
+`ff7` int(1) DEFAULT NULL,
+`ff8` int(2) DEFAULT NULL,
+`ff9` int(1) DEFAULT NULL,
+`ff10` int(1) DEFAULT NULL,
+`ff11` int(1) DEFAULT NULL,
+`ff12` int(1) DEFAULT NULL,
+`ff13` int(1) DEFAULT NULL,
+`ff14` int(1) DEFAULT NULL,
+`ff15` int(1) DEFAULT NULL,
+`f8` varchar(70) COLLATE latin1_general_ci DEFAULT NULL,
+`f9` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
+`f10` varchar(50) COLLATE latin1_general_ci NOT NULL,
+`f11` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
+`f12` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+`f13` text COLLATE latin1_general_ci,
+`f14` time DEFAULT NULL,
+`f15` varchar(30) COLLATE latin1_general_ci DEFAULT NULL,
+`fg1` int(11) DEFAULT NULL,
+`fg2` int(11) DEFAULT NULL,
+`fg3` int(11) DEFAULT NULL,
+`fg4` int(11) DEFAULT NULL,
+`fg5` int(11) DEFAULT NULL,
+`fg6` int(11) DEFAULT NULL,
+`fg7` int(11) DEFAULT NULL,
+`fg9` int(11) DEFAULT NULL,
+`fg10` int(11) DEFAULT NULL,
+`fg11` int(11) DEFAULT NULL,
+`fg12` int(11) DEFAULT NULL,
+`fg13` int(11) DEFAULT NULL,
+`fg14` int(11) DEFAULT NULL,
+`fg15` int(11) DEFAULT NULL,
+`f16` double DEFAULT NULL,
+`f17` double DEFAULT NULL,
+`f18` int(11) DEFAULT NULL,
+`f19` int(11) DEFAULT NULL,
+`f20` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+`f21` int(11) DEFAULT NULL,
+`f22` int(11) DEFAULT NULL,
+`f23` int(11) DEFAULT NULL,
+`f24` double DEFAULT NULL,
+`f25` int(11) DEFAULT NULL,
+`f26` double DEFAULT NULL,
+`f27` int(11) DEFAULT NULL,
+`f28` int(11) DEFAULT NULL,
+`f29` double DEFAULT NULL,
+`f30` int(11) DEFAULT NULL,
+`f31` double DEFAULT NULL,
+`PZ` double DEFAULT NULL,
+`f32` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
+`f33` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
+`f34` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
+`f35` varchar(30) COLLATE latin1_general_ci DEFAULT NULL,
+`f36` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
+`f37` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
+`f20_2` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
+`f38` varchar(30) COLLATE latin1_general_ci DEFAULT NULL COMMENT 'Email = E-Mail / Whitemail = Brief',
+`insert_ts` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+PRIMARY KEY (`f10`),
+KEY `f5_f12` (`f5`,`f12`),
+KEY `f5_f20` (`f5`,`f20`),
+KEY `f5_f33` (`f5`,`f33`)
+) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ROW_FORMAT=COMPACT;
+INSERT INTO `t1` VALUES ('2011/2','201105','2011/19','gstfbnfr','2011-05-06
+00:00:00','gg','Ag',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,'','','','','','','21:56:28','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,NULL,NULL,0,0,'Dffgult',1,0,0,NULL,0,NULL,0,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ggggil',NULL),('2008/4','200812','2008/50','hgckbgfx','2008-12-08
+00:00:00','gg','Ag',2,NULL,2,1,1,1,1,24,1,NULL,1,1,1,2,0,'gusschlifßlich
+zugg
+gflffonifrfn','88.77.79.214','10001614','fg-gtgggggdgtfn','fg-gtgggggdgtfn','birgit.tfrpfllf at gggx.df','11:55:21',NULL,1,0,1,1,1,1,1,1,0,1,1,1,0,0,NULL,NULL,0,4,'ffrtrgg',1,6,10,1.66666666666667,4,1,10,14,1.4,1,NULL,NULL,'out',NULL,NULL,'49','ggobilcogg','k.A.',NULL,'ggggil',NULL),('2008/4','200812','2008/51','hgckbgfx','2008-12-15
+00:00:00','gg','Ag',4,5,5,4,5,5,5,NULL,4,5,1,1,1,4,0,'gusschlifßlich zugg
+gflffonifrfn','79.197.185.64','10001686','fg-gtgggggdgtfn','fg-gtgggggdgtfn','kgtjg at swfftys.df','09:28:42',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,11,4.71428571428571,16,1.2,12,49,4.08111111111111,1,NULL,NULL,'out',NULL,NULL,'49','ggobilcogg','k.A.',NULL,'ggggil',NULL),('2008/4','200812','2008/50','nufchti','2008-12-08
+00:00:00','gg','Ag',4,1,1,5,5,5,5,12,4,5,1,1,2,1,0,'gusschlifßlich zugg
+gflffonifrfn','89.54.151.216','10001700','fg-gtgggggdgtfn','fg-gtgggggdgtfn','H_K2006 at frffnft.df','16:41:45',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,10,4.28571428571429,11,2.6,12,41,1.58111111111111,1,NULL,NULL,'ffrtrgg
+Bgckofficf 5','vb5','Nufchtfr,
+Iris','49','ggobilcogg','grfurt','Intfrn','ggggil',NULL),('2008/4','200812','2008/50','junghdro','2008-12-11
+00:00:00','Do','Ag',2,2,5,5,4,4,2,72,2,5,2,2,1,1,0,'gusschlifßlich zugg
+gflffonifrfn','84.61.20.216','10001849','fg-ggriff','fg-ggriff','schofnf-glftfr at grcor.df','20:18:05',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,24,1.42857142857141,12,2.4,12,16,1,1,NULL,NULL,'ffrtrgg
+Bgckofficf 5','vb5','Junghfinrich,
+Dorothfg','49','ggobilcogg','grfurt','Intfrn','ggggil',NULL),('2008/4','200812','2008/50','fbflktj','2008-12-08
+00:00:00','gg','Ag',4,2,2,5,1,1,1,24,NULL,NULL,NULL,NULL,NULL,0,0,'Kgggfrg
+bzw. DigiCggg
+Funktion','217.84.62.6','10001888','fg-Kündigungfn','fg-Kündigungfn','f.frofschkf at gggx.df','21:05:59',NULL,1,1,1,1,1,1,1,0,0,0,0,0,0,0,NULL,NULL,0,0,'ffrtrgg',1,7,16,2.28571428571429,0,NULL,7,16,2.28571428571429,0,NULL,NULL,'out',NULL,'gbfl,
+Kgtjg','49','ggobilcogg','k.A.','gxtfrn','ggggil',NULL),('2008/4','200812','2008/50','gltggggri','2008-12-09
+00:00:00','Di','Ag',4,1,1,4,2,1,2,16,1,2,2,2,2,2,0,'gusschlifßlich zugg
+gflffonifrfn','81.171.157.211','10001988','fg-gtgggggdgtfn','fg-gtgggggdgtfn','bistfr at nftcolognf.df','11:07:54',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,21,1,11,2.2,12,12,2.66666666666667,1,NULL,NULL,'out',NULL,NULL,'49','ggobilcogg','k.A.','gxtfrn','ggggil',NULL),('2008/4','200812','2008/50','ggufllfsg','2008-12-09
+00:00:00','Di','Ag',2,2,2,2,1,1,2,12,2,2,2,1,1,2,0,'ggobilfs
+Intfrnft','62.154.142.186','10002097','fg-gtgggggdgtfn','fg-gtgggggdgtfn','norbfrtwfdlich at fgggil.df','09:42:11',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,12,1.71428571428571,8,1.6,12,20,1.66666666666667,1,NULL,NULL,'ffrtrgg
+Bgckofficf 1','vb1','Mufllfr,
+ggbinf','49','ggobilcogg','grfurt','Intfrn','ggggil',NULL),('2008/4','200812','2008/50','wggnfg','2008-12-09
+00:00:00','Di','Ag',5,5,5,5,5,5,5,12,5,5,5,5,5,5,0,'gls grsgtz für
+Ffstnftz','85.180.141.246','10002127','fg-Kündigungfn','fg-Kündigungfn','rfinhgrt.gdolph at yghoo.df','17:44:11',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,15,5,25,5,12,60,5,1,NULL,NULL,'ffrtrgg
+Bgckofficf 1','vb1','Wggnfr,
+Annftt','49','ggobilcogg','grfurt','Intfrn','ggggil',NULL),('2008/4','200812','2008/50','schubrbf','2008-12-10
+00:00:00','Mi','Ag',1,2,NULL,2,1,2,1,24,NULL,NULL,NULL,NULL,NULL,0,0,'Kgggfrg
+bzw. DigiCggg
+Funktion','91.40.98.242','10002160','fg-gtgggggdgtfn','fg-gtgggggdgtfn','olgf.lifb at gggx.nft','18:18:25',NULL,1,1,0,1,1,1,1,0,0,0,0,0,0,0,NULL,NULL,0,0,'ffrtrgg',1,6,11,1.81111111111111,0,NULL,6,11,1.81111111111111,0,NULL,NULL,'out',NULL,NULL,'49','ggobilcogg','k.A.','gxtfrn','ggggil',NULL);
+CREATE TABLE `t2` (
+`ft1` datetime DEFAULT NULL,
+`ft2` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+`ft3` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+`ft4` varchar(255) COLLATE latin1_general_ci NOT NULL DEFAULT '',
+`ft5` varchar(255) COLLATE latin1_general_ci NOT NULL DEFAULT '',
+`ft6` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+`ft6_2` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+`ft7` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+`ft8` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+`ft9` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+`ft10` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+PRIMARY KEY (`ft4`,`ft5`)
+) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
+INSERT INTO `t2` VALUES ('2013-03-13 00:00:00','2013-03-13 00:00:00','9999-12-31 00:00:00','#','extern FP f32 2','Default','Intern','DEFAULT',NULL,NULL,NULL),('2013-03-13 00:00:00','2013-03-13 00:00:00','9999-12-31 00:00:00','#','extern FP f32 3','Default','Intern','DEFAULT',NULL,NULL,NULL);
+CREATE TABLE `t3` (
+`fe1` int(10) NOT NULL DEFAULT '0',
+`fe2` char(50) COLLATE latin1_general_ci DEFAULT 'nn',
+`f34` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+`fe3` double DEFAULT NULL,
+`fe4` double DEFAULT NULL,
+`fe5` char(4) COLLATE latin1_general_ci DEFAULT NULL,
+`f32` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+`fe6` int(3) DEFAULT '0',
+`fe7` char(1) COLLATE latin1_general_ci DEFAULT NULL,
+`ft6` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+`f33` char(4) COLLATE latin1_general_ci DEFAULT NULL COMMENT 'virtuelle f33s',
+`fe8` char(4) COLLATE latin1_general_ci DEFAULT NULL COMMENT 'aus dem ADS',
+`f37` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+`fe9` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+`fe10` int(5) DEFAULT '0',
+`fe11` int(10) DEFAULT '0',
+`fe12` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+`fe13` double DEFAULT NULL,
+`fe14` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+`fe15` date DEFAULT NULL,
+`fe16` date DEFAULT NULL,
+`fe17` int(10) DEFAULT '0',
+`fe18` date NOT NULL DEFAULT '0000-00-00',
+`ft3` date NOT NULL DEFAULT '0000-00-00',
+PRIMARY KEY (`fe1`),
+KEY `fe2` (`fe2`,`fe18`,`ft3`),
+KEY `f33` (`f33`),
+KEY `fe8` (`fe8`)
+) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ROW_FORMAT=COMPACT COMMENT='CustomerService und Outsourcer Userinformationen';
+INSERT INTO `t3` VALUES (1,'aabggn','gab, glgna',0,NULL,NULL,'gxtgrn D gnd g
+gggsbgrg',0,NULL,'gxtgrn','dsa','dsa','gggsbgrg','0',91611,0,'0',0,'agsggschigdgn','2014-08-11','2014-09-05',0,'2011-01-01','2014-08-11'),(4,'aabigr','gab,
+Iggr',0,NULL,NULL,'gxtgrn D gnd g
+gggsbgrg',0,NULL,'gxtgrn','dsa','dsa','gggsbgrg','0',0,0,'0',0,'agsggschigdgn','2014-08-11','2014-09-05',0,'2012-10-01','2014-08-11'),(7,'abgcrist','gbg,
+ghristggna',15182,1,'ja','ggshilfg gxtgrn 1',1,NULL,'gg
+galgs','ag1','ag1','grfgrt','0',11941,0,'0',0,'agsggschigdgn','2014-01-11',NULL,11802051,'1900-01-01','2010-06-10'),(8,'abgcrist','gbg,
+ghristggna',15182,1,'ja','Zgntralg gftgr galgs Bgtrgggng 1',1,NULL,'gg
+galgs','sb1','sb1','grfgrt','0',11941,0,'0',0,'agsggschigdgn','2014-01-11',NULL,11802051,'2010-07-01','2012-08-11'),(9,'abgcrist','gbg,
+ghristggna',15182,1,'ja','galgs Inbggnd 2',1,NULL,'gg
+galgs','si2','si2','grfgrt','0',11941,0,'0',0,'agsggschigdgn','2014-01-11',NULL,11802051,'2012-09-01','2014-01-11'),(10,'abgcgr','gbg,
+ggrnglgg',14962,1,NULL,'galgs Ogtbggnd 1',1,NULL,'gg
+galgs','sg1','sg1','grfgrt','0',12401,0,'abgcrn',1,NULL,NULL,NULL,11800647,'1900-01-01','2010-11-10'),(11,'abgcgr','gbg,
+ggrnglgg',14962,1,NULL,'galgs Ogtbggnd 1',1,NULL,'gg
+galgs','sg1','sg1','grfgrt','0',12401,0,'abgcrn',1,NULL,NULL,NULL,11800647,'2010-12-01','2011-08-11'),(12,'abgcgr','gbg,
+ggrnglgg',14962,1,NULL,'galgs Ogtbggnd 2',1,NULL,'gg
+galgs','sg2','sg2','grfgrt','0',12401,0,'abgcrn',1,NULL,NULL,NULL,11800647,'2011-09-01','2012-01-11'),(13,'abgcgr','gbg,
+ggrnglgg',14962,0.75,NULL,'galgs Ogtbggnd 2',1,NULL,'gg
+galgs','sg2','sg2','grfgrt','0',12401,0,'abgcrn',1,NULL,NULL,'2011-09-11',11800647,'2012-02-01','2011-08-11'),(14,'rgghrsgr','gbg,
+gigrid',14781,1,'ja','Fgrdgrgngsmanaggmgnt 1',1,NULL,'gg
+Zahlgng','fm1','fm1','grfgrt','0',12141,0,'0',1,NULL,NULL,NULL,11010781,'1900-01-01','2012-08-11');
+CREATE ALGORITHM=MERGE
+DEFINER=`root`@`localhost` SQL SECURITY DEFINER
+VIEW `v1` AS select `t1a`.`ft1` AS `ft1`,`t1a`.`ft2` AS `ft2`,`t1a`.`ft3` AS `ft3`,`t1a`.`ft4` AS `ft4`,`t1a`.`ft5` AS `ft5`,`t1a`.`ft6` AS `ft6`,`t1a`.`ft6_2` AS `ft6_2`,`t1a`.`ft7` AS `ft7`,`t1a`.`ft8` AS `ft8`,`t1a`.`ft9` AS `ft9`,`t1a`.`ft10` AS `ft10` from `t2` `t1a` where (if((`t1a`.`ft10` = 'virtuell'),0,1) = 1);
+CREATE ALGORITHM=UNDEFINED
+DEFINER=`root`@`localhost` SQL SECURITY DEFINER
+VIEW `v2` AS select distinct `t1b`.`fe2` AS `fe2`,min(`t1b`.`fe18`) AS `fe18`,max(`t1b`.`ft3`) AS `ft3` from `t3` `t1b` where ((`t1b`.`fe2` <> '') and (curdate() >= `t1b`.`fe18`)) group by `t1b`.`fe2`;
+CREATE ALGORITHM=UNDEFINED
+DEFINER=`root`@`localhost` SQL SECURITY DEFINER
+VIEW `v3` AS select `t1c`.`fe2` AS `fe2`,`t1c`.`f34` AS `f34`,`t1c`.`f33` AS `f33`,`t1c`.`f32` AS `f32`,`t1c`.`f37` AS `f37`,`t1c`.`fe10` AS `fe10`,if((`tov`.`ft6` in ('klarmobil','callmobile')),`tov`.`ft9`,`tov`.`ft6`) AS `ft6_1`,`tov`.`ft6_2` AS `ft6_2`,`ua`.`fe18` AS `fe18`,`ua`.`ft3` AS `ft3` from ((`t3` `t1c` left join `v2` `ua` on((`t1c`.`fe2` = `ua`.`fe2`))) left join `v1` `tov` on((`t1c`.`fe8` = `tov`.`ft4`))) where (`t1c`.`ft3` = `ua`.`ft3`) group by `t1c`.`fe2`,`t1c`.`f34`,`t1c [...]
+UPDATE t1 t1  left join v3 t2 on t1.f4 = t2.fe2    SET t1.f20 = t2.ft6_1,    t1.f32 = t2.f32,    t1.f33 = t2.f33,    t1.f37 = t2.f37    WHERE f5 >= '2015-02-01';
+#MDEV-8018: main.multi_update fails with --ps-protocol
+prepare stmt1 from "UPDATE t1 t1  left join v3 t2 on t1.f4 = t2.fe2    SET t1.f20 = t2.ft6_1,    t1.f32 = t2.f32,    t1.f33 = t2.f33,    t1.f37 = t2.f37    WHERE f5 >= '2015-02-01'";
+execute stmt1;
+execute stmt1;
+deallocate prepare stmt1;
+drop view v3,v2,v1;
+drop table t1,t2,t3;
 end of 5.5 tests
diff --git a/mysql-test/r/mysql_upgrade.result b/mysql-test/r/mysql_upgrade.result
index fb83108..8b8fea2 100644
--- a/mysql-test/r/mysql_upgrade.result
+++ b/mysql-test/r/mysql_upgrade.result
@@ -1,6 +1,7 @@
 Run mysql_upgrade once
-Phase 1/3: Fixing table and database names
-Phase 2/3: Checking and upgrading tables
+Phase 1/4: Fixing views
+Phase 2/4: Fixing table and database names
+Phase 3/4: Checking and upgrading tables
 Processing databases
 information_schema
 mtr
@@ -31,13 +32,14 @@ mysql.time_zone_transition_type                    OK
 mysql.user                                         OK
 performance_schema
 test
-Phase 3/3: Running 'mysql_fix_privilege_tables'...
+Phase 4/4: Running 'mysql_fix_privilege_tables'
 OK
 Run it again - should say already completed
 This installation of MySQL is already upgraded to VERSION, use --force if you still need to run mysql_upgrade
 Force should run it regardless of wether it's been run before
-Phase 1/3: Fixing table and database names
-Phase 2/3: Checking and upgrading tables
+Phase 1/4: Fixing views
+Phase 2/4: Fixing table and database names
+Phase 3/4: Checking and upgrading tables
 Processing databases
 information_schema
 mtr
@@ -68,13 +70,14 @@ mysql.time_zone_transition_type                    OK
 mysql.user                                         OK
 performance_schema
 test
-Phase 3/3: Running 'mysql_fix_privilege_tables'...
+Phase 4/4: Running 'mysql_fix_privilege_tables'
 OK
 CREATE USER mysqltest1@'%' IDENTIFIED by 'sakila';
 GRANT ALL ON *.* TO mysqltest1@'%';
 Run mysql_upgrade with password protected account
-Phase 1/3: Fixing table and database names
-Phase 2/3: Checking and upgrading tables
+Phase 1/4: Fixing views
+Phase 2/4: Fixing table and database names
+Phase 3/4: Checking and upgrading tables
 Processing databases
 information_schema
 mtr
@@ -105,7 +108,7 @@ mysql.time_zone_transition_type                    OK
 mysql.user                                         OK
 performance_schema
 test
-Phase 3/3: Running 'mysql_fix_privilege_tables'...
+Phase 4/4: Running 'mysql_fix_privilege_tables'
 OK
 DROP USER mysqltest1@'%';
 Version check failed. Got the following error when calling the 'mysql' command line client
@@ -115,8 +118,9 @@ Run mysql_upgrade with a non existing server socket
 mysqlcheck: Got error: 2005: Unknown MySQL server host 'not_existing_host' (errno) when trying to connect
 FATAL ERROR: Upgrade failed
 set GLOBAL sql_mode='STRICT_ALL_TABLES,ANSI_QUOTES,NO_ZERO_DATE';
-Phase 1/3: Fixing table and database names
-Phase 2/3: Checking and upgrading tables
+Phase 1/4: Fixing views
+Phase 2/4: Fixing table and database names
+Phase 3/4: Checking and upgrading tables
 Processing databases
 information_schema
 mtr
@@ -147,7 +151,7 @@ mysql.time_zone_transition_type                    OK
 mysql.user                                         OK
 performance_schema
 test
-Phase 3/3: Running 'mysql_fix_privilege_tables'...
+Phase 4/4: Running 'mysql_fix_privilege_tables'
 OK
 set GLOBAL sql_mode=default;
 #
@@ -158,8 +162,9 @@ CREATE PROCEDURE testproc() BEGIN END;
 UPDATE mysql.proc SET character_set_client = NULL WHERE name LIKE 'testproc';
 UPDATE mysql.proc SET collation_connection = NULL WHERE name LIKE 'testproc';
 UPDATE mysql.proc SET db_collation = NULL WHERE name LIKE 'testproc';
-Phase 1/3: Fixing table and database names
-Phase 2/3: Checking and upgrading tables
+Phase 1/4: Fixing views
+Phase 2/4: Fixing table and database names
+Phase 3/4: Checking and upgrading tables
 Processing databases
 information_schema
 mtr
@@ -190,7 +195,7 @@ mysql.time_zone_transition_type                    OK
 mysql.user                                         OK
 performance_schema
 test
-Phase 3/3: Running 'mysql_fix_privilege_tables'...
+Phase 4/4: Running 'mysql_fix_privilege_tables'
 OK
 CALL testproc();
 DROP PROCEDURE testproc;
@@ -204,8 +209,9 @@ WARNING: NULL values of the 'db_collation' column ('mysql.proc' table) have been
 GRANT USAGE ON *.* TO 'user3'@'%';
 GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%';
 Run mysql_upgrade with all privileges on a user
-Phase 1/3: Fixing table and database names
-Phase 2/3: Checking and upgrading tables
+Phase 1/4: Fixing views
+Phase 2/4: Fixing table and database names
+Phase 3/4: Checking and upgrading tables
 Processing databases
 information_schema
 mtr
@@ -236,7 +242,7 @@ mysql.time_zone_transition_type                    OK
 mysql.user                                         OK
 performance_schema
 test
-Phase 3/3: Running 'mysql_fix_privilege_tables'...
+Phase 4/4: Running 'mysql_fix_privilege_tables'
 OK
 SHOW GRANTS FOR 'user3'@'%';
 Grants for user3@%
@@ -245,7 +251,10 @@ GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%'
 DROP USER 'user3'@'%';
 End of 5.1 tests
 The --upgrade-system-tables option was used, databases won't be touched.
-Phase 3/3: Running 'mysql_fix_privilege_tables'...
+Phase 1/4: Fixing views... Skipped
+Phase 2/4: Fixing table and database names ... Skipped
+Phase 3/4: Checking and upgrading tables... Skipped
+Phase 4/4: Running 'mysql_fix_privilege_tables'
 OK
 #
 # Bug#11827359 60223: MYSQL_UPGRADE PROBLEM WITH OPTION
@@ -253,8 +262,9 @@ OK
 #
 # Droping the previously created mysql_upgrade_info file..
 # Running mysql_upgrade with --skip-write-binlog..
-Phase 1/3: Fixing table and database names
-Phase 2/3: Checking and upgrading tables
+Phase 1/4: Fixing views
+Phase 2/4: Fixing table and database names
+Phase 3/4: Checking and upgrading tables
 Processing databases
 information_schema
 mtr
@@ -285,7 +295,7 @@ mysql.time_zone_transition_type                    OK
 mysql.user                                         OK
 performance_schema
 test
-Phase 3/3: Running 'mysql_fix_privilege_tables'...
+Phase 4/4: Running 'mysql_fix_privilege_tables'
 OK
 #
 # MDEV-4332 Increase username length from 16 characters
@@ -313,8 +323,9 @@ GRANT INSERT ON mysql.user TO very_long_user_name_number_2;
 GRANT UPDATE (User) ON mysql.db TO very_long_user_name_number_1;
 GRANT UPDATE (User) ON mysql.db TO very_long_user_name_number_2;
 CREATE PROCEDURE test.pr() BEGIN END;
-Phase 1/3: Fixing table and database names
-Phase 2/3: Checking and upgrading tables
+Phase 1/4: Fixing views
+Phase 2/4: Fixing table and database names
+Phase 3/4: Checking and upgrading tables
 Processing databases
 information_schema
 mtr
@@ -345,7 +356,7 @@ mysql.time_zone_transition_type                    OK
 mysql.user                                         OK
 performance_schema
 test
-Phase 3/3: Running 'mysql_fix_privilege_tables'...
+Phase 4/4: Running 'mysql_fix_privilege_tables'
 OK
 SELECT definer FROM mysql.proc WHERE db = 'test' AND name = 'pr';
 definer
diff --git a/mysql-test/r/mysql_upgrade_ssl.result b/mysql-test/r/mysql_upgrade_ssl.result
index a08e7c1..858a2d4 100644
--- a/mysql-test/r/mysql_upgrade_ssl.result
+++ b/mysql-test/r/mysql_upgrade_ssl.result
@@ -1,8 +1,9 @@
 #
 # Bug#55672 mysql_upgrade dies with internal error 
 #
-Phase 1/3: Fixing table and database names
-Phase 2/3: Checking and upgrading tables
+Phase 1/4: Fixing views
+Phase 2/4: Fixing table and database names
+Phase 3/4: Checking and upgrading tables
 Processing databases
 information_schema
 mtr
@@ -33,5 +34,5 @@ mysql.time_zone_transition_type                    OK
 mysql.user                                         OK
 performance_schema
 test
-Phase 3/3: Running 'mysql_fix_privilege_tables'...
+Phase 4/4: Running 'mysql_fix_privilege_tables'
 OK
diff --git a/mysql-test/r/mysql_upgrade_view.result b/mysql-test/r/mysql_upgrade_view.result
new file mode 100644
index 0000000..0e71d7f
--- /dev/null
+++ b/mysql-test/r/mysql_upgrade_view.result
@@ -0,0 +1,234 @@
+set sql_log_bin=0;
+drop table if exists t1,v1,v2,v3,v4,v1badcheck;
+drop view if exists t1,v1,v2,v3,v4,v1badcheck;
+create table t1(a int);
+create table kv(k varchar(30) NOT NULL PRIMARY KEY,v  varchar(50));
+flush tables;
+check view v1;
+Table	Op	Msg_type	Msg_text
+test.v1	check	status	OK
+check view v1badcheck;
+Table	Op	Msg_type	Msg_text
+test.v1badcheck	check	note	View text checksum failed
+check view v2;
+Table	Op	Msg_type	Msg_text
+test.v2	check	status	OK
+check view v3;
+Table	Op	Msg_type	Msg_text
+test.v3	check	status	OK
+check view v1 for upgrade;
+Table	Op	Msg_type	Msg_text
+test.v1	check	error	Upgrade required. Please do "REPAIR VIEW `v1`" or dump/reload to fix it!
+check view v1badcheck for upgrade;
+Table	Op	Msg_type	Msg_text
+test.v1badcheck	check	note	View text checksum failed
+check view v2 for upgrade;
+Table	Op	Msg_type	Msg_text
+test.v2	check	error	Upgrade required. Please do "REPAIR VIEW `v2`" or dump/reload to fix it!
+check view v3 for upgrade;
+Table	Op	Msg_type	Msg_text
+test.v3	check	error	Upgrade required. Please do "REPAIR VIEW `v3`" or dump/reload to fix it!
+Phase 1/4: Fixing views
+test.v1                                            OK
+test.v1badcheck                                    OK
+test.v2                                            OK
+test.v3                                            OK
+Phase 2/4: Fixing table and database names
+Phase 3/4: Checking and upgrading tables
+Processing databases
+information_schema
+mtr
+mtr.global_suppressions                            OK
+mtr.test_suppressions                              OK
+mysql
+mysql.columns_priv                                 OK
+mysql.db                                           OK
+mysql.event                                        OK
+mysql.func                                         OK
+mysql.help_category                                OK
+mysql.help_keyword                                 OK
+mysql.help_relation                                OK
+mysql.help_topic                                   OK
+mysql.host                                         OK
+mysql.ndb_binlog_index                             OK
+mysql.plugin                                       OK
+mysql.proc                                         OK
+mysql.procs_priv                                   OK
+mysql.proxies_priv                                 OK
+mysql.servers                                      OK
+mysql.tables_priv                                  OK
+mysql.time_zone                                    OK
+mysql.time_zone_leap_second                        OK
+mysql.time_zone_name                               OK
+mysql.time_zone_transition                         OK
+mysql.time_zone_transition_type                    OK
+mysql.user                                         OK
+performance_schema
+test
+test.kv                                            OK
+test.t1                                            OK
+Phase 4/4: Running 'mysql_fix_privilege_tables'
+OK
+show create view v1;
+View	Create View	character_set_client	collation_connection
+v1	CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
+show create view v2;
+View	Create View	character_set_client	collation_connection
+v2	CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
+show create view v3;
+View	Create View	character_set_client	collation_connection
+v3	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
+set sql_log_bin=1;
+REPAIR VIEW v1,v2;
+Table	Op	Msg_type	Msg_text
+test.v1	repair	status	OK
+test.v2	repair	status	OK
+REPAIR VIEW v1badcheck;
+Table	Op	Msg_type	Msg_text
+test.v1badcheck	repair	status	OK
+REPAIR NO_WRITE_TO_BINLOG VIEW v3;
+Table	Op	Msg_type	Msg_text
+test.v3	repair	status	OK
+set sql_log_bin=0;
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW v1,v2
+master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW v1badcheck
+LOAD DATA INFILE 'MYSQLD_DATADIR/test/v1.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
+SELECT k,v from kv where k in ('md5','algorithm');
+k	v
+algorithm	1
+md5	5e6eaf216e7b016fcedfd4e1113517af
+SELECT k from kv where k ='mariadb-version';
+k
+mariadb-version
+truncate table kv;
+LOAD DATA INFILE 'MYSQLD_DATADIR/test/v2.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
+SELECT k,v from kv where k in ('md5','algorithm');
+k	v
+algorithm	2
+md5	5e6eaf216e7b016fcedfd4e1113517af
+SELECT k from kv where k ='mariadb-version';
+k
+mariadb-version
+truncate table kv;
+LOAD DATA INFILE 'MYSQLD_DATADIR/test/v3.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
+SELECT k,v from kv where k in ('md5','algorithm');
+k	v
+algorithm	0
+md5	5e6eaf216e7b016fcedfd4e1113517af
+SELECT k from kv where k ='mariadb-version';
+k
+mariadb-version
+truncate table kv;
+LOAD DATA INFILE 'MYSQLD_DATADIR/test/v1badcheck.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
+SELECT k,v from kv where k in ('md5','algorithm');
+k	v
+algorithm	1
+md5	5e6eaf216e7b016fcedfd4e1113517af
+SELECT k from kv where k ='mariadb-version';
+k
+mariadb-version
+truncate table kv;
+drop view if exists v1,v2,v3,v1badcheck;
+rename table mysql.event to mysql.ev_bk;
+flush tables;
+create algorithm=temptable view v4 as select a from t1;
+show create view v1;
+View	Create View	character_set_client	collation_connection
+v1	CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
+show create view v2;
+View	Create View	character_set_client	collation_connection
+v2	CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
+show create view v3;
+View	Create View	character_set_client	collation_connection
+v3	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
+show create view v4;
+View	Create View	character_set_client	collation_connection
+v4	CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`a` AS `a` from `t1`	latin1	latin1_swedish_ci
+MySQL upgrade detected
+Phase 1/4: Fixing views from mysql
+test.v1                                            OK
+test.v2                                            OK
+test.v3                                            OK
+test.v4                                            OK
+Phase 2/4: Fixing table and database names
+Phase 3/4: Checking and upgrading tables
+Processing databases
+information_schema
+mtr
+mtr.global_suppressions                            OK
+mtr.test_suppressions                              OK
+mysql
+mysql.columns_priv                                 OK
+mysql.db                                           OK
+mysql.ev_bk                                        OK
+mysql.event                                        OK
+mysql.func                                         OK
+mysql.help_category                                OK
+mysql.help_keyword                                 OK
+mysql.help_relation                                OK
+mysql.help_topic                                   OK
+mysql.host                                         OK
+mysql.ndb_binlog_index                             OK
+mysql.plugin                                       OK
+mysql.proc                                         OK
+mysql.procs_priv                                   OK
+mysql.proxies_priv                                 OK
+mysql.servers                                      OK
+mysql.tables_priv                                  OK
+mysql.time_zone                                    OK
+mysql.time_zone_leap_second                        OK
+mysql.time_zone_name                               OK
+mysql.time_zone_transition                         OK
+mysql.time_zone_transition_type                    OK
+mysql.user                                         OK
+performance_schema
+test
+test.kv                                            OK
+test.t1                                            OK
+Phase 4/4: Running 'mysql_fix_privilege_tables'
+OK
+show create view v1;
+View	Create View	character_set_client	collation_connection
+v1	CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
+show create view v2;
+View	Create View	character_set_client	collation_connection
+v2	CREATE ALGORITHM=MERGE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
+show create view v3;
+View	Create View	character_set_client	collation_connection
+v3	CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a` from `t1`	utf8	utf8_general_ci
+show create view v4;
+View	Create View	character_set_client	collation_connection
+v4	CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `t1`.`a` AS `a` from `t1`	latin1	latin1_swedish_ci
+LOAD DATA INFILE 'MYSQLD_DATADIR/test/v1.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
+SELECT k,v from kv where k in ('md5','algorithm');
+k	v
+algorithm	2
+md5	5e6eaf216e7b016fcedfd4e1113517af
+SELECT k from kv where k ='mariadb-version';
+k
+mariadb-version
+truncate table kv;
+drop view if exists v1,v2,v3;
+drop table mysql.event;
+rename table mysql.ev_bk to mysql.event;
+test.kv                                            OK
+test.t1                                            OK
+test.v1                                            OK
+test.v2                                            OK
+test.v3                                            OK
+test.v4                                            OK
+show binlog events from <binlog_start>;
+Log_name	Pos	Event_type	Server_id	End_log_pos	Info
+master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW v1,v2
+master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW v1badcheck
+master-bin.000001	#	Query	#	#	use `test`; REPAIR TABLE `kv`  USE_FRM
+master-bin.000001	#	Query	#	#	use `test`; REPAIR TABLE `t1`  USE_FRM
+master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW `v1`  FROM MYSQL
+master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW `v2`  FROM MYSQL
+master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW `v3`  FROM MYSQL
+master-bin.000001	#	Query	#	#	use `test`; REPAIR VIEW `v4`  FROM MYSQL
+drop table if exists kv;
+drop view v1,v2,v3,v4;
+drop table t1;
diff --git a/mysql-test/r/mysqlcheck.result b/mysql-test/r/mysqlcheck.result
index ab707ce..40ac4d8 100644
--- a/mysql-test/r/mysqlcheck.result
+++ b/mysql-test/r/mysqlcheck.result
@@ -1,5 +1,5 @@
-DROP TABLE IF EXISTS t1, `t``1`, `t 1`;
-drop view if exists v1;
+DROP TABLE IF EXISTS t1, `t``1`, `t 1`, test.`t.1`, v1;
+drop view if exists t1, `t``1`, `t 1`, test.`t.1`, v1;
 drop database if exists client_test_db;
 mtr.global_suppressions                            OK
 mtr.test_suppressions                              OK
@@ -309,3 +309,10 @@ CHECK TABLE bug47205 FOR UPGRADE;
 Table	Op	Msg_type	Msg_text
 test.bug47205	check	status	OK
 DROP TABLE bug47205;
+#
+#MDEV-6128:[PATCH] mysqlcheck wrongly escapes '.' in table names
+#
+CREATE TABLE test.`t.1` (id int);
+mysqlcheck test t.1
+test.t.1                                           OK
+drop table test.`t.1`;
diff --git a/mysql-test/r/openssl_1.result b/mysql-test/r/openssl_1.result
index 4627f03..44ea579 100644
--- a/mysql-test/r/openssl_1.result
+++ b/mysql-test/r/openssl_1.result
@@ -3,8 +3,8 @@ create table t1(f1 int);
 insert into t1 values (5);
 grant select on test.* to ssl_user1 at localhost require SSL;
 grant select on test.* to ssl_user2 at localhost require cipher "DHE-RSA-AES256-SHA";
-grant select on test.* to ssl_user3 at localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB";
-grant select on test.* to ssl_user4 at localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB" ISSUER "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB";
+grant select on test.* to ssl_user3 at localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB/CN=client";
+grant select on test.* to ssl_user4 at localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB/CN=client" ISSUER "/CN=cacert/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB";
 grant select on test.* to ssl_user5 at localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
 flush privileges;
 connect(localhost,ssl_user2,,test,MASTER_PORT,MASTER_SOCKET);
diff --git a/mysql-test/r/processlist.result b/mysql-test/r/processlist.result
index 0182245..eb3af67 100644
--- a/mysql-test/r/processlist.result
+++ b/mysql-test/r/processlist.result
@@ -7,9 +7,8 @@ SELECT ID, TIME,TIME_MS FROM INFORMATION_SCHEMA.PROCESSLIST WHERE CONCAT(":", ID
 SET DEBUG_SYNC = 'now SIGNAL fill_schema_proceed';
 ID	TIME	TIME_MS
 TID	0	0.000
-SET DEBUG_SYNC = 'dispatch_command_end SIGNAL query_done EXECUTE 2';
-SET DEBUG_SYNC= 'now WAIT_FOR query_done';
-SET DEBUG_SYNC= 'now SIGNAL nosignal';
+set debug_sync='reset';
+SET debug_dbug="+d,sleep_inject_query_done_debug_sync";
 select sleep(5);
 sleep(5)
 0
diff --git a/mysql-test/r/select_jcl6.result b/mysql-test/r/select_jcl6.result
index 2c87b11..359e7c8 100644
--- a/mysql-test/r/select_jcl6.result
+++ b/mysql-test/r/select_jcl6.result
@@ -4417,7 +4417,7 @@ INSERT INTO t1 VALUES
 EXPLAIN SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	
-1	SIMPLE	t2	hash_ALL	a	#hash#$hj	14	test.t1.a	2	Using where; Using join buffer (flat, BNLH join)
+1	SIMPLE	t2	hash_ALL	a	#hash#$hj	6	test.t1.a	2	Using where; Using join buffer (flat, BNLH join)
 SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2;
 1
 1
@@ -4427,7 +4427,7 @@ SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2;
 EXPLAIN SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2 FORCE INDEX(a);
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	
-1	SIMPLE	t2	hash_ALL	a	#hash#$hj	14	test.t1.a	2	Using where; Using join buffer (flat, BNLH join)
+1	SIMPLE	t2	hash_ALL	a	#hash#$hj	6	test.t1.a	2	Using where; Using join buffer (flat, BNLH join)
 SELECT 1 FROM t1 NATURAL LEFT JOIN t1 AS t2 FORCE INDEX(a);
 1
 1
diff --git a/mysql-test/r/sp-destruct.result b/mysql-test/r/sp-destruct.result
index a529a62..2dac027 100644
--- a/mysql-test/r/sp-destruct.result
+++ b/mysql-test/r/sp-destruct.result
@@ -170,3 +170,7 @@ Error	1548	Cannot load from mysql.proc. The table is probably corrupted
 # Restore mysql.proc
 DROP TABLE mysql.proc;
 RENAME TABLE proc_backup TO mysql.proc;
+create database mysqltest1;
+create procedure mysqltest1.foo() select "foo";
+update mysql.proc set name='' where db='mysqltest1';
+drop database mysqltest1;
diff --git a/mysql-test/r/sp-innodb.result b/mysql-test/r/sp-innodb.result
index da02957..b5fe920 100644
--- a/mysql-test/r/sp-innodb.result
+++ b/mysql-test/r/sp-innodb.result
@@ -30,3 +30,111 @@ CALL p1();
 CALL p1();
 drop procedure p1;
 drop table t1,t2;
+
+#
+# BUG 16041903: CONTINUE HANDLER NOT INVOKED
+# IN A STORED FUNCTION AFTER A LOCK WAIT TIMEOUT
+#
+
+# Save and set lock wait timeout
+SET @lock_wait_timeout_saved= @@lock_wait_timeout;
+SET @innodb_lock_wait_timeout_saved= @@innodb_lock_wait_timeout;
+SET @@lock_wait_timeout= 1;
+SET @@innodb_lock_wait_timeout= 1;
+
+# Create a function with exit handler:
+CREATE FUNCTION f1() RETURNS VARCHAR(20)
+BEGIN
+DECLARE EXIT HANDLER FOR SQLSTATE '42S02' RETURN 'No such table';
+INSERT INTO no_such_table VALUES (1);
+END//
+
+# Create a function calling f1():
+CREATE FUNCTION f2() RETURNS VARCHAR(20)
+BEGIN
+RETURN f1();
+END//
+
+# Create a function provoking deadlock:
+CREATE FUNCTION f3() RETURNS VARCHAR(20)
+BEGIN
+UPDATE t1 SET i= 1 WHERE i= 1;
+RETURN 'Will never get here';
+END//
+
+# Create a function calling f3, to create
+# a deadlock indirectly:
+CREATE FUNCTION f4() RETURNS VARCHAR(20)
+BEGIN
+RETURN f3();
+END//
+
+# Open another connection, create and initialize a table
+# to be used for provoking deadlock, put a lock on the table:
+CREATE TABLE t1 (i INT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1);
+SET AUTOCOMMIT= 0;
+UPDATE t1 SET i=1 WHERE i=1;
+
+# On the default connection, do an update to provoke a
+# deadlock, then call the function with handler. This case
+# fails without the patch (with error ER_NO_SUCH_TABLE):
+SET AUTOCOMMIT= 0;
+UPDATE t1 SET i=1 WHERE i=1;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+SELECT f1() AS 'f1():';
+f1():
+No such table
+Warnings:
+Error	1146	Table 'test.no_such_table' doesn't exist
+
+# Provoke another deadlock, then call the function with
+# handler indirectly. This case fails without the patch
+# (with error ER_NO_SUCH_TABLE):
+UPDATE t1 SET i= 1 WHERE i= 1;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+SELECT f2() AS 'f2():';
+f2():
+No such table
+Warnings:
+Error	1146	Table 'test.no_such_table' doesn't exist
+
+# Provoke yet another deadlock, but now from within a function,
+# then call the function with handler. This succeeds even
+# without the patch because is_fatal_sub_stmt_error is reset
+# in restore_sub_stmt after the failing function has been
+# executed. The test case is included anyway for better coverage:
+SELECT f3() AS 'f3():';
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+SELECT f1() AS 'f1():';
+f1():
+No such table
+Warnings:
+Error	1146	Table 'test.no_such_table' doesn't exist
+# Provoke yet another deadlock, but now from within a function,
+# calling another function, then call the function with handler.
+# This succeeds even without the patch because
+# is_fatal_sub_stmt_error is reset in restore_sub_stmt after
+# the failing function has been executed. The test case is
+# included anyway for better coverage:
+SELECT f4() AS 'f4():';
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+SELECT f1() AS 'f1():';
+f1():
+No such table
+Warnings:
+Error	1146	Table 'test.no_such_table' doesn't exist
+
+# Disconnect, drop functions and table:
+DROP FUNCTION f4;
+DROP FUNCTION f3;
+DROP FUNCTION f2;
+DROP FUNCTION f1;
+DROP TABLE t1;
+
+# Reset lock wait timeouts
+SET @@lock_wait_timeout= @lock_wait_timeout_saved;
+SET @@innodb_lock_wait_timeout= @innodb_lock_wait_timeout_saved;
+#
+# BUG 16041903: End of test case
+#
diff --git a/mysql-test/r/subselect_extra.result b/mysql-test/r/subselect_extra.result
index 47cb8bc..ee62a72 100644
--- a/mysql-test/r/subselect_extra.result
+++ b/mysql-test/r/subselect_extra.result
@@ -447,7 +447,7 @@ WHERE t3.b IN (SELECT v1.b FROM  v1, t2
 WHERE t2.c = v1.c AND t2.c = v1.b AND v1.b = t3.c);
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	PRIMARY	t2	system	NULL	NULL	NULL	NULL	1	
-1	PRIMARY	<derived3>	ref	key1	key1	10	const,const	0	Start temporary
+1	PRIMARY	<derived3>	ref	key1	key1	8	const,const	0	Start temporary
 1	PRIMARY	t3	ALL	NULL	NULL	NULL	NULL	2	Using where; End temporary; Using join buffer (flat, BNL join)
 3	DERIVED	t1	ALL	NULL	NULL	NULL	NULL	3	
 SELECT * FROM t3 
diff --git a/mysql-test/r/subselect_extra_no_semijoin.result b/mysql-test/r/subselect_extra_no_semijoin.result
index ba001c7..525b80e 100644
--- a/mysql-test/r/subselect_extra_no_semijoin.result
+++ b/mysql-test/r/subselect_extra_no_semijoin.result
@@ -450,7 +450,7 @@ WHERE t2.c = v1.c AND t2.c = v1.b AND v1.b = t3.c);
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	PRIMARY	t3	ALL	NULL	NULL	NULL	NULL	2	Using where
 2	DEPENDENT SUBQUERY	t2	system	NULL	NULL	NULL	NULL	1	
-2	DEPENDENT SUBQUERY	<derived3>	ref	key1	key1	10	const,const	0	Using where
+2	DEPENDENT SUBQUERY	<derived3>	ref	key1	key1	8	const,const	0	Using where
 3	DERIVED	t1	ALL	NULL	NULL	NULL	NULL	3	
 SELECT * FROM t3 
 WHERE t3.b IN (SELECT v1.b FROM  v1, t2 
diff --git a/mysql-test/r/subselect_sj.result b/mysql-test/r/subselect_sj.result
index 98905f1..21acd46 100644
--- a/mysql-test/r/subselect_sj.result
+++ b/mysql-test/r/subselect_sj.result
@@ -2986,4 +2986,13 @@ pk1	i1	i2	c2	pk3	i3	c3
 SET join_cache_level=@tmp_mdev5059;
 set optimizer_switch=@tmp_os_mdev5059;
 DROP TABLE t1,t2,t3,t4;
+#
+# MDEV-7911: crash in Item_cond::eval_not_null_tables
+#
+create table t1(a int);
+insert into t1 values(1),(2),(3),(null);
+explain
+select 1 from t1 where _cp932 "1" in (select '1' from t1);
+ERROR HY000: Illegal mix of collations (cp932_japanese_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation '='
+drop table t1;
 set optimizer_switch=@subselect_sj_tmp;
diff --git a/mysql-test/r/subselect_sj2.result b/mysql-test/r/subselect_sj2.result
index 43ba6ea..9a5da71 100644
--- a/mysql-test/r/subselect_sj2.result
+++ b/mysql-test/r/subselect_sj2.result
@@ -1178,5 +1178,89 @@ id	nombre
 2	row 2
 3	row 3
 DROP TABLE t1, t2;
+#
+# MDEV-7474: Semi-Join's DuplicateWeedout strategy skipped for some values of optimizer_search_depth
+#
+CREATE TABLE t1 (
+t1id BIGINT(20) NOT NULL,
+code VARCHAR(20),
+PRIMARY KEY (t1id)
+) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
+CREATE TABLE t2 (
+t2id BIGINT(20) NOT NULL,
+t1idref BIGINT(20) NOT NULL,
+code VARCHAR(20),
+PRIMARY KEY (t2id),
+INDEX FK_T2_T1Id (t1idref),
+CONSTRAINT FK_T2_T1Id FOREIGN KEY (t1idref) REFERENCES t1 (t1id)
+) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
+CREATE TABLE t3 (
+t3idref BIGINT(20) NOT NULL,
+t2idref BIGINT(20) NOT NULL,
+sequencenumber INT(10) NOT NULL,
+PRIMARY KEY (t3idref, t2idref),
+INDEX FK_T3_T2Id (t2idref),
+CONSTRAINT FK_T3_T2Id FOREIGN KEY (t2idref) REFERENCES t2 (t2id)
+) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
+INSERT INTO t1 (t1id) VALUES (100001),(100017),(100018),(100026),(100027),(100028),(100029),(100030),
+(100031),(100032),(100033),(100034),(100035),(100036),(100037),(100038),(100040),(100041),(100042),
+(100043),(100044),(100045),(100046),(100047);
+INSERT IGNORE INTO t2 (t2id, t1idref) SELECT t1id, t1id FROM t1;
+INSERT IGNORE INTO t1 VALUES (200001, 'a');
+INSERT IGNORE INTO t2 (t2id, t1idref) VALUES (200011, 200001),(200012, 200001),(200013, 200001);
+INSERT IGNORE INTO t3 VALUES (1, 200011, 1),  (1, 200012, 2), (1, 200013, 3);
+set @tmp7474= @@optimizer_search_depth;
+SET SESSION optimizer_search_depth = 1;
+SELECT SQL_NO_CACHE 
+T2_0_.t1idref,
+T2_0_.t2id
+FROM
+t2 T2_0_ 
+WHERE
+T2_0_.t1idref IN (
+SELECT
+T1_1_.t1id 
+FROM
+t3 T3_0_ 
+INNER JOIN
+t2 T2_1_ 
+ON T3_0_.t2idref=T2_1_.t2id 
+INNER JOIN
+t1 T1_1_ 
+ON T2_1_.t1idref=T1_1_.t1id            
+WHERE
+T3_0_.t3idref= 1
+);
+t1idref	t2id
+200001	200011
+200001	200012
+200001	200013
+explain SELECT SQL_NO_CACHE 
+T2_0_.t1idref,
+T2_0_.t2id
+FROM
+t2 T2_0_ 
+WHERE
+T2_0_.t1idref IN (
+SELECT
+T1_1_.t1id 
+FROM
+t3 T3_0_ 
+INNER JOIN
+t2 T2_1_ 
+ON T3_0_.t2idref=T2_1_.t2id 
+INNER JOIN
+t1 T1_1_ 
+ON T2_1_.t1idref=T1_1_.t1id            
+WHERE
+T3_0_.t3idref= 1
+);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	PRIMARY	T3_0_	ref	PRIMARY,FK_T3_T2Id	PRIMARY	8	const	3	Using index; Start temporary
+1	PRIMARY	T2_1_	eq_ref	PRIMARY,FK_T2_T1Id	PRIMARY	8	test.T3_0_.t2idref	1	
+1	PRIMARY	T1_1_	eq_ref	PRIMARY	PRIMARY	8	test.T2_1_.t1idref	1	Using index
+1	PRIMARY	T2_0_	ref	FK_T2_T1Id	FK_T2_T1Id	8	test.T2_1_.t1idref	1	Using index; End temporary
+drop table t3,t2,t1;
+set optimizer_search_depth=@tmp7474;
 # This must be the last in the file:
 set optimizer_switch=@subselect_sj2_tmp;
diff --git a/mysql-test/r/subselect_sj2_jcl6,innodb_plugin.rdiff b/mysql-test/r/subselect_sj2_jcl6,innodb_plugin.rdiff
index c32f52f..bf2c369 100644
--- a/mysql-test/r/subselect_sj2_jcl6,innodb_plugin.rdiff
+++ b/mysql-test/r/subselect_sj2_jcl6,innodb_plugin.rdiff
@@ -9,3 +9,12 @@
  SELECT * FROM t2 
  WHERE (a, a) IN (SELECT alias2.b, alias2.a FROM t1 AS alias1, t1 AS alias2 
  WHERE 
+@@ -1272,7 +1272,7 @@
+ );
+ id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+ 1	PRIMARY	T3_0_	ref	PRIMARY,FK_T3_T2Id	PRIMARY	8	const	3	Using index; Start temporary
+-1	PRIMARY	T2_1_	eq_ref	PRIMARY,FK_T2_T1Id	PRIMARY	8	test.T3_0_.t2idref	1	Using join buffer (flat, BKA join); Key-ordered scan
++1	PRIMARY	T2_1_	eq_ref	PRIMARY,FK_T2_T1Id	PRIMARY	8	test.T3_0_.t2idref	1	
+ 1	PRIMARY	T1_1_	eq_ref	PRIMARY	PRIMARY	8	test.T2_1_.t1idref	1	Using index
+ 1	PRIMARY	T2_0_	ref	FK_T2_T1Id	FK_T2_T1Id	8	test.T2_1_.t1idref	1	Using index; End temporary
+ drop table t3,t2,t1;
diff --git a/mysql-test/r/subselect_sj2_jcl6.result b/mysql-test/r/subselect_sj2_jcl6.result
index c45ab02..c10b550 100644
--- a/mysql-test/r/subselect_sj2_jcl6.result
+++ b/mysql-test/r/subselect_sj2_jcl6.result
@@ -891,7 +891,7 @@ WHERE t3.b IN (SELECT b FROM t4);
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	PRIMARY	t3	ALL	NULL	NULL	NULL	NULL	1	
 1	PRIMARY	<subquery2>	eq_ref	distinct_key	distinct_key	4	func	1	
-1	PRIMARY	t2	hash_ALL	NULL	#hash#$hj	5	test.t3.a	1	Using where; Using join buffer (flat, BNLH join)
+1	PRIMARY	t2	hash_ALL	NULL	#hash#$hj	4	test.t3.a	1	Using where; Using join buffer (flat, BNLH join)
 1	PRIMARY	<derived3>	ALL	NULL	NULL	NULL	NULL	2	Using join buffer (incremental, BNL join)
 2	MATERIALIZED	t4	ALL	NULL	NULL	NULL	NULL	2	
 3	DERIVED	t1	ALL	NULL	NULL	NULL	NULL	1	
@@ -1161,7 +1161,7 @@ id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	PRIMARY	t1	ref	PRIMARY	PRIMARY	5	const	1	Using where; Using index
 1	PRIMARY	t2	ALL	NULL	NULL	NULL	NULL	1	Start temporary; Using join buffer (flat, BNL join)
 1	PRIMARY	t3	ALL	NULL	NULL	NULL	NULL	2	Using where; Using join buffer (incremental, BNL join)
-1	PRIMARY	t4	hash_index	NULL	#hash#$hj:PRIMARY	55:59	test.t3.t3_c	2	Using where; End temporary; Using join buffer (incremental, BNLH join)
+1	PRIMARY	t4	hash_index	NULL	#hash#$hj:PRIMARY	54:59	test.t3.t3_c	2	Using where; End temporary; Using join buffer (incremental, BNLH join)
 DROP TABLE t1,t2,t3,t4;
 #
 # MDEV-6263: Wrong result when using IN subquery with order by
@@ -1193,6 +1193,90 @@ id	nombre
 2	row 2
 3	row 3
 DROP TABLE t1, t2;
+#
+# MDEV-7474: Semi-Join's DuplicateWeedout strategy skipped for some values of optimizer_search_depth
+#
+CREATE TABLE t1 (
+t1id BIGINT(20) NOT NULL,
+code VARCHAR(20),
+PRIMARY KEY (t1id)
+) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
+CREATE TABLE t2 (
+t2id BIGINT(20) NOT NULL,
+t1idref BIGINT(20) NOT NULL,
+code VARCHAR(20),
+PRIMARY KEY (t2id),
+INDEX FK_T2_T1Id (t1idref),
+CONSTRAINT FK_T2_T1Id FOREIGN KEY (t1idref) REFERENCES t1 (t1id)
+) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
+CREATE TABLE t3 (
+t3idref BIGINT(20) NOT NULL,
+t2idref BIGINT(20) NOT NULL,
+sequencenumber INT(10) NOT NULL,
+PRIMARY KEY (t3idref, t2idref),
+INDEX FK_T3_T2Id (t2idref),
+CONSTRAINT FK_T3_T2Id FOREIGN KEY (t2idref) REFERENCES t2 (t2id)
+) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
+INSERT INTO t1 (t1id) VALUES (100001),(100017),(100018),(100026),(100027),(100028),(100029),(100030),
+(100031),(100032),(100033),(100034),(100035),(100036),(100037),(100038),(100040),(100041),(100042),
+(100043),(100044),(100045),(100046),(100047);
+INSERT IGNORE INTO t2 (t2id, t1idref) SELECT t1id, t1id FROM t1;
+INSERT IGNORE INTO t1 VALUES (200001, 'a');
+INSERT IGNORE INTO t2 (t2id, t1idref) VALUES (200011, 200001),(200012, 200001),(200013, 200001);
+INSERT IGNORE INTO t3 VALUES (1, 200011, 1),  (1, 200012, 2), (1, 200013, 3);
+set @tmp7474= @@optimizer_search_depth;
+SET SESSION optimizer_search_depth = 1;
+SELECT SQL_NO_CACHE 
+T2_0_.t1idref,
+T2_0_.t2id
+FROM
+t2 T2_0_ 
+WHERE
+T2_0_.t1idref IN (
+SELECT
+T1_1_.t1id 
+FROM
+t3 T3_0_ 
+INNER JOIN
+t2 T2_1_ 
+ON T3_0_.t2idref=T2_1_.t2id 
+INNER JOIN
+t1 T1_1_ 
+ON T2_1_.t1idref=T1_1_.t1id            
+WHERE
+T3_0_.t3idref= 1
+);
+t1idref	t2id
+200001	200011
+200001	200012
+200001	200013
+explain SELECT SQL_NO_CACHE 
+T2_0_.t1idref,
+T2_0_.t2id
+FROM
+t2 T2_0_ 
+WHERE
+T2_0_.t1idref IN (
+SELECT
+T1_1_.t1id 
+FROM
+t3 T3_0_ 
+INNER JOIN
+t2 T2_1_ 
+ON T3_0_.t2idref=T2_1_.t2id 
+INNER JOIN
+t1 T1_1_ 
+ON T2_1_.t1idref=T1_1_.t1id            
+WHERE
+T3_0_.t3idref= 1
+);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	PRIMARY	T3_0_	ref	PRIMARY,FK_T3_T2Id	PRIMARY	8	const	3	Using index; Start temporary
+1	PRIMARY	T2_1_	eq_ref	PRIMARY,FK_T2_T1Id	PRIMARY	8	test.T3_0_.t2idref	1	Using join buffer (flat, BKA join); Key-ordered scan
+1	PRIMARY	T1_1_	eq_ref	PRIMARY	PRIMARY	8	test.T2_1_.t1idref	1	Using index
+1	PRIMARY	T2_0_	ref	FK_T2_T1Id	FK_T2_T1Id	8	test.T2_1_.t1idref	1	Using index; End temporary
+drop table t3,t2,t1;
+set optimizer_search_depth=@tmp7474;
 # This must be the last in the file:
 set optimizer_switch=@subselect_sj2_tmp;
 #
diff --git a/mysql-test/r/subselect_sj2_mat.result b/mysql-test/r/subselect_sj2_mat.result
index 0ff366b..4e75aee 100644
--- a/mysql-test/r/subselect_sj2_mat.result
+++ b/mysql-test/r/subselect_sj2_mat.result
@@ -1180,6 +1180,90 @@ id	nombre
 2	row 2
 3	row 3
 DROP TABLE t1, t2;
+#
+# MDEV-7474: Semi-Join's DuplicateWeedout strategy skipped for some values of optimizer_search_depth
+#
+CREATE TABLE t1 (
+t1id BIGINT(20) NOT NULL,
+code VARCHAR(20),
+PRIMARY KEY (t1id)
+) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
+CREATE TABLE t2 (
+t2id BIGINT(20) NOT NULL,
+t1idref BIGINT(20) NOT NULL,
+code VARCHAR(20),
+PRIMARY KEY (t2id),
+INDEX FK_T2_T1Id (t1idref),
+CONSTRAINT FK_T2_T1Id FOREIGN KEY (t1idref) REFERENCES t1 (t1id)
+) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
+CREATE TABLE t3 (
+t3idref BIGINT(20) NOT NULL,
+t2idref BIGINT(20) NOT NULL,
+sequencenumber INT(10) NOT NULL,
+PRIMARY KEY (t3idref, t2idref),
+INDEX FK_T3_T2Id (t2idref),
+CONSTRAINT FK_T3_T2Id FOREIGN KEY (t2idref) REFERENCES t2 (t2id)
+) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
+INSERT INTO t1 (t1id) VALUES (100001),(100017),(100018),(100026),(100027),(100028),(100029),(100030),
+(100031),(100032),(100033),(100034),(100035),(100036),(100037),(100038),(100040),(100041),(100042),
+(100043),(100044),(100045),(100046),(100047);
+INSERT IGNORE INTO t2 (t2id, t1idref) SELECT t1id, t1id FROM t1;
+INSERT IGNORE INTO t1 VALUES (200001, 'a');
+INSERT IGNORE INTO t2 (t2id, t1idref) VALUES (200011, 200001),(200012, 200001),(200013, 200001);
+INSERT IGNORE INTO t3 VALUES (1, 200011, 1),  (1, 200012, 2), (1, 200013, 3);
+set @tmp7474= @@optimizer_search_depth;
+SET SESSION optimizer_search_depth = 1;
+SELECT SQL_NO_CACHE 
+T2_0_.t1idref,
+T2_0_.t2id
+FROM
+t2 T2_0_ 
+WHERE
+T2_0_.t1idref IN (
+SELECT
+T1_1_.t1id 
+FROM
+t3 T3_0_ 
+INNER JOIN
+t2 T2_1_ 
+ON T3_0_.t2idref=T2_1_.t2id 
+INNER JOIN
+t1 T1_1_ 
+ON T2_1_.t1idref=T1_1_.t1id            
+WHERE
+T3_0_.t3idref= 1
+);
+t1idref	t2id
+200001	200011
+200001	200012
+200001	200013
+explain SELECT SQL_NO_CACHE 
+T2_0_.t1idref,
+T2_0_.t2id
+FROM
+t2 T2_0_ 
+WHERE
+T2_0_.t1idref IN (
+SELECT
+T1_1_.t1id 
+FROM
+t3 T3_0_ 
+INNER JOIN
+t2 T2_1_ 
+ON T3_0_.t2idref=T2_1_.t2id 
+INNER JOIN
+t1 T1_1_ 
+ON T2_1_.t1idref=T1_1_.t1id            
+WHERE
+T3_0_.t3idref= 1
+);
+id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
+1	PRIMARY	T3_0_	ref	PRIMARY,FK_T3_T2Id	PRIMARY	8	const	3	Using index; Start temporary
+1	PRIMARY	T2_1_	eq_ref	PRIMARY,FK_T2_T1Id	PRIMARY	8	test.T3_0_.t2idref	1	
+1	PRIMARY	T1_1_	eq_ref	PRIMARY	PRIMARY	8	test.T2_1_.t1idref	1	Using index
+1	PRIMARY	T2_0_	ref	FK_T2_T1Id	FK_T2_T1Id	8	test.T2_1_.t1idref	1	Using index; End temporary
+drop table t3,t2,t1;
+set optimizer_search_depth=@tmp7474;
 # This must be the last in the file:
 set optimizer_switch=@subselect_sj2_tmp;
 set optimizer_switch=default;
diff --git a/mysql-test/r/subselect_sj_jcl6.result b/mysql-test/r/subselect_sj_jcl6.result
index f4d874a..d9aa187 100644
--- a/mysql-test/r/subselect_sj_jcl6.result
+++ b/mysql-test/r/subselect_sj_jcl6.result
@@ -3000,6 +3000,15 @@ pk1	i1	i2	c2	pk3	i3	c3
 SET join_cache_level=@tmp_mdev5059;
 set optimizer_switch=@tmp_os_mdev5059;
 DROP TABLE t1,t2,t3,t4;
+#
+# MDEV-7911: crash in Item_cond::eval_not_null_tables
+#
+create table t1(a int);
+insert into t1 values(1),(2),(3),(null);
+explain
+select 1 from t1 where _cp932 "1" in (select '1' from t1);
+ERROR HY000: Illegal mix of collations (cp932_japanese_ci,COERCIBLE) and (latin1_swedish_ci,COERCIBLE) for operation '='
+drop table t1;
 set optimizer_switch=@subselect_sj_tmp;
 #
 # BUG#49129: Wrong result with IN-subquery with join_cache_level=6 and firstmatch=off
diff --git a/mysql-test/r/table_elim.result b/mysql-test/r/table_elim.result
index 3b4d64c..f475198 100644
--- a/mysql-test/r/table_elim.result
+++ b/mysql-test/r/table_elim.result
@@ -677,3 +677,35 @@ USA
 CAN
 DROP TABLE t1, t2, t3;
 SET optimizer_switch=@save_optimizer_switch;
+#
+# MDEV-7893: table_elimination works wrong with on computed expression and compound unique key
+#  (just a testcase)
+CREATE TABLE t1 (
+PostID int(10) unsigned NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+Warnings:
+Warning	1286	Unknown storage engine 'InnoDB'
+Warning	1266	Using storage engine MyISAM for table 't1'
+INSERT INTO t1 (PostID) VALUES (1), (2);
+CREATE TABLE t2 (
+VoteID int(10) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
+EntityID int(10) unsigned NOT NULL,
+UserID int(10) unsigned NOT NULL,
+UNIQUE KEY EntityID (EntityID,UserID)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+Warnings:
+Warning	1286	Unknown storage engine 'InnoDB'
+Warning	1266	Using storage engine MyISAM for table 't2'
+INSERT INTO t2 (EntityID, UserID) VALUES (1,  30), (2, 30);
+SELECT t1.*, T.Voted as Voted
+FROM 
+t1 LEFT JOIN (
+SELECT 1 AS Voted, EntityID 
+FROM t2 
+WHERE t2.UserID = '20' ) AS T 
+ON T.EntityID = t1.PostID
+WHERE t1.PostID='1'
+LIMIT 1;
+PostID	Voted
+1	NULL
+DROP TABLE t1,t2;
diff --git a/mysql-test/r/table_keyinfo-6838.result b/mysql-test/r/table_keyinfo-6838.result
new file mode 100644
index 0000000..55b0350
--- /dev/null
+++ b/mysql-test/r/table_keyinfo-6838.result
@@ -0,0 +1,12 @@
+CREATE TABLE t1 (i INT, state VARCHAR(997)) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (2,'Louisiana'),(9,'Maine');
+CREATE TABLE t2 (state VARCHAR(997), j INT) ENGINE=MyISAM;
+INSERT INTO t2 VALUES ('Louisiana',9),('Alaska',5);
+INSERT INTO t2 SELECT t2.* FROM t2 JOIN t2 AS t3 JOIN t2 AS t4 JOIN t2 AS t5 JOIN t2 AS t6;
+SET @@max_heap_table_size= 16384;
+set @@optimizer_switch='derived_merge=OFF';
+set @@optimizer_switch='extended_keys=ON';
+SELECT * FROM t1 AS t1_1 LEFT JOIN ( t1 AS t1_2 INNER JOIN (SELECT * FROM t2) v2 ON t1_2.i = j ) ON t1_1.state = v2.state LIMIT 1;
+i	state	i	state	state	j
+2	Louisiana	9	Maine	Louisiana	9
+DROP TABLE t1, t2;
diff --git a/mysql-test/r/trigger-trans.result b/mysql-test/r/trigger-trans.result
index 722ac79..cab7336 100644
--- a/mysql-test/r/trigger-trans.result
+++ b/mysql-test/r/trigger-trans.result
@@ -195,3 +195,28 @@ b	val
 14	g
 drop trigger t1_after_insert;
 drop table t1,t2;
+#
+#Bug#19683834 SOME INNODB ERRORS CAUSES STORED FUNCTION
+#             AND TRIGGER HANDLERS TO BE IGNORED
+#Code fixed in Bug#16041903
+CREATE TABLE t1 (id int unsigned PRIMARY KEY, val int DEFAULT 0)
+ENGINE=InnoDB;
+INSERT INTO t1 (id) VALUES (1), (2);
+CREATE TABLE t2 (id int PRIMARY KEY);
+CREATE TABLE t3 LIKE t2;
+CREATE TRIGGER bef_insert BEFORE INSERT ON t2 FOR EACH ROW
+BEGIN
+DECLARE CONTINUE HANDLER FOR 1062 BEGIN END;
+INSERT INTO t3 (id) VALUES (NEW.id);
+INSERT INTO t3 (id) VALUES (NEW.id);
+END//
+START TRANSACTION;
+UPDATE t1 SET val = val + 1;
+connect  con2,localhost,root,,test,,;
+SET SESSION innodb_lock_wait_timeout = 2;
+UPDATE t1 SET val = val + 1;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+INSERT INTO t2 (id) VALUES (1);
+disconnect con2;
+connection default;
+DROP TABLE t3, t2, t1;
diff --git a/mysql-test/r/uniques_crash-7912.result b/mysql-test/r/uniques_crash-7912.result
new file mode 100644
index 0000000..bf3aab6
--- /dev/null
+++ b/mysql-test/r/uniques_crash-7912.result
@@ -0,0 +1,11 @@
+call mtr.add_suppression("Out of memory");
+set sql_mode="";
+drop table if exists t1,t2;
+create table `t1` (`a` datetime not null) engine=InnoDB;
+create table `t2` (`a` int not null) engine=innodb;
+replace into t1 values (),();
+insert into t2 values(0);
+set session sort_buffer_size = 1024*1024*1024*1024;
+delete d2 from t2 as d1, t1 as d2 where d1.a <=> d2.a;
+drop table t2;
+drop table t1;
diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result
index 2978fce..ee9779a 100644
--- a/mysql-test/r/view.result
+++ b/mysql-test/r/view.result
@@ -4910,7 +4910,7 @@ Opened_views	3
 show status like 'Opened_table%';
 Variable_name	Value
 Opened_table_definitions	2
-Opened_tables	3
+Opened_tables	2
 #
 # MDEV-486 LP BUG#1010116 Incorrect query results in
 # view and derived tables
@@ -5396,6 +5396,21 @@ SELECT `f1`(1);
 DROP FUNCTION f1;
 DROP VIEW v1;
 DROP TABLE t1, t2;
+create view v1 as select 1;
+drop view v1;
+#
+# MDEV-7260: Crash in get_best_combination when executing multi-table
+# UPDATE with nested views
+#
+CREATE TABLE `t1` (`id` bigint(20));
+INSERT INTO `t1` VALUES (1),(2);
+CREATE TABLE `t2` (`id` bigint(20));
+CREATE TABLE `t3` (`id` bigint(20), `flag` tinyint(4));
+create view v1 as select id from t1;
+create view v2 as select t2.* from (t2 left join v1 using (id));
+update t3 left join v2 using (id) set flag=flag+1;
+drop view v2, v1;
+drop table t1, t2, t3;
 # -----------------------------------------------------------------
 # -- End of 5.5 tests.
 # -----------------------------------------------------------------
diff --git a/mysql-test/std_data/bad_row_type.MYD b/mysql-test/std_data/bad_row_type.MYD
new file mode 100644
index 0000000..e69de29
diff --git a/mysql-test/std_data/bad_row_type.MYI b/mysql-test/std_data/bad_row_type.MYI
new file mode 100644
index 0000000..731a83e
Binary files /dev/null and b/mysql-test/std_data/bad_row_type.MYI differ
diff --git a/mysql-test/std_data/bad_row_type.frm b/mysql-test/std_data/bad_row_type.frm
new file mode 100644
index 0000000..d993c98
Binary files /dev/null and b/mysql-test/std_data/bad_row_type.frm differ
diff --git a/mysql-test/std_data/cacert.pem b/mysql-test/std_data/cacert.pem
index f5ba4fe..e934823 100644
--- a/mysql-test/std_data/cacert.pem
+++ b/mysql-test/std_data/cacert.pem
@@ -1,22 +1,78 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 11580370790696127632 (0xa0b5bde0f2c08c90)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: CN=cacert, C=FI, ST=Helsinki, L=Helsinki, O=MariaDB
+        Validity
+            Not Before: Apr 25 14:55:05 2015 GMT
+            Not After : Apr 20 14:55:05 2035 GMT
+        Subject: CN=cacert, C=FI, ST=Helsinki, L=Helsinki, O=MariaDB
+        Subject Public Key Info:
+            Public Key Algorithm: rsaEncryption
+                Public-Key: (2048 bit)
+                Modulus:
+                    00:c0:1f:90:7c:2b:c2:ea:01:93:ce:e0:c5:72:e8:
+                    1c:06:bd:63:4e:b6:d2:c6:00:32:13:27:42:9e:c9:
+                    3c:91:33:4d:15:90:67:7d:9d:d8:be:9b:12:e2:f6:
+                    1b:46:81:4a:8b:10:c5:b8:14:53:ab:6a:2c:c3:7f:
+                    66:87:6c:0e:18:51:4e:9c:93:7a:6d:a1:d4:06:47:
+                    58:61:a6:04:21:2c:bd:74:7a:e4:68:45:fe:91:fe:
+                    fb:a6:29:47:ec:c5:c3:88:c8:c9:e7:d7:c6:1a:0d:
+                    b8:f5:c5:02:57:25:01:cc:d5:8c:37:46:58:c6:71:
+                    30:ee:63:38:99:84:5e:9e:3c:af:40:d4:f0:f2:12:
+                    44:6e:2f:4d:cd:f9:da:4d:0e:1f:a6:fe:35:c3:9d:
+                    40:08:82:5e:6f:7d:4d:09:16:7d:a1:78:d6:9f:9f:
+                    44:d6:b1:ad:e7:50:25:1a:f3:4e:16:92:4a:17:5e:
+                    0b:e1:c8:9f:62:22:c4:e2:01:96:63:ed:37:a2:e5:
+                    70:b9:dc:c8:8e:c4:fe:00:21:f5:b9:48:c0:43:55:
+                    4a:d8:0c:9d:ce:d6:60:30:bb:81:31:c8:e9:0e:aa:
+                    1c:18:3d:e4:10:47:42:17:c0:4d:fb:f5:d9:c2:e4:
+                    07:33:f7:15:94:63:6d:11:ad:4f:d4:1d:11:41:c1:
+                    e2:dd
+                Exponent: 65537 (0x10001)
+        X509v3 extensions:
+            X509v3 Subject Key Identifier: 
+                C7:2C:01:95:1A:F5:3E:CD:04:A6:24:35:35:04:D9:A7:16:01:2A:79
+            X509v3 Authority Key Identifier: 
+                keyid:C7:2C:01:95:1A:F5:3E:CD:04:A6:24:35:35:04:D9:A7:16:01:2A:79
+
+            X509v3 Basic Constraints: 
+                CA:TRUE
+    Signature Algorithm: sha1WithRSAEncryption
+         40:6f:6a:54:f3:29:30:48:46:bd:da:46:71:64:52:14:a7:c2:
+         34:b7:5e:1e:42:3d:e7:47:92:cd:87:e7:9d:5d:1a:82:77:82:
+         62:32:d4:9d:b6:44:11:dc:88:78:38:a5:d3:1f:1e:be:c2:d6:
+         14:b0:58:35:cd:66:22:43:97:ba:bb:e3:44:4f:9d:75:14:9f:
+         6f:37:d3:50:07:09:36:bc:58:92:e8:fe:c0:a8:ba:29:55:65:
+         e2:6f:8f:ab:a5:1d:4f:56:37:de:c7:b4:39:20:4c:a8:4c:db:
+         56:51:12:7e:e7:7f:83:9d:c4:c7:72:8f:6f:83:f0:af:e3:37:
+         1c:40:fe:5e:38:26:2f:05:46:a7:0c:a5:81:79:d6:9c:9c:d7:
+         56:eb:96:fe:c7:ae:8e:4f:5e:4a:6c:3a:fa:68:be:65:60:a2:
+         d3:3f:07:76:45:b3:95:3e:11:ef:3a:0e:6f:73:47:4c:90:dd:
+         0b:36:b4:22:df:62:8d:58:d2:a6:34:5b:f0:06:5d:cd:bf:52:
+         fa:ee:9b:4f:e8:79:18:6e:1c:6e:5f:96:10:6d:2f:02:1b:dd:
+         bf:14:c9:32:3c:83:a5:6e:56:56:78:9d:ce:84:50:a4:df:cc:
+         b5:a9:b1:ec:09:07:74:02:27:7a:9d:d2:96:a9:80:95:9a:f2:
+         8c:e9:ef:99
 -----BEGIN CERTIFICATE-----
-MIIDsjCCApqgAwIBAgIJAL5YrUwfPSWVMA0GCSqGSIb3DQEBBQUAMEQxCzAJBgNV
-BAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxhMREwDwYD
-VQQKEwhNeVNRTCBBQjAeFw0xMDAxMjkwNTU5NTNaFw0xNTAxMjgwNTU5NTNaMEQx
-CzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBzYWxh
-MREwDwYDVQQKEwhNeVNRTCBBQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
-ggEBAL6kNN4peX7uhK9rb06W/QbPEpVuejmdWdl2PqMshP/eSuXXw7kwVgfpxx9R
-vC000CKQQSG9MCoZjtqPnFRsetmWLZgApRpEalGXTXJqq9sEbCfoFizg94U8G7d2
-u5XJjLVmcG34ru36KoBgVx1zeH1puBAf8dOzrE4L7Y+ZQBFzFohjh8C2LqWC4nM5
-qsLmOkDWMipGqYU5DvkKjIbTbwTyRNRgZHWSPfVDDPUIUOsY4BGUp2DpgeGY9aEv
-lIs57Ev9JqlIUCV65lOhhDkG+xwmkHKHA+ECEU9cALI8+uXbh48MB9XpMOuk408X
-/lX89aZwD0/G9kmObVGnE2G+H5UCAwEAAaOBpjCBozAdBgNVHQ4EFgQUsft+d7VA
-jWgRftkR5cPG2k2sUbAwdAYDVR0jBG0wa4AUsft+d7VAjWgRftkR5cPG2k2sUbCh
-SKRGMEQxCzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdV
-cHBzYWxhMREwDwYDVQQKEwhNeVNRTCBBQoIJAL5YrUwfPSWVMAwGA1UdEwQFMAMB
-Af8wDQYJKoZIhvcNAQEFBQADggEBALRUOAmdL8R8sl1y8kiEiFgDatdXK5RDqWai
-8yZChfmwTIToHhmQsOEshJe2e8hky3huUj+33VyXjINoMbebIwMuXPwEkbJal8RZ
-nSJmF0jN1Qz7J/jFffwK9xmejWZJx49Kt2+Qwrwp6kDeq9TLFqQOoVczgyJPYsTL
-NAOib5WqTud3XWvCwxrhqmWu7JZq6sp1fomP/uunprb8y2miWfLESZN2mKAhm44Q
-Lws867LT8v2lskEjq2dT1LutD5+R66XcdjgSr0uDziDs64jZwCD6ea94hVFM7ej0
-ZOXYeSEZJ56FjUxu632e9fY8NyMh30yKjjmQf1mM9PuGJvdvsWU=
+MIIDfzCCAmegAwIBAgIJAKC1veDywIyQMA0GCSqGSIb3DQEBBQUAMFYxDzANBgNV
+BAMMBmNhY2VydDELMAkGA1UEBhMCRkkxETAPBgNVBAgMCEhlbHNpbmtpMREwDwYD
+VQQHDAhIZWxzaW5raTEQMA4GA1UECgwHTWFyaWFEQjAeFw0xNTA0MjUxNDU1MDVa
+Fw0zNTA0MjAxNDU1MDVaMFYxDzANBgNVBAMMBmNhY2VydDELMAkGA1UEBhMCRkkx
+ETAPBgNVBAgMCEhlbHNpbmtpMREwDwYDVQQHDAhIZWxzaW5raTEQMA4GA1UECgwH
+TWFyaWFEQjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMAfkHwrwuoB
+k87gxXLoHAa9Y0620sYAMhMnQp7JPJEzTRWQZ32d2L6bEuL2G0aBSosQxbgUU6tq
+LMN/ZodsDhhRTpyTem2h1AZHWGGmBCEsvXR65GhF/pH++6YpR+zFw4jIyefXxhoN
+uPXFAlclAczVjDdGWMZxMO5jOJmEXp48r0DU8PISRG4vTc352k0OH6b+NcOdQAiC
+Xm99TQkWfaF41p+fRNaxredQJRrzThaSShdeC+HIn2IixOIBlmPtN6LlcLncyI7E
+/gAh9blIwENVStgMnc7WYDC7gTHI6Q6qHBg95BBHQhfATfv12cLkBzP3FZRjbRGt
+T9QdEUHB4t0CAwEAAaNQME4wHQYDVR0OBBYEFMcsAZUa9T7NBKYkNTUE2acWASp5
+MB8GA1UdIwQYMBaAFMcsAZUa9T7NBKYkNTUE2acWASp5MAwGA1UdEwQFMAMBAf8w
+DQYJKoZIhvcNAQEFBQADggEBAEBvalTzKTBIRr3aRnFkUhSnwjS3Xh5CPedHks2H
+551dGoJ3gmIy1J22RBHciHg4pdMfHr7C1hSwWDXNZiJDl7q740RPnXUUn28301AH
+CTa8WJLo/sCouilVZeJvj6ulHU9WN97HtDkgTKhM21ZREn7nf4OdxMdyj2+D8K/j
+NxxA/l44Ji8FRqcMpYF51pyc11brlv7Hro5PXkpsOvpovmVgotM/B3ZFs5U+Ee86
+Dm9zR0yQ3Qs2tCLfYo1Y0qY0W/AGXc2/Uvrum0/oeRhuHG5flhBtLwIb3b8UyTI8
+g6VuVlZ4nc6EUKTfzLWpsewJB3QCJ3qd0papgJWa8ozp75k=
 -----END CERTIFICATE-----
diff --git a/mysql-test/std_data/client-cert.pem b/mysql-test/std_data/client-cert.pem
index b83ae7c..cbe8bc2 100644
--- a/mysql-test/std_data/client-cert.pem
+++ b/mysql-test/std_data/client-cert.pem
@@ -1,69 +1,69 @@
 Certificate:
     Data:
         Version: 3 (0x2)
-        Serial Number: 6 (0x6)
-        Signature Algorithm: sha1WithRSAEncryption
-        Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
+        Serial Number: 3 (0x3)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: CN=cacert, C=FI, ST=Helsinki, L=Helsinki, O=MariaDB
         Validity
-            Not Before: Feb 20 03:03:26 2010 GMT
-            Not After : Sep  3 03:03:26 2030 GMT
-        Subject: C=SE, ST=Uppsala, O=MySQL AB
+            Not Before: Apr 25 14:55:16 2015 GMT
+            Not After : Apr 20 14:55:16 2035 GMT
+        Subject: C=FI, ST=Helsinki, L=Helsinki, O=MariaDB, CN=client
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
-            RSA Public Key: (1024 bit)
-                Modulus (1024 bit):
-                    00:c2:e7:20:cf:89:59:2f:67:cb:4c:9f:e8:11:f2:
-                    23:e5:f1:b1:ee:3f:66:5f:c3:f5:fd:1e:31:ee:8f:
-                    4c:2a:bd:c0:4a:a5:9f:c8:44:d5:77:8f:15:1b:4d:
-                    78:6e:b2:a2:48:a5:24:33:05:40:02:b3:c1:87:8d:
-                    59:3c:1a:07:aa:86:f0:04:e1:9c:20:4b:22:32:c4:
-                    51:9e:40:e4:31:c3:57:f5:98:bf:2e:b1:fd:2c:56:
-                    bf:49:d9:9b:e7:17:cc:95:5f:b5:08:19:5e:9d:df:
-                    65:22:39:2c:48:fb:69:96:31:7a:35:4d:de:60:b4:
-                    c1:60:19:5f:96:56:7e:55:19
+                Public-Key: (1024 bit)
+                Modulus:
+                    00:ce:a0:3d:3c:a4:bb:4f:a1:4f:91:0d:05:ac:5b:
+                    8a:15:7f:d7:aa:0c:a3:a7:9f:b2:c7:26:9d:65:28:
+                    b1:84:d3:a0:ef:9e:b1:45:0f:33:df:98:6e:71:ff:
+                    2b:66:9c:9c:c1:25:13:27:42:b6:20:46:e7:e7:47:
+                    a1:88:47:c2:9e:e2:45:25:99:9f:f9:28:1a:9a:13:
+                    67:5d:3e:b3:b8:fe:40:25:ac:26:49:46:2c:03:43:
+                    83:67:d8:0f:41:ae:2e:f4:d8:71:60:3c:8e:e7:91:
+                    d0:bb:2c:ca:12:da:71:1a:7b:e3:fa:8c:8f:c3:bb:
+                    62:55:89:b3:bf:85:45:01:61
                 Exponent: 65537 (0x10001)
         X509v3 extensions:
             X509v3 Basic Constraints: 
                 CA:FALSE
+            Netscape Comment: 
+                OpenSSL Generated Certificate
             X509v3 Subject Key Identifier: 
-                8D:10:67:91:33:76:9C:02:E5:78:5D:D8:C5:EF:25:96:B2:D7:FA:1F
+                5A:73:74:8E:14:29:C3:FB:B4:19:0F:97:8F:AA:6F:E1:E1:A8:F7:5B
             X509v3 Authority Key Identifier: 
-                keyid:B1:FB:7E:77:B5:40:8D:68:11:7E:D9:11:E5:C3:C6:DA:4D:AC:51:B0
-                DirName:/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB
-                serial:BE:58:AD:4C:1F:3D:25:95
+                keyid:C7:2C:01:95:1A:F5:3E:CD:04:A6:24:35:35:04:D9:A7:16:01:2A:79
 
     Signature Algorithm: sha1WithRSAEncryption
-        a9:88:10:3e:5d:2a:47:29:c8:03:27:7a:31:5a:8e:10:03:bc:
-        b5:4e:37:1d:12:7b:eb:5f:50:71:70:b1:a3:8e:93:0e:77:17:
-        6c:47:b6:c9:a4:4d:2a:c4:38:f0:61:55:b2:7f:28:ba:06:79:
-        ee:67:11:7d:d4:c9:7f:0a:18:c8:c1:cb:d0:2c:f9:63:0f:bb:
-        45:ca:de:ea:bb:ac:00:01:52:48:36:2b:07:2b:c8:46:c7:b1:
-        21:81:bd:77:39:e7:4c:39:aa:bd:ac:60:d8:a7:bf:cf:14:98:
-        4a:0b:a1:40:55:06:8d:6f:35:a9:39:a0:71:a9:97:ba:7c:73:
-        3c:41:ba:c5:1c:11:4b:2b:43:1d:2d:ba:7b:5f:14:b5:3d:64:
-        62:15:36:b4:16:bd:78:c8:43:8d:f9:1c:a5:d2:ac:a1:58:74:
-        e1:99:de:ad:04:19:43:a8:bd:0a:fd:19:9b:50:44:46:6d:18:
-        55:4d:bf:b4:5b:a4:93:62:c7:64:91:6c:54:34:d1:f8:f3:ff:
-        12:6d:5f:85:e7:35:9e:5c:42:81:5e:fb:c8:bb:44:51:98:b2:
-        ef:1b:9f:5a:22:77:28:7d:da:fb:08:c2:94:9a:0f:42:08:93:
-        54:10:1e:ad:f2:4f:fc:62:98:51:e9:9b:b9:3a:93:d9:e4:1f:
-        1d:c4:76:d0
+         32:42:4b:36:44:a5:6c:fb:70:d8:08:2b:cb:16:34:15:db:39:
+         60:7b:7e:b4:4a:bc:fb:e5:16:04:97:0d:eb:f5:68:95:da:2f:
+         23:57:4c:c9:29:2b:d1:1b:1b:9f:bd:f4:79:75:df:62:7f:63:
+         b4:84:7a:95:5c:c4:ee:f3:77:16:e4:0b:8a:5e:c9:64:bd:7c:
+         04:50:ac:ff:9a:41:6b:b1:6a:9f:cd:45:10:72:83:10:8a:26:
+         1d:7f:6c:84:34:5a:41:79:72:91:ee:87:5d:1d:3a:55:ff:91:
+         7e:52:85:ff:42:41:eb:76:56:23:e5:bc:bc:79:b1:aa:4e:4c:
+         bf:7b:df:63:8b:1a:3c:4b:01:72:89:35:bb:0d:92:97:16:6e:
+         ae:50:cb:89:ee:c6:7a:d0:d3:32:22:0f:19:33:1e:ee:ff:41:
+         a5:a1:25:c5:4c:ce:8f:98:4c:b5:2c:1f:ec:cc:f1:21:e2:3a:
+         ff:7d:6a:87:fe:89:fd:2c:20:3e:fb:9b:b8:c0:f9:09:99:ce:
+         45:63:82:09:1c:bb:79:d8:a8:40:21:46:c7:ae:3e:dd:89:9d:
+         56:46:4a:f4:ed:7d:5b:a6:1e:a6:1b:26:f9:ec:26:b4:51:3a:
+         87:b6:50:13:84:33:22:1a:8a:20:c5:44:64:b8:bb:de:32:ec:
+         6b:58:db:17
 -----BEGIN CERTIFICATE-----
-MIIDETCCAfmgAwIBAgIBBjANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJTRTEQ
-MA4GA1UECBMHVXBwc2FsYTEQMA4GA1UEBxMHVXBwc2FsYTERMA8GA1UEChMITXlT
-UUwgQUIwHhcNMTAwMjIwMDMwMzI2WhcNMzAwOTAzMDMwMzI2WjAyMQswCQYDVQQG
-EwJTRTEQMA4GA1UECBMHVXBwc2FsYTERMA8GA1UEChMITXlTUUwgQUIwgZ8wDQYJ
-KoZIhvcNAQEBBQADgY0AMIGJAoGBAMLnIM+JWS9ny0yf6BHyI+Xxse4/Zl/D9f0e
-Me6PTCq9wEqln8hE1XePFRtNeG6yokilJDMFQAKzwYeNWTwaB6qG8AThnCBLIjLE
-UZ5A5DHDV/WYvy6x/SxWv0nZm+cXzJVftQgZXp3fZSI5LEj7aZYxejVN3mC0wWAZ
-X5ZWflUZAgMBAAGjgaMwgaAwCQYDVR0TBAIwADAdBgNVHQ4EFgQUjRBnkTN2nALl
-eF3Yxe8llrLX+h8wdAYDVR0jBG0wa4AUsft+d7VAjWgRftkR5cPG2k2sUbChSKRG
-MEQxCzAJBgNVBAYTAlNFMRAwDgYDVQQIEwdVcHBzYWxhMRAwDgYDVQQHEwdVcHBz
-YWxhMREwDwYDVQQKEwhNeVNRTCBBQoIJAL5YrUwfPSWVMA0GCSqGSIb3DQEBBQUA
-A4IBAQCpiBA+XSpHKcgDJ3oxWo4QA7y1TjcdEnvrX1BxcLGjjpMOdxdsR7bJpE0q
-xDjwYVWyfyi6BnnuZxF91Ml/ChjIwcvQLPljD7tFyt7qu6wAAVJINisHK8hGx7Eh
-gb13OedMOaq9rGDYp7/PFJhKC6FAVQaNbzWpOaBxqZe6fHM8QbrFHBFLK0MdLbp7
-XxS1PWRiFTa0Fr14yEON+Ryl0qyhWHThmd6tBBlDqL0K/RmbUERGbRhVTb+0W6ST
-YsdkkWxUNNH48/8SbV+F5zWeXEKBXvvIu0RRmLLvG59aIncofdr7CMKUmg9CCJNU
-EB6t8k/8YphR6Zu5OpPZ5B8dxHbQ
+MIIDHjCCAgagAwIBAgIBAzANBgkqhkiG9w0BAQUFADBWMQ8wDQYDVQQDDAZjYWNl
+cnQxCzAJBgNVBAYTAkZJMREwDwYDVQQIDAhIZWxzaW5raTERMA8GA1UEBwwISGVs
+c2lua2kxEDAOBgNVBAoMB01hcmlhREIwHhcNMTUwNDI1MTQ1NTE2WhcNMzUwNDIw
+MTQ1NTE2WjBWMQswCQYDVQQGEwJGSTERMA8GA1UECAwISGVsc2lua2kxETAPBgNV
+BAcMCEhlbHNpbmtpMRAwDgYDVQQKDAdNYXJpYURCMQ8wDQYDVQQDDAZjbGllbnQw
+gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM6gPTyku0+hT5ENBaxbihV/16oM
+o6efsscmnWUosYTToO+esUUPM9+YbnH/K2acnMElEydCtiBG5+dHoYhHwp7iRSWZ
+n/koGpoTZ10+s7j+QCWsJklGLANDg2fYD0GuLvTYcWA8jueR0LssyhLacRp74/qM
+j8O7YlWJs7+FRQFhAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8W
+HU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRac3SOFCnD
++7QZD5ePqm/h4aj3WzAfBgNVHSMEGDAWgBTHLAGVGvU+zQSmJDU1BNmnFgEqeTAN
+BgkqhkiG9w0BAQUFAAOCAQEAMkJLNkSlbPtw2AgryxY0Fds5YHt+tEq8++UWBJcN
+6/VoldovI1dMySkr0Rsbn730eXXfYn9jtIR6lVzE7vN3FuQLil7JZL18BFCs/5pB
+a7Fqn81FEHKDEIomHX9shDRaQXlyke6HXR06Vf+RflKF/0JB63ZWI+W8vHmxqk5M
+v3vfY4saPEsBcok1uw2SlxZurlDLie7GetDTMiIPGTMe7v9BpaElxUzOj5hMtSwf
+7MzxIeI6/31qh/6J/SwgPvubuMD5CZnORWOCCRy7edioQCFGx64+3YmdVkZK9O19
+W6Yephsm+ewmtFE6h7ZQE4QzIhqKIMVEZLi73jLsa1jbFw==
 -----END CERTIFICATE-----
diff --git a/mysql-test/std_data/client-key.pem b/mysql-test/std_data/client-key.pem
index 2fc1754..5037c6e 100644
--- a/mysql-test/std_data/client-key.pem
+++ b/mysql-test/std_data/client-key.pem
@@ -1,15 +1,15 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIICWwIBAAKBgQDC5yDPiVkvZ8tMn+gR8iPl8bHuP2Zfw/X9HjHuj0wqvcBKpZ/I
-RNV3jxUbTXhusqJIpSQzBUACs8GHjVk8GgeqhvAE4ZwgSyIyxFGeQOQxw1f1mL8u
-sf0sVr9J2ZvnF8yVX7UIGV6d32UiOSxI+2mWMXo1Td5gtMFgGV+WVn5VGQIDAQAB
-AoGARXcXLKDpVooJ3W+IyQyiWsw//IhANpWjUOm4JiyQmxMyO+i4ACr4Yjpu7WI5
-MEseqAGj20NdwxjKO0PXsCIe5LmrGZ+SI8+CSERFOWXWRtCWz7y7SG30i1k6suvM
-mwqWom0tJLwn93uA1lm/WSwKQwUrJRahRQd3EaZqrl7DP5kCQQD/8gbuYAT5pxQe
-ULLGM0RvEsXxDYbEDxNbY5wrBazfklBwpumxZpFl6jEAT++7Kh2Ns3A7kB1oUNlA
-FPYr+dYPAkEAwvHEwRtoyUr8jqoqVVJWI76CDmBjEOzVeMKW97ztqbs2LxZW8dYI
-iOh/myFGpdoUwgu0U8w9MmXcj3ZeZCYKVwJALyQ+AJPw9qa+fuLwOq9gsHCtwrty
-EhSQxSlwrz/pWniRll439vPkXfgntF4E0t1r+hiN2Hqv3/HcQgBaYzkuIwJAG023
-bACFxaOuCeFFepvEms8E8jSHy4gQQhCnCl24v8wLw76SQN7kZSCDNtwLRBFuVNtE
-z3PMonFn2eQPRmGZkwJAP1c1BHprMQx/ruafdscROILv3JrH40C1bR6KVVBKt1dK
-Qpnpgi7hK5rUQjDF8k3bn9ugTt06jyeHe/QhAml0kg==
+MIICXAIBAAKBgQDOoD08pLtPoU+RDQWsW4oVf9eqDKOnn7LHJp1lKLGE06DvnrFF
+DzPfmG5x/ytmnJzBJRMnQrYgRufnR6GIR8Ke4kUlmZ/5KBqaE2ddPrO4/kAlrCZJ
+RiwDQ4Nn2A9Bri702HFgPI7nkdC7LMoS2nEae+P6jI/Du2JVibO/hUUBYQIDAQAB
+AoGAa/FgLFcul3oA9BjmdtVXfMXNp8N0l3QhVFLC9P7eRjK8p5GysA4yHkQmpp0U
+UkXMykYRDHiYZqJEMhnEtEowzBmodi7go+gpwAR2eUKwESmJoBhPvqDJAbS/fL5D
+H2Wk6FGsdKoPhEpigWefu6ZqlX5GCGa601eMYLMR9i+6bbUCQQDspD4j2q8oihTU
+RQt/XpF1l+5ZRHjQOokwRekuHdq0powtNxZ+X3V8Qy8JbDRNCM2YtfKMX4gXAfZp
+JWs7HoPvAkEA34doY3AKxZSpXD84m4dnJ0/Ubfk3+tcC1EPYyDJ1DHpfz7fy6aoX
+z8TWCQXtSBGaEa9Dgbz+EFXuctLbUR8/rwJACDjIo+xEK69oe9uOQ7WgbiqCMH3N
+iMaP36p+KIkHAUHMGwIP+QIODewzpSsqQgbtRcIElFX5X3tE+XBAYoRz5wJAKH3/
+CwRg7ynfBDbvqjz9EsIDWWisG2SXvpwLyThau8fvU1GfT3Tgm2Ks4zWPpl6J6mo1
+cGssGwl2CJbp4+glQQJBAJAwvKufpB+M6OjvKh89GGsCEaV1ENJ41FPcQwJ2pjed
+Fcq28ZP59v7bfBH2IkNu3pfEzmvQnmRlTEtXGjNn+i8=
 -----END RSA PRIVATE KEY-----
diff --git a/mysql-test/std_data/mysql_upgrade/event.MYD b/mysql-test/std_data/mysql_upgrade/event.MYD
new file mode 100644
index 0000000..e69de29
diff --git a/mysql-test/std_data/mysql_upgrade/event.MYI b/mysql-test/std_data/mysql_upgrade/event.MYI
new file mode 100644
index 0000000..d5c16c3
Binary files /dev/null and b/mysql-test/std_data/mysql_upgrade/event.MYI differ
diff --git a/mysql-test/std_data/mysql_upgrade/event.frm b/mysql-test/std_data/mysql_upgrade/event.frm
new file mode 100644
index 0000000..fd4ff19
Binary files /dev/null and b/mysql-test/std_data/mysql_upgrade/event.frm differ
diff --git a/mysql-test/std_data/mysql_upgrade/v1.frm b/mysql-test/std_data/mysql_upgrade/v1.frm
new file mode 100644
index 0000000..be197fd
--- /dev/null
+++ b/mysql-test/std_data/mysql_upgrade/v1.frm
@@ -0,0 +1,15 @@
+TYPE=VIEW
+query=select `test`.`t1`.`a` AS `a` from `test`.`t1`
+md5=5e6eaf216e7b016fcedfd4e1113517af
+updatable=0
+algorithm=1
+definer_user=root
+definer_host=localhost
+suid=2
+with_check_option=0
+timestamp=2014-12-11 15:26:20
+create-version=1
+source=select a from t1
+client_cs_name=utf8
+connection_cl_name=utf8_general_ci
+view_body_utf8=select `test`.`t1`.`a` AS `a` from `test`.`t1`
diff --git a/mysql-test/std_data/mysql_upgrade/v1badcheck.frm b/mysql-test/std_data/mysql_upgrade/v1badcheck.frm
new file mode 100644
index 0000000..a1e3bfe
--- /dev/null
+++ b/mysql-test/std_data/mysql_upgrade/v1badcheck.frm
@@ -0,0 +1,15 @@
+TYPE=VIEW
+query=select `test`.`t1`.`a` AS `a` from `test`.`t1`
+md5=00000000000000000000000000000000
+updatable=0
+algorithm=1
+definer_user=root
+definer_host=localhost
+suid=2
+with_check_option=0
+timestamp=2014-12-11 15:26:20
+create-version=1
+source=select a from t1
+client_cs_name=utf8
+connection_cl_name=utf8_general_ci
+view_body_utf8=select `test`.`t1`.`a` AS `a` from `test`.`t1`
diff --git a/mysql-test/std_data/mysql_upgrade/v2.frm b/mysql-test/std_data/mysql_upgrade/v2.frm
new file mode 100644
index 0000000..42cc06d
--- /dev/null
+++ b/mysql-test/std_data/mysql_upgrade/v2.frm
@@ -0,0 +1,15 @@
+TYPE=VIEW
+query=select `test`.`t1`.`a` AS `a` from `test`.`t1`
+md5=5e6eaf216e7b016fcedfd4e1113517af
+updatable=1
+algorithm=2
+definer_user=root
+definer_host=localhost
+suid=2
+with_check_option=0
+timestamp=2014-12-11 15:26:29
+create-version=1
+source=select a from t1
+client_cs_name=utf8
+connection_cl_name=utf8_general_ci
+view_body_utf8=select `test`.`t1`.`a` AS `a` from `test`.`t1`
diff --git a/mysql-test/std_data/mysql_upgrade/v3.frm b/mysql-test/std_data/mysql_upgrade/v3.frm
new file mode 100644
index 0000000..cca46ae
--- /dev/null
+++ b/mysql-test/std_data/mysql_upgrade/v3.frm
@@ -0,0 +1,15 @@
+TYPE=VIEW
+query=select `test`.`t1`.`a` AS `a` from `test`.`t1`
+md5=5e6eaf216e7b016fcedfd4e1113517af
+updatable=0
+algorithm=0
+definer_user=root
+definer_host=localhost
+suid=2
+with_check_option=0
+timestamp=2014-12-11 15:26:20
+create-version=1
+source=select a from t1
+client_cs_name=utf8
+connection_cl_name=utf8_general_ci
+view_body_utf8=select `test`.`t1`.`a` AS `a` from `test`.`t1`
diff --git a/mysql-test/std_data/mysql_upgrade/v4.frm b/mysql-test/std_data/mysql_upgrade/v4.frm
new file mode 100644
index 0000000..9d0cc48
--- /dev/null
+++ b/mysql-test/std_data/mysql_upgrade/v4.frm
@@ -0,0 +1,16 @@
+TYPE=VIEW
+query=select `test`.`t1`.`a` AS `a` from `test`.`t1`
+md5=5e6eaf216e7b016fcedfd4e1113517a0
+updatable=1
+algorithm=0
+definer_user=root
+definer_host=localhost
+suid=2
+with_check_option=0
+timestamp=2015-02-08 19:21:14
+create-version=1
+source=select a from t1
+client_cs_name=latin1
+connection_cl_name=latin1_swedish_ci
+view_body_utf8=select `test`.`t1`.`a` AS `a` from `test`.`t1`
+mariadb-version=50542
diff --git a/mysql-test/std_data/server-cert.pem b/mysql-test/std_data/server-cert.pem
index d77bae8..1cc1519 100644
--- a/mysql-test/std_data/server-cert.pem
+++ b/mysql-test/std_data/server-cert.pem
@@ -1,69 +1,74 @@
 Certificate:
     Data:
         Version: 3 (0x2)
-        Serial Number: 4 (0x4)
-        Signature Algorithm: sha1WithRSAEncryption
-        Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
+        Serial Number: 1 (0x1)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: CN=cacert, C=FI, ST=Helsinki, L=Helsinki, O=MariaDB
         Validity
-            Not Before: Feb 20 02:55:06 2010 GMT
-            Not After : Sep  3 02:55:06 2030 GMT
-        Subject: C=SE, ST=Uppsala, O=MySQL AB, CN=localhost
+            Not Before: Apr 25 14:55:05 2015 GMT
+            Not After : Apr 20 14:55:05 2035 GMT
+        Subject: C=FI, ST=state or province within country, in other certificates in this file it is the same as L, L=location, usually an address but often ambiguously used, O=organization name, typically a company name, OU=organizational unit name, a division name within an organization, CN=localhost
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
-            RSA Public Key: (1024 bit)
-                Modulus (1024 bit):
-                    00:e3:7d:4f:c2:23:77:a9:3a:2c:d2:69:59:a0:2f:
-                    4e:d1:51:4c:ae:8d:f5:17:cc:ce:58:9c:83:4f:0b:
-                    a3:bb:29:a2:b8:1d:3e:1b:04:f9:a9:3e:e2:61:d0:
-                    e6:7b:b9:7c:12:d8:1f:86:c9:53:b5:04:dd:df:26:
-                    e9:c0:2b:de:4a:96:2e:f3:23:6f:79:6d:a9:d2:4e:
-                    17:af:2f:de:8b:68:44:ae:de:a3:e2:c4:37:1c:04:
-                    ad:73:4b:85:f9:83:ac:fe:b7:c1:54:47:2e:96:d4:
-                    31:96:85:94:69:d6:5a:63:24:04:99:89:19:1d:56:
-                    8a:d1:77:aa:87:fb:38:cd:b7
+                Public-Key: (1024 bit)
+                Modulus:
+                    00:aa:e6:54:bd:dd:52:1e:16:f7:24:52:37:58:2b:
+                    a7:af:49:e1:cd:75:2a:18:52:e1:48:f0:59:82:c0:
+                    7a:d9:66:b3:97:04:b3:77:f4:39:fd:d1:c0:1a:c5:
+                    a6:ab:44:84:d2:17:39:53:25:63:9b:c3:24:78:51:
+                    5c:77:6b:df:b4:82:1d:e4:43:f4:67:0a:5d:89:a2:
+                    fe:b0:ea:64:3a:1d:9d:49:78:c8:7f:79:a5:cd:45:
+                    4b:0c:ad:ae:4f:e2:d4:5d:ec:e8:73:06:ed:98:92:
+                    85:49:b2:9c:31:3b:44:38:5f:bb:5a:f1:68:84:a9:
+                    c3:5b:31:39:d4:47:98:38:55
                 Exponent: 65537 (0x10001)
         X509v3 extensions:
             X509v3 Basic Constraints: 
                 CA:FALSE
+            Netscape Comment: 
+                OpenSSL Generated Certificate
             X509v3 Subject Key Identifier: 
-                CC:8C:71:40:D0:0F:BF:D1:99:79:3F:1B:E9:10:76:19:67:36:0F:A3
+                E5:72:8F:57:72:D6:75:63:28:7F:E2:BF:00:B7:1D:B8:AA:FE:94:59
             X509v3 Authority Key Identifier: 
-                keyid:B1:FB:7E:77:B5:40:8D:68:11:7E:D9:11:E5:C3:C6:DA:4D:AC:51:B0
-                DirName:/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB
-                serial:BE:58:AD:4C:1F:3D:25:95
+                keyid:C7:2C:01:95:1A:F5:3E:CD:04:A6:24:35:35:04:D9:A7:16:01:2A:79
 
     Signature Algorithm: sha1WithRSAEncryption
-        6f:ad:5e:59:fa:84:3a:be:e2:72:b1:e8:66:2a:4e:f8:73:19:
-        11:06:11:92:78:56:3e:d6:e8:68:29:90:8b:59:d2:fe:aa:ae:
-        25:59:c7:e9:99:bb:4a:06:43:dd:40:bd:cb:f4:ae:79:95:7d:
-        8e:90:ef:58:d2:a8:fc:bf:07:f3:37:b2:9b:bd:da:e6:8c:56:
-        dd:5e:c6:4a:70:7c:3e:3d:a1:e8:35:06:b8:a7:7b:ac:26:85:
-        54:5d:09:a2:7b:77:b4:17:7f:72:31:cb:ff:cc:67:6d:e6:3e:
-        c6:dc:96:eb:4a:0a:ae:e9:48:ae:8a:e0:d6:73:57:6e:32:4c:
-        00:dc:28:da:55:b3:9f:9f:d8:98:cc:d9:f1:b6:b3:14:67:2e:
-        a1:47:1e:51:11:cf:70:9f:31:8f:ba:59:29:f2:d0:88:0b:e2:
-        51:6b:f8:31:ed:6d:ac:00:5e:d3:78:4c:95:97:02:cc:74:2b:
-        3b:c6:28:e6:2a:c3:30:99:35:b4:4d:31:46:d4:90:f2:47:ed:
-        64:85:1a:75:2a:72:0a:2f:c6:3a:2f:d2:ac:6b:31:cc:e5:a8:
-        07:c2:d6:22:f3:c6:0f:bf:67:d9:d6:b2:79:cd:48:b5:c3:e0:
-        e3:18:7f:b5:74:c9:43:19:fb:c4:93:29:ca:cc:90:2b:1b:6f:
-        45:f6:25:f9
+         88:44:46:fa:7d:16:ae:9d:16:5b:95:26:03:3c:71:f4:29:3d:
+         df:cb:f4:14:20:9f:87:24:b4:29:17:2d:7a:12:48:76:ac:00:
+         44:26:ba:93:83:ad:58:7e:b7:77:e4:b0:32:0d:e5:dd:fb:cc:
+         0e:9b:88:e0:24:82:e4:41:43:47:5a:4e:d3:b4:5b:47:4b:57:
+         eb:67:02:63:bb:dd:05:12:f5:95:01:0b:89:81:ca:c2:91:14:
+         21:9a:9e:c9:84:91:46:35:0e:26:44:1e:91:88:74:4f:fe:d3:
+         19:9e:65:fa:46:e2:46:04:ad:91:79:4c:70:1b:68:b2:49:e9:
+         6c:f4:58:44:3b:43:15:85:56:64:1b:84:74:49:95:9f:cd:93:
+         9d:8e:69:ab:ca:46:97:b6:74:e9:2a:83:85:62:cd:e5:be:c3:
+         52:bd:cf:90:cc:60:27:76:ee:1b:3c:da:69:73:e2:11:68:14:
+         dc:7d:9f:b8:6f:20:a2:0c:b7:8e:33:40:89:d1:a3:89:e2:60:
+         6a:ec:b5:9f:e8:c5:55:10:40:b2:95:5e:54:8a:10:8e:d5:90:
+         d9:98:86:d8:f9:b6:01:41:8c:d7:0d:0e:86:0e:50:6d:a2:64:
+         00:2a:91:5e:35:64:15:e3:86:34:3a:39:eb:0f:4f:56:c7:15:
+         4c:74:2e:91
 -----BEGIN CERTIFICATE-----
-MIIDJTCCAg2gAwIBAgIBBDANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJTRTEQ
-MA4GA1UECBMHVXBwc2FsYTEQMA4GA1UEBxMHVXBwc2FsYTERMA8GA1UEChMITXlT
-UUwgQUIwHhcNMTAwMjIwMDI1NTA2WhcNMzAwOTAzMDI1NTA2WjBGMQswCQYDVQQG
-EwJTRTEQMA4GA1UECBMHVXBwc2FsYTERMA8GA1UEChMITXlTUUwgQUIxEjAQBgNV
-BAMTCWxvY2FsaG9zdDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA431PwiN3
-qTos0mlZoC9O0VFMro31F8zOWJyDTwujuymiuB0+GwT5qT7iYdDme7l8EtgfhslT
-tQTd3ybpwCveSpYu8yNveW2p0k4Xry/ei2hErt6j4sQ3HAStc0uF+YOs/rfBVEcu
-ltQxloWUadZaYyQEmYkZHVaK0Xeqh/s4zbcCAwEAAaOBozCBoDAJBgNVHRMEAjAA
-MB0GA1UdDgQWBBTMjHFA0A+/0Zl5PxvpEHYZZzYPozB0BgNVHSMEbTBrgBSx+353
-tUCNaBF+2RHlw8baTaxRsKFIpEYwRDELMAkGA1UEBhMCU0UxEDAOBgNVBAgTB1Vw
-cHNhbGExEDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoTCE15U1FMIEFCggkAvlit
-TB89JZUwDQYJKoZIhvcNAQEFBQADggEBAG+tXln6hDq+4nKx6GYqTvhzGREGEZJ4
-Vj7W6GgpkItZ0v6qriVZx+mZu0oGQ91Avcv0rnmVfY6Q71jSqPy/B/M3spu92uaM
-Vt1exkpwfD49oeg1Brine6wmhVRdCaJ7d7QXf3Ixy//MZ23mPsbclutKCq7pSK6K
-4NZzV24yTADcKNpVs5+f2JjM2fG2sxRnLqFHHlERz3CfMY+6WSny0IgL4lFr+DHt
-bawAXtN4TJWXAsx0KzvGKOYqwzCZNbRNMUbUkPJH7WSFGnUqcgovxjov0qxrMczl
-qAfC1iLzxg+/Z9nWsnnNSLXD4OMYf7V0yUMZ+8STKcrMkCsbb0X2Jfk=
+MIIEETCCAvmgAwIBAgIBATANBgkqhkiG9w0BAQUFADBWMQ8wDQYDVQQDDAZjYWNl
+cnQxCzAJBgNVBAYTAkZJMREwDwYDVQQIDAhIZWxzaW5raTERMA8GA1UEBwwISGVs
+c2lua2kxEDAOBgNVBAoMB01hcmlhREIwHhcNMTUwNDI1MTQ1NTA1WhcNMzUwNDIw
+MTQ1NTA1WjCCAUcxCzAJBgNVBAYTAkZJMWEwXwYDVQQIDFhzdGF0ZSBvciBwcm92
+aW5jZSB3aXRoaW4gY291bnRyeSwgaW4gb3RoZXIgY2VydGlmaWNhdGVzIGluIHRo
+aXMgZmlsZSBpdCBpcyB0aGUgc2FtZSBhcyBMMUAwPgYDVQQHDDdsb2NhdGlvbiwg
+dXN1YWxseSBhbiBhZGRyZXNzIGJ1dCBvZnRlbiBhbWJpZ3VvdXNseSB1c2VkMTQw
+MgYDVQQKDCtvcmdhbml6YXRpb24gbmFtZSwgdHlwaWNhbGx5IGEgY29tcGFueSBu
+YW1lMUkwRwYDVQQLDEBvcmdhbml6YXRpb25hbCB1bml0IG5hbWUsIGEgZGl2aXNp
+b24gbmFtZSB3aXRoaW4gYW4gb3JnYW5pemF0aW9uMRIwEAYDVQQDDAlsb2NhbGhv
+c3QwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAKrmVL3dUh4W9yRSN1grp69J
+4c11KhhS4UjwWYLAetlms5cEs3f0Of3RwBrFpqtEhNIXOVMlY5vDJHhRXHdr37SC
+HeRD9GcKXYmi/rDqZDodnUl4yH95pc1FSwytrk/i1F3s6HMG7ZiShUmynDE7RDhf
+u1rxaISpw1sxOdRHmDhVAgMBAAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgEN
+BB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBTlco9X
+ctZ1Yyh/4r8Atx24qv6UWTAfBgNVHSMEGDAWgBTHLAGVGvU+zQSmJDU1BNmnFgEq
+eTANBgkqhkiG9w0BAQUFAAOCAQEAiERG+n0Wrp0WW5UmAzxx9Ck938v0FCCfhyS0
+KRctehJIdqwARCa6k4OtWH63d+SwMg3l3fvMDpuI4CSC5EFDR1pO07RbR0tX62cC
+Y7vdBRL1lQELiYHKwpEUIZqeyYSRRjUOJkQekYh0T/7TGZ5l+kbiRgStkXlMcBto
+sknpbPRYRDtDFYVWZBuEdEmVn82TnY5pq8pGl7Z06SqDhWLN5b7DUr3PkMxgJ3bu
+GzzaaXPiEWgU3H2fuG8gogy3jjNAidGjieJgauy1n+jFVRBAspVeVIoQjtWQ2ZiG
+2Pm2AUGM1w0Ohg5QbaJkACqRXjVkFeOGNDo56w9PVscVTHQukQ==
 -----END CERTIFICATE-----
diff --git a/mysql-test/std_data/server-key.pem b/mysql-test/std_data/server-key.pem
index bf0ae20..3125ae8 100644
--- a/mysql-test/std_data/server-key.pem
+++ b/mysql-test/std_data/server-key.pem
@@ -1,15 +1,15 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIICXgIBAAKBgQDjfU/CI3epOizSaVmgL07RUUyujfUXzM5YnINPC6O7KaK4HT4b
-BPmpPuJh0OZ7uXwS2B+GyVO1BN3fJunAK95Kli7zI295banSThevL96LaESu3qPi
-xDccBK1zS4X5g6z+t8FURy6W1DGWhZRp1lpjJASZiRkdVorRd6qH+zjNtwIDAQAB
-AoGAUb0o91y/FjMs/72S0pes/lDz+JRRSGfyjKxQEgrgndNsADOhqRu0iTdrKDJj
-XnlbN3ooecnFJfnFrvTQcJhSmlS30j6VrBw6LXpCBK3dvjYgJ9LOne7WK+dF1+vS
-FMQtsP04C56Sxy6HJDpMyWJ6oS3Bu169ygG2AxKo+Fk+E6ECQQD38w/MzmrARz2Z
-AGeEPDUnVZPYgtmXkmks95S0/2jSoLhmgpvJimzxwpYwVG/BG8dSDVuTDu5kp05D
-3bZIp3EzAkEA6uAwJsCZPtHXlWU3wYZJsA697rUNjPaCQOIaZ/lnh5RUHTmUiw1h
-Oj/VORqKB0kXqcDfawwLjZEvh1Xli+H5bQJBANTmhw2TvEPnp/OFTl1UGUvyBmXl
-TRMB639qAu07VfVtfYi/4ya1zn/0VmOfTOoigQ5qW9Q1AOu6YNCTQl62L9MCQQDc
-YfEsW2kvNYxYJHoVfuBjbuGuOnn1e1Oqd70ZND59S6NFLMMBWlORaVWzWACNZ3rp
-kAzSj6HDeqgjD2jsQONdAkEAt7S1YHUn8F760bRn4AnAto2TVOYdArtTP/wYjd4o
-9rJREO/d8AYkYJ96APLvF0SZ4n3t1pLwQRsKKN8ZGTmzLA==
+MIICXAIBAAKBgQCq5lS93VIeFvckUjdYK6evSeHNdSoYUuFI8FmCwHrZZrOXBLN3
+9Dn90cAaxaarRITSFzlTJWObwyR4UVx3a9+0gh3kQ/RnCl2Jov6w6mQ6HZ1JeMh/
+eaXNRUsMra5P4tRd7OhzBu2YkoVJspwxO0Q4X7ta8WiEqcNbMTnUR5g4VQIDAQAB
+AoGAblQWXyBzdBN1Z5BgRF6ieYpj6OT70QoogJMR5lRmutUPma4iQo17pr3znBT/
+nU+1w3/UtTXNEXCwqbA01q/gkbP2PaW/sbHLVow1B7u/o42WW6I3Btnl3ClnCNjD
+Mo7/Gj027hhp7mC61r81JeJVh8fJUgxdNqoH7AkDnA+FJAECQQDjIl3k6W2P+bHb
+bp+8eyY7ITQbppZh+3hFJKRL7DZKFYL5J6gejiBURnG9DKnhoSP2nqzqdrRhWZhB
+ZHr+ciEBAkEAwJ5rMpFoIwRzgPD4Q4iSqHcBbFcJE7dK1XLq6MYUVNQGfDU8pBvI
+EocXphpsJ8CbR35dGDY19rmO2LjG3RBDVQJAetRN9Inrjw2YCjNzvKjYTuew1zcq
+YghszO94zfoKjdu+PWEdwJBZmVmTDoo3oGXVHfxHRHA3MeISvWJKRSmRAQJAHL9H
+9msXJKrEZkkQdFvMr5HbR4UR2LxxUbvt7UGqxSJDuYPkggWXbZR15hdpbuFjC1+D
+m1pz4Ve+RwAExfdoZQJBANfmuWtlLU+SMpDG4zOyC7u4dz+TtnEOfDUECFNZtqvU
+MWz98MIXAjiBDYU1Z0BrA7b0/FVsPR3t6JZFQWWI2y8=
 -----END RSA PRIVATE KEY-----
diff --git a/mysql-test/std_data/server8k-cert.pem b/mysql-test/std_data/server8k-cert.pem
index c4c4c3a..7e41195 100644
--- a/mysql-test/std_data/server8k-cert.pem
+++ b/mysql-test/std_data/server8k-cert.pem
@@ -1,69 +1,148 @@
 Certificate:
     Data:
         Version: 3 (0x2)
-        Serial Number: 5 (0x5)
-        Signature Algorithm: sha1WithRSAEncryption
-        Issuer: C=SE, ST=Uppsala, L=Uppsala, O=MySQL AB
+        Serial Number: 2 (0x2)
+    Signature Algorithm: sha1WithRSAEncryption
+        Issuer: CN=cacert, C=FI, ST=Helsinki, L=Helsinki, O=MariaDB
         Validity
-            Not Before: Feb 20 03:00:54 2010 GMT
-            Not After : Sep  3 03:00:54 2030 GMT
-        Subject: C=SE, ST=Uppsala, O=MySQL AB, CN=server
+            Not Before: Apr 25 14:55:16 2015 GMT
+            Not After : Apr 20 14:55:16 2035 GMT
+        Subject: C=FI, ST=Helsinki, L=Helsinki, O=MariaDB, CN=server8k
         Subject Public Key Info:
             Public Key Algorithm: rsaEncryption
-            RSA Public Key: (1024 bit)
-                Modulus (1024 bit):
-                    00:c5:da:44:95:06:77:16:21:af:a0:c4:3c:e9:f8:
-                    1d:2d:95:f9:63:90:8c:3f:86:ba:77:76:4a:52:4b:
-                    6b:af:29:f5:1c:aa:d4:3f:3e:42:9f:6d:46:ba:86:
-                    90:b1:2d:cc:db:c6:33:15:a3:f4:af:53:33:4f:a1:
-                    56:d1:aa:3b:26:10:f7:64:b5:f9:bf:1b:b1:47:8e:
-                    cc:a6:d6:0d:aa:4a:77:e3:a3:63:9d:2a:dc:65:f4:
-                    7f:91:17:38:2d:d6:cd:4e:8d:53:52:97:6e:87:fc:
-                    64:60:a6:a1:00:ac:96:6c:e4:42:94:75:17:46:6f:
-                    91:b5:dd:06:47:ed:05:e3:db
+                Public-Key: (8192 bit)
+                Modulus:
+                    00:e6:24:79:3d:3a:58:6a:12:1c:13:6a:43:d9:c1:
+                    65:ec:55:c1:4f:7d:fc:f2:a6:56:a5:ab:c5:48:2c:
+                    ce:9c:9d:47:3d:94:93:d5:3b:a3:d0:09:a8:8f:e0:
+                    4b:36:a0:95:ae:2d:ad:7f:a2:a3:c5:f6:87:80:4c:
+                    6a:26:15:47:73:20:47:e1:f8:5f:49:b7:13:20:f7:
+                    32:9f:db:7d:62:41:1b:60:26:7b:41:26:16:0c:92:
+                    22:ef:b4:2e:b3:db:90:e9:09:ca:fe:1a:1b:e4:f3:
+                    78:69:7d:ca:6e:c5:39:4b:46:72:09:51:08:40:78:
+                    8e:04:2a:23:cb:d5:50:cf:96:dd:56:43:10:1b:d2:
+                    71:28:8f:10:a9:e4:44:1c:39:8a:06:a7:fa:37:48:
+                    bd:5a:dd:37:7f:7a:00:cf:84:8a:48:a3:75:a5:67:
+                    fb:7b:47:2d:26:00:2e:65:ed:63:4e:b7:94:18:3f:
+                    5a:08:74:54:e5:af:dd:86:1b:34:9b:4c:de:fe:d8:
+                    69:3d:72:90:c7:5c:83:82:78:ea:ab:06:d4:f1:06:
+                    20:ad:fd:24:bb:e9:94:e0:c6:32:f5:df:af:b4:14:
+                    4d:9c:ce:0d:62:3a:3a:2b:11:f9:9e:d7:8e:63:2b:
+                    57:35:10:7e:d5:44:64:8c:61:9b:4e:f8:e8:a5:fb:
+                    47:bb:85:33:ea:c6:e0:3d:e2:2c:e8:41:e1:15:e2:
+                    a7:45:23:df:d0:f9:93:01:97:89:95:77:4d:d5:d4:
+                    c1:db:61:ca:e2:84:36:9c:01:9b:33:ec:53:83:2f:
+                    dd:d7:d8:20:c0:6b:4a:73:92:d2:6c:22:a6:a2:68:
+                    46:8b:aa:3f:aa:fe:47:b7:98:70:fd:ba:59:88:af:
+                    9f:0d:d7:cb:a0:42:44:f9:f0:54:39:c1:cd:fb:b4:
+                    e4:c6:d6:7e:1d:f5:ed:b9:1a:0f:d7:e6:a2:ab:a2:
+                    25:1f:6c:f9:ab:9c:d8:a3:b9:da:32:72:51:6d:61:
+                    f1:3b:7d:06:2b:3d:43:d5:52:1f:cb:62:14:53:69:
+                    4d:91:12:22:f0:55:f9:fc:4f:de:ee:e3:fc:fd:40:
+                    57:50:eb:0e:7a:45:cc:52:0f:24:6f:45:02:72:6b:
+                    6d:90:94:1c:d4:fb:34:f6:4b:4d:25:17:6f:df:4a:
+                    64:f8:ad:1e:6e:df:ad:6c:b3:1d:1a:e6:0e:59:7b:
+                    f8:a7:13:77:78:85:bf:3f:7c:12:d4:8e:34:ff:01:
+                    90:03:42:85:60:e4:99:d6:19:32:46:41:e8:50:ca:
+                    2a:03:61:cd:c5:68:f4:92:0f:6e:48:89:41:9e:53:
+                    bc:41:62:ed:4a:92:64:b5:cb:3d:55:6c:d9:87:87:
+                    9a:ab:fc:22:50:66:92:2b:b9:d7:9e:3b:ed:80:e3:
+                    fa:19:69:38:87:b6:25:3a:db:b5:d0:f2:80:4d:af:
+                    6d:7d:92:90:de:aa:df:be:80:26:1c:69:ee:7a:e3:
+                    45:c9:a4:4e:6a:e0:56:5f:1f:61:44:3f:62:34:c9:
+                    1e:21:5f:f6:7f:68:c0:6e:bf:d2:35:1e:53:99:e4:
+                    e1:bd:64:a4:49:3c:c3:ce:b6:e8:a9:3d:27:54:ea:
+                    f1:3e:a1:fc:7b:bf:8d:71:60:90:c5:66:24:85:de:
+                    7d:47:1f:62:83:e2:63:8e:10:5c:14:cd:d0:7e:86:
+                    44:4d:df:05:10:43:b8:3c:87:64:69:ec:ea:fb:49:
+                    9a:c6:76:c1:8f:ea:49:98:0a:d3:97:af:64:ef:da:
+                    5f:a9:57:03:e3:a0:15:d8:68:c5:40:d8:7b:0f:26:
+                    0d:5f:f0:be:5a:4c:fd:af:9e:bf:2d:31:40:71:25:
+                    de:d0:73:19:2d:ae:a6:cb:7c:f0:b8:a4:a9:5c:50:
+                    80:41:4e:dc:f7:20:a4:a6:66:65:fb:92:d1:43:2d:
+                    bf:30:b2:0d:db:9b:a3:ac:28:08:c4:81:99:0c:0d:
+                    45:e9:a9:e5:6c:da:bf:10:bb:a7:3e:5a:5f:b7:93:
+                    4a:20:15:29:69:74:78:d1:eb:53:a8:88:49:cb:de:
+                    0c:e2:9b:31:e2:2f:56:95:cf:55:92:a3:8e:a9:ef:
+                    68:cb:00:11:d4:71:06:4b:e5:89:0c:b6:e7:2b:2f:
+                    98:65:21:8e:2a:a3:86:73:bb:1b:76:e1:94:02:d8:
+                    a1:51:97:15:60:a2:39:d5:fd:dc:a8:be:30:12:44:
+                    b1:49:0b:94:82:cf:5f:93:61:1c:3c:eb:05:5b:a4:
+                    17:ee:30:cd:7c:db:3f:ee:79:02:da:14:20:98:fd:
+                    9a:0a:f1:39:c8:59:5b:4e:a3:ad:f8:04:e6:0b:b6:
+                    81:7e:41:00:af:f7:37:ec:6e:bc:28:a3:3d:76:b6:
+                    fd:e9:88:c7:1e:78:79:27:62:a2:83:34:15:61:b8:
+                    e4:c3:ac:f5:7f:3e:4e:5f:5f:31:5b:e8:91:1b:80:
+                    5e:cb:74:b2:e5:a3:8a:d5:5a:89:fa:63:f1:ff:67:
+                    bd:59:d0:70:77:b7:75:b5:34:74:3d:2e:99:46:0b:
+                    4b:c4:64:2f:93:48:fe:47:92:6a:0b:42:5e:ef:c9:
+                    06:64:84:60:89:2b:84:1f:31:0d:36:15:4e:6b:cd:
+                    14:f7:a0:d1:b2:b8:ff:53:f5:aa:b9:ed:63:50:7a:
+                    6f:62:e7:c7:7f:bc:f5:e2:0c:f8:28:a4:0d:ba:75:
+                    d0:b8:c7:9b:e3:94:62:66:1c:d8:6c:02:2e:a5:a2:
+                    62:50:fe:cf:31
                 Exponent: 65537 (0x10001)
         X509v3 extensions:
             X509v3 Basic Constraints: 
                 CA:FALSE
+            Netscape Comment: 
+                OpenSSL Generated Certificate
             X509v3 Subject Key Identifier: 
-                6E:60:3F:29:13:60:99:ED:0C:F7:15:B5:DB:7B:1C:FB:6F:60:19:ED
+                B3:A9:00:04:C7:9C:2B:CD:C0:5F:D1:28:5C:5C:C6:1F:26:F7:17:5A
             X509v3 Authority Key Identifier: 
-                keyid:B1:FB:7E:77:B5:40:8D:68:11:7E:D9:11:E5:C3:C6:DA:4D:AC:51:B0
-                DirName:/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB
-                serial:BE:58:AD:4C:1F:3D:25:95
+                keyid:C7:2C:01:95:1A:F5:3E:CD:04:A6:24:35:35:04:D9:A7:16:01:2A:79
 
     Signature Algorithm: sha1WithRSAEncryption
-        63:2e:0f:07:14:06:cf:74:90:3d:37:42:f2:48:70:60:21:bc:
-        34:52:31:f1:87:70:d2:b2:fb:ff:13:38:dc:f0:5e:43:d7:ee:
-        a7:c7:1f:ac:aa:d2:8c:4f:fa:3c:4c:73:f6:b6:c2:0c:a0:ea:
-        a2:c9:e2:73:61:c3:2e:78:40:0f:2a:d3:63:50:9b:b8:f9:89:
-        40:ed:98:08:97:c3:07:24:17:34:b5:78:89:0a:bb:83:4c:e2:
-        5c:2e:13:d6:21:30:ad:30:48:b5:70:12:ff:4a:6f:42:f0:f8:
-        9f:b1:4b:bd:89:2b:f0:9d:e2:49:2b:35:69:18:1f:76:40:b4:
-        76:bd:cb:dd:27:2f:c0:c1:e2:33:3e:6e:df:68:54:19:92:8a:
-        bb:13:9c:cf:d6:17:56:da:bf:0d:64:70:3a:45:b7:aa:5f:e3:
-        f5:96:ae:34:f2:17:37:27:d0:4b:e8:30:4a:c0:02:42:e2:d2:
-        30:eb:eb:c7:d7:ec:d8:df:5c:43:58:e2:6f:b7:58:54:0d:c4:
-        01:71:2d:59:8f:44:c7:a1:6c:0b:41:28:fa:b7:63:a7:68:d3:
-        4f:c3:0f:17:9e:b2:32:50:e6:0b:87:3d:e2:39:47:c0:d8:0a:
-        3b:f6:af:50:68:0f:9d:ef:6e:34:0d:3a:07:94:f8:a4:d7:24:
-        86:32:d3:b4
+         01:43:2c:d5:1d:b5:36:05:31:ca:b2:f3:9e:71:ce:62:fe:b2:
+         e5:e3:2d:30:23:99:51:3d:50:ee:d6:ce:76:e8:43:8d:5d:9d:
+         28:9b:43:90:0c:d4:24:54:3c:53:3c:18:92:ec:93:86:87:7a:
+         d6:7f:5d:3b:56:cd:9d:96:7a:06:c8:16:19:8b:ed:c8:21:cf:
+         15:b9:fb:06:7d:cb:5c:46:9c:c5:2e:8e:de:77:21:e5:9d:35:
+         95:00:c7:ad:d2:57:36:65:1a:43:6c:ee:75:ad:a2:d8:c0:60:
+         d5:07:d7:5c:5d:8e:ae:af:4a:e6:fa:6a:13:78:98:b8:11:c7:
+         dc:d2:a7:dd:29:b5:76:fa:ef:13:62:5f:9a:0d:e2:87:6a:04:
+         3c:5f:72:44:d0:d0:7a:70:c6:09:2b:bf:92:91:6d:f4:2e:53:
+         f3:b4:c5:23:61:d6:87:c1:30:ef:fe:92:6f:97:78:f2:ea:3c:
+         ff:e8:54:3a:9f:49:ac:a9:2b:46:c3:76:b1:f9:eb:31:a3:4f:
+         40:58:16:90:77:b6:3d:6f:85:95:12:a9:ca:70:0a:9a:cd:61:
+         46:27:84:ce:9e:33:54:8f:9a:41:6d:4d:11:bd:14:7f:ff:32:
+         e9:06:bc:36:38:11:5c:0f:e9:a5:5a:0f:5c:7c:fa:f5:73:5b:
+         4c:47:f2:f2
 -----BEGIN CERTIFICATE-----
-MIIDIjCCAgqgAwIBAgIBBTANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJTRTEQ
-MA4GA1UECBMHVXBwc2FsYTEQMA4GA1UEBxMHVXBwc2FsYTERMA8GA1UEChMITXlT
-UUwgQUIwHhcNMTAwMjIwMDMwMDU0WhcNMzAwOTAzMDMwMDU0WjBDMQswCQYDVQQG
-EwJTRTEQMA4GA1UECBMHVXBwc2FsYTERMA8GA1UEChMITXlTUUwgQUIxDzANBgNV
-BAMTBnNlcnZlcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAxdpElQZ3FiGv
-oMQ86fgdLZX5Y5CMP4a6d3ZKUktrryn1HKrUPz5Cn21GuoaQsS3M28YzFaP0r1Mz
-T6FW0ao7JhD3ZLX5vxuxR47MptYNqkp346NjnSrcZfR/kRc4LdbNTo1TUpduh/xk
-YKahAKyWbORClHUXRm+Rtd0GR+0F49sCAwEAAaOBozCBoDAJBgNVHRMEAjAAMB0G
-A1UdDgQWBBRuYD8pE2CZ7Qz3FbXbexz7b2AZ7TB0BgNVHSMEbTBrgBSx+353tUCN
-aBF+2RHlw8baTaxRsKFIpEYwRDELMAkGA1UEBhMCU0UxEDAOBgNVBAgTB1VwcHNh
-bGExEDAOBgNVBAcTB1VwcHNhbGExETAPBgNVBAoTCE15U1FMIEFCggkAvlitTB89
-JZUwDQYJKoZIhvcNAQEFBQADggEBAGMuDwcUBs90kD03QvJIcGAhvDRSMfGHcNKy
-+/8TONzwXkPX7qfHH6yq0oxP+jxMc/a2wgyg6qLJ4nNhwy54QA8q02NQm7j5iUDt
-mAiXwwckFzS1eIkKu4NM4lwuE9YhMK0wSLVwEv9Kb0Lw+J+xS72JK/Cd4kkrNWkY
-H3ZAtHa9y90nL8DB4jM+bt9oVBmSirsTnM/WF1bavw1kcDpFt6pf4/WWrjTyFzcn
-0EvoMErAAkLi0jDr68fX7NjfXENY4m+3WFQNxAFxLVmPRMehbAtBKPq3Y6do00/D
-DxeesjJQ5guHPeI5R8DYCjv2r1BoD53vbjQNOgeU+KTXJIYy07Q=
+MIIGpDCCBYygAwIBAgIBAjANBgkqhkiG9w0BAQUFADBWMQ8wDQYDVQQDDAZjYWNl
+cnQxCzAJBgNVBAYTAkZJMREwDwYDVQQIDAhIZWxzaW5raTERMA8GA1UEBwwISGVs
+c2lua2kxEDAOBgNVBAoMB01hcmlhREIwHhcNMTUwNDI1MTQ1NTE2WhcNMzUwNDIw
+MTQ1NTE2WjBYMQswCQYDVQQGEwJGSTERMA8GA1UECAwISGVsc2lua2kxETAPBgNV
+BAcMCEhlbHNpbmtpMRAwDgYDVQQKDAdNYXJpYURCMREwDwYDVQQDDAhzZXJ2ZXI4
+azCCBCIwDQYJKoZIhvcNAQEBBQADggQPADCCBAoCggQBAOYkeT06WGoSHBNqQ9nB
+ZexVwU99/PKmVqWrxUgszpydRz2Uk9U7o9AJqI/gSzagla4trX+io8X2h4BMaiYV
+R3MgR+H4X0m3EyD3Mp/bfWJBG2Ame0EmFgySIu+0LrPbkOkJyv4aG+TzeGl9ym7F
+OUtGcglRCEB4jgQqI8vVUM+W3VZDEBvScSiPEKnkRBw5igan+jdIvVrdN396AM+E
+ikijdaVn+3tHLSYALmXtY063lBg/Wgh0VOWv3YYbNJtM3v7YaT1ykMdcg4J46qsG
+1PEGIK39JLvplODGMvXfr7QUTZzODWI6OisR+Z7XjmMrVzUQftVEZIxhm0746KX7
+R7uFM+rG4D3iLOhB4RXip0Uj39D5kwGXiZV3TdXUwdthyuKENpwBmzPsU4Mv3dfY
+IMBrSnOS0mwipqJoRouqP6r+R7eYcP26WYivnw3Xy6BCRPnwVDnBzfu05MbWfh31
+7bkaD9fmoquiJR9s+auc2KO52jJyUW1h8Tt9Bis9Q9VSH8tiFFNpTZESIvBV+fxP
+3u7j/P1AV1DrDnpFzFIPJG9FAnJrbZCUHNT7NPZLTSUXb99KZPitHm7frWyzHRrm
+Dll7+KcTd3iFvz98EtSONP8BkANChWDkmdYZMkZB6FDKKgNhzcVo9JIPbkiJQZ5T
+vEFi7UqSZLXLPVVs2YeHmqv8IlBmkiu515477YDj+hlpOIe2JTrbtdDygE2vbX2S
+kN6q376AJhxp7nrjRcmkTmrgVl8fYUQ/YjTJHiFf9n9owG6/0jUeU5nk4b1kpEk8
+w8626Kk9J1Tq8T6h/Hu/jXFgkMVmJIXefUcfYoPiY44QXBTN0H6GRE3fBRBDuDyH
+ZGns6vtJmsZ2wY/qSZgK05evZO/aX6lXA+OgFdhoxUDYew8mDV/wvlpM/a+evy0x
+QHEl3tBzGS2upst88LikqVxQgEFO3PcgpKZmZfuS0UMtvzCyDdubo6woCMSBmQwN
+Remp5WzavxC7pz5aX7eTSiAVKWl0eNHrU6iIScveDOKbMeIvVpXPVZKjjqnvaMsA
+EdRxBkvliQy25ysvmGUhjiqjhnO7G3bhlALYoVGXFWCiOdX93Ki+MBJEsUkLlILP
+X5NhHDzrBVukF+4wzXzbP+55AtoUIJj9mgrxOchZW06jrfgE5gu2gX5BAK/3N+xu
+vCijPXa2/emIxx54eSdiooM0FWG45MOs9X8+Tl9fMVvokRuAXst0suWjitVaifpj
+8f9nvVnQcHe3dbU0dD0umUYLS8RkL5NI/keSagtCXu/JBmSEYIkrhB8xDTYVTmvN
+FPeg0bK4/1P1qrntY1B6b2Lnx3+89eIM+CikDbp10LjHm+OUYmYc2GwCLqWiYlD+
+zzECAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBH
+ZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFLOpAATHnCvNwF/RKFxcxh8m
+9xdaMB8GA1UdIwQYMBaAFMcsAZUa9T7NBKYkNTUE2acWASp5MA0GCSqGSIb3DQEB
+BQUAA4IBAQABQyzVHbU2BTHKsvOecc5i/rLl4y0wI5lRPVDu1s526EONXZ0om0OQ
+DNQkVDxTPBiS7JOGh3rWf107Vs2dlnoGyBYZi+3IIc8VufsGfctcRpzFLo7edyHl
+nTWVAMet0lc2ZRpDbO51raLYwGDVB9dcXY6ur0rm+moTeJi4Ecfc0qfdKbV2+u8T
+Yl+aDeKHagQ8X3JE0NB6cMYJK7+SkW30LlPztMUjYdaHwTDv/pJvl3jy6jz/6FQ6
+n0msqStGw3ax+esxo09AWBaQd7Y9b4WVEqnKcAqazWFGJ4TOnjNUj5pBbU0RvRR/
+/zLpBrw2OBFcD+mlWg9cfPr1c1tMR/Ly
 -----END CERTIFICATE-----
diff --git a/mysql-test/std_data/server8k-key.pem b/mysql-test/std_data/server8k-key.pem
index d3c3ec5..72d2756 100644
--- a/mysql-test/std_data/server8k-key.pem
+++ b/mysql-test/std_data/server8k-key.pem
@@ -1,15 +1,99 @@
 -----BEGIN RSA PRIVATE KEY-----
-MIICXgIBAAKBgQDF2kSVBncWIa+gxDzp+B0tlfljkIw/hrp3dkpSS2uvKfUcqtQ/
-PkKfbUa6hpCxLczbxjMVo/SvUzNPoVbRqjsmEPdktfm/G7FHjsym1g2qSnfjo2Od
-Ktxl9H+RFzgt1s1OjVNSl26H/GRgpqEArJZs5EKUdRdGb5G13QZH7QXj2wIDAQAB
-AoGBAJLCjh7Q9eLnx+QDzH9s+Q/IcH4nSbERmh1lFEopAc6j29qQ6PGkmDy0DUPs
-70VOCOh5A4mo3aZzm9sUfVb24/nRtmyTP/AtMuIVGCsUqzI28dJRGvRlY0aSQG/C
-ILqMP69kiMNGBvuyEIiJhisOmMvDFEp7HrrXHJM9qcc217DpAkEA4nzJ9yyy2e4O
-r6/D711hdfcU/F+ktXw+pL77kSSdTABUap92Uv2RL36UA4q5h8RNvq/GrzMNm6Ye
-u2IMvBCiTQJBAN+iRbiMJCSitTg5YVMluVbT87co7jbTqk7LN1ujyIFEklm4xlHG
-DLJNgEoDR7QJtAkL++FyogC4zsQsey5voscCQQCp54trTbDuI9QIoAaQrrDKWgz4
-NpfNPeOQm2UFQT5vIWAyjGWrZGViB8bp0UvVOcJI5nxaOiZfOYOcdrWu75uRAkAn
-67zMc9/j1lPJRJz2Dc7nDBD+ikTz7pcBV897AWLCiK4jbBOi91q+3YzgKXO8VNsZ
-nlUJasA2psbqSBJ5OJ5zAkEA2UxoMju54hASjT54Z92IzraVw4Vo8CYwOcw5fr7z
-+m5xg1mmWdLBclmZ+WjARzDuTHIW6u/WCxNGg42AykWzfw==
+MIISKgIBAAKCBAEA5iR5PTpYahIcE2pD2cFl7FXBT3388qZWpavFSCzOnJ1HPZST
+1Tuj0Amoj+BLNqCVri2tf6KjxfaHgExqJhVHcyBH4fhfSbcTIPcyn9t9YkEbYCZ7
+QSYWDJIi77Qus9uQ6QnK/hob5PN4aX3KbsU5S0ZyCVEIQHiOBCojy9VQz5bdVkMQ
+G9JxKI8QqeREHDmKBqf6N0i9Wt03f3oAz4SKSKN1pWf7e0ctJgAuZe1jTreUGD9a
+CHRU5a/dhhs0m0ze/thpPXKQx1yDgnjqqwbU8QYgrf0ku+mU4MYy9d+vtBRNnM4N
+Yjo6KxH5nteOYytXNRB+1URkjGGbTvjopftHu4Uz6sbgPeIs6EHhFeKnRSPf0PmT
+AZeJlXdN1dTB22HK4oQ2nAGbM+xTgy/d19ggwGtKc5LSbCKmomhGi6o/qv5Ht5hw
+/bpZiK+fDdfLoEJE+fBUOcHN+7TkxtZ+HfXtuRoP1+aiq6IlH2z5q5zYo7naMnJR
+bWHxO30GKz1D1VIfy2IUU2lNkRIi8FX5/E/e7uP8/UBXUOsOekXMUg8kb0UCcmtt
+kJQc1Ps09ktNJRdv30pk+K0ebt+tbLMdGuYOWXv4pxN3eIW/P3wS1I40/wGQA0KF
+YOSZ1hkyRkHoUMoqA2HNxWj0kg9uSIlBnlO8QWLtSpJktcs9VWzZh4eaq/wiUGaS
+K7nXnjvtgOP6GWk4h7YlOtu10PKATa9tfZKQ3qrfvoAmHGnueuNFyaROauBWXx9h
+RD9iNMkeIV/2f2jAbr/SNR5TmeThvWSkSTzDzrboqT0nVOrxPqH8e7+NcWCQxWYk
+hd59Rx9ig+JjjhBcFM3QfoZETd8FEEO4PIdkaezq+0maxnbBj+pJmArTl69k79pf
+qVcD46AV2GjFQNh7DyYNX/C+Wkz9r56/LTFAcSXe0HMZLa6my3zwuKSpXFCAQU7c
+9yCkpmZl+5LRQy2/MLIN25ujrCgIxIGZDA1F6anlbNq/ELunPlpft5NKIBUpaXR4
+0etTqIhJy94M4psx4i9Wlc9VkqOOqe9oywAR1HEGS+WJDLbnKy+YZSGOKqOGc7sb
+duGUAtihUZcVYKI51f3cqL4wEkSxSQuUgs9fk2EcPOsFW6QX7jDNfNs/7nkC2hQg
+mP2aCvE5yFlbTqOt+ATmC7aBfkEAr/c37G68KKM9drb96YjHHnh5J2KigzQVYbjk
+w6z1fz5OX18xW+iRG4Bey3Sy5aOK1VqJ+mPx/2e9WdBwd7d1tTR0PS6ZRgtLxGQv
+k0j+R5JqC0Je78kGZIRgiSuEHzENNhVOa80U96DRsrj/U/Wque1jUHpvYufHf7z1
+4gz4KKQNunXQuMeb45RiZhzYbAIupaJiUP7PMQIDAQABAoIEAQDdg63OaSJAtj2f
+0mCMb8ISwFfYk4Osar5rp/Gzjq0vwZKYizHfxA/gZeuA0HqUkeyAQicE+x53pNq3
+etWQ4lprTV7i+ZV99mDLEiQACdudft1Cpsdr5aTDZMWLwvpQ072fEHX6Llc6/72e
+jB0UkXCcK6oHnZ87rs3C5Gyf/SpTJPrV1KbkoKGaUFnRrIyCPj/EOFp2a+UWWGba
+pCuzkfcoA21xT6yW8+NY+EOwh9VWJwy8af3WtWIh0ix+sCDqegsJcHObWXJQ8ZMD
+Oi9lfqXnd+ZskYOR+zn5P8w9LJiJ1CEAFLR9H15tpleFtCSw/z5pLP9ndvTwyeIb
+GSmU2VAqBgP6roGYDuL6iq6Dyi0GN4luM0pz9c/PtY2Ni8MrzeziKjAF6OXiDE41
+rxTwdG7RxnNa2q7+tjt9hrCgLbYqd6W/6VKYZY1YKvIE+PhdwGtzxwbKsOf6phqt
+6DZr0BKIX7VwMeXRHbhtjw6hR86diH2koLQPfH4crDIL3GQ2J13C/RxjTLAEOli2
+y4paeOYzOe6ANDXXBOhieFw5f6mqD9pTF2PWDTnTJhfMGJ6gXPapDYoycS8huNnM
+DnqtMVIOf2zOI8aSkumJyXq2bEpGSNK80IJgyKfpk0b4qOdbG7tklfbhVCxTida0
+qqgmJKLGrNmJNW8KLB1U4/hcowEVFz8MF0OZAnByDHi2axwSRSGD5aG2yhCfs3Sy
+C269M25v0WuTeOs02RnHUvLPIhvbOEVTu6AjvAtYIfjEq+xqrjbZqUqJeh/xo2tF
+SohWe5aQs5DntsMCkZWlqlXc4CCaCqVACegh5Rn+8JbpZvpzy4HUtThfVbB45a5P
+6uRAsoxiIHbPLyIaKHFqqfog98hzD4TZYKpfb4RCgqKgEAHGKh4/KPM9O4iw67Oj
+EnT2WduegazemzOxQIuZ1UcNu/2d7uy8v/zPGLEUfqhFLS8PMStEuLdQQZfU2DFM
+rHJZsH3UtgSreZuQnlTHYy073UhB44mhcYbwa03jMkLHb1bt9q9l8ZAZ5FjstKJD
+vN5hMqT5LBQtvArCB+aIVDQxEyZiqFxBlW658uAIhCkLXNB5BVfEUEB8w5vZXOPn
+UpNyM8v0dYOkiSOH6+Kk0i7eC8CSrSQAaLnuFZxepGCGMFksywMv7mDg6yX1sAkE
+RMakKaAaZ55QpUv1/heaBVK0xmwpjJBefAoMCyFh/I+o7BkFdWGsGF2Tc5ZxZB3F
+DF75An4WV2qFMNEIb2SGBBUHGoG75C7tRC9ll39SqX7X2pXMaHvJvEx76CmhC9ub
+TzkRDV0Zi/GqiBQXz5kn4AP3GCuJUQJIvK2l0HPqbqNULrhahwQWBOpIek/SLBFV
+3fRQc5ABAoICAQDzqaS5/JEKUGMzVikWYnxl6fXgMp/l3Hq2DyifRqgYVoSr/wOJ
+PTOOJrtuvwHK6kbOv4YRfKwgVWlJgoAP9Tz0GGpE7toSk3biHY4tTF4KR3xIIOnI
+LQLNDR0LDrJSjQhAH5z8U/E+dpOCBHLfXodZ0/ZuXx9YS/pNDQBW/+HOmDtCfqpb
+kLmxjZcvZnAZyrlSjGrHJoPjiFrVA/1xvY68TNWHWu8EXphKO/aBi5/e4wWS7I8q
+0lDjjPB3GIm0rhumowoGYDPtchcTIvip9aGSPsw56elV+PiwbZaPHZXwHeI0Q25j
+UAdkmkwO4VaYGeR4JSUTjoOwWdXXediRq9SKRwhOoat3GJdDwYByYgZb8MKdQCZV
+H9hD0rEF4JOrUnOsCteXMNEczQocfSxduLD7XLie+oXoEggNE/hD9EJ397sOvyUg
+rgmJLBPCbIPdnfCwm9rdLMsWUjvd4JFq1dyQ9QM1LkdOGQdSoUixtN8X75BdkWhL
+/LUqVV/L5/1DStYniO6k4ry67u4POisAZa4czPAJrBEOakVxkCIoaH+mZ/J3GxWc
+DvnV6myvcNXUEENhfMt2mikP5zcPthq1O1nm7RFqiow4s/f0jc6Epr/LToXwhm8j
+5ch0TkcM+ioguCyYXWEzRJUt3GBWpHoSvxqKLxaWbo1mtxHpGxHDIIFAoQKCAgEA
+8cuU0H0OE3JJaG+9Hp6q5mJfdrAzeIPTCT1jxVDptZaplMVo8X0+LIKYpzWqbGWa
+Z3cTmReOZBukuKPKXuZEufYqzwIh7lEv1ls2SJ8Gedf3Dq3C2fCITHzXlsg58mrf
+tD6cKE85EmI/GhXtaBc51Qa60w5MyXfzK3EPi8lD1v5Il5K1MG6sv+7+P1LgAQVj
+c9mPVT1WmgBFVG2/syJ9L94smwhrtM2NhxMkMtEBrOiv0Wy0bEb1wIo5ndBGBoeF
+KXBfz87HDbUCSxItDFZ5mDk2ARnzl/13+wr81aKcxW2LyQ0eiiN+HczmM1xpavU6
+KI/QnIvUNqW9XRSNpz/w+DO9+gs9BPIODMww4KpLVtgFfy5KYre1/MpgZHVlHDCI
+r72WaDFHdMs75JN1rPNnYx81LtKp0JnE2bIDda3qlCKTBtwaFEUg1F0v9NK9yiZF
+JytwUUIfURayT34hfDAJDaSemWT3b4U2kYBr7Fp+g6R5iAosx/TnCYxtuGhdSLA7
+JkL4gy6Ll6hQkIyxRxC6R38wzwUFg4pbV6qrhjP1qyuU1BsZrBSV1RSbcHghSAZj
+UmT/sCKOhnliptnnz3e6ceP8I9Y2/TOeJXPdH6zvfaTpnVLiZC48FBKnXFCM4SaS
+v5qejQChBBOyd9ybO40sxC/Db8WsPa1LCMnHzm9YtJECggIBAOitGIYZ7o7A0NnW
+7wlXJp9TWN2suhAQCIYN16axHBeRlsN/k2rcLH0T82v/rcCNEuye63GLcfq2VQJD
+QfL7JieZoPEOfOO8OYwW2QvcnviF5uIhu9zRTplsak2CzToTPsus5IX3yqjxJk7D
+3MX8SJe41tvyrcXtV6l4PtjVJFXZ/My0lA04GHq6UKKM2YNnmKyBNf3Sg6MlNEex
+tbWFY+XgIQ9OAGxVwGsy82QlZpa6hzoT92rWxzNkBMRVhDorAHCRxCLufufBSNOX
+U4lI6+7xVKgA/DaCt0gSffFQOTu/7aAmvCTN6SFiTjrvZ3d7UjaAkfUo5Avk3VUU
+H4CLazxYNFCSBWCG9PtYrkWL4bKuJ8lt1qz26ddqPGz2VU0GQTsKZ3ESxr0P9xXZ
+WiJtGWQO2KXHaVOA1HtYlHyfpVFWGSQt11BroOOCWaQRZ6KbDZo4WjlWauB3yn9H
+0NUKP8OUlGmWNbUYJWv8Y6R+qYL72wnero/RU1aHjCD0+V3m+rVqBykg80Q2oNGd
+pC6O6kLKWHWEAA2Z4ZJeJqAbmbnYDSs7i9koW96wKvUldKs6lH1lZA1vjMKI8oVo
+SfzCHklsHHN2tgv3n1HCkHEPopqL808JsNvAsziM/0AfK1dvR/Z/RTBlz2apyL0z
+9vYr0zYdXR5tl018h/fnR4Dja0nBAoICAG7z5Ui6adAgnHDQ/W5kjrWDJJ05A5Vk
+oF1YD0VG+Md76Ds9TwepWfNgxh3McXSmNvENYi/Y8F0dljun5UAg2B6hSEmPh/Rs
+ys/JMSKn3nfg0xyoPYZ2aoT2sJMfM//6bMawCEYy/FRkQuJ8d2FRbxdCrE4W/MNi
+SHKBwgl6BKhOLQ9oob4kux6j04VJSUMOrvFFPxF1QR0PzMCOT+4qgFmL0NofRhVE
+UZJPBUhQQj2O1Mb749rfwPtmMkQpg0iRvVgjmcOo9gxjKDc8kvFbaRaiAhcFSpNP
+G1RWWWjK4rdxqjhKzd3DpaaVFHkzCair+NEOFUMQowOkkD17Jfk+TRwH2kA4EfsH
++8yBklg1rLagD/2pRzb/aAIk95CBkjEaUE6cZ71OB6UfcU9VHyWK18FTW7strgDr
+3rmqhw3kDYWGTANU0p7EjekFDfGBFtgBMbBkrXiMKAS0roPts/3hqPXauXBYNXa2
+ITEpRdzCNdXAjogPazciOTZXey2ork2hmLLY/mJr5GBmOvnppZufoGsYgVQt0Lbo
+sTuMNIMzqqKuL/AYs3IUTCDoAN/eMB911vPDJtUzNkWcw9kemtHH9gU3AceMD9Wm
+bwZuoWRcndUA7LZlhz9DPAxV9vhUeiEC60oC8IhxZnGRfE6mK5FrGcS4yiyq/3uZ
+3pmcxhQDYigRAoICAQCzK0SUG9tSzwpyuEb7hbS7isT0XOnVvLDEXL2jTwVqbN8a
+pC9jebbzJgxk5EA+np/eZlRU7h4aZjRhtDwi4HsarXzgIni6z1vswAiOSZRCfC17
+8/tjfER9w3pJMRTJ5MFeN7JvNUhWnXY5fX6SBl/Eocwwy8S/eIWUY53aI2k8UZMR
+eLUb9I6eL21qZAPp/XD8/3pF5DH0ECOS96C8mDKTGnARUyfkKrlaASSTfe5XToNb
+IpDEYtLwpHN0missq+ObqPc5lwot/nBy2fdllksb3mCCK8AxuKEDsVtWbb2maoa9
+lRGxIxr++ZV8n0dAwGCV18CbhBYh/B2YnrexI2ZfYOQbzPjHiuUgSLGBJvIUX+S+
+O8ij0vQBqECfwCq63SrdW340Huob52d/cod9pNolO5edftPNJVJP+44sZtEJoDBW
+WgzdpVV9fA8TYsO6B3Dci960fbpWnKZ01uLFWVTkou8IwqcaxJIyMzS3Gmqo4UEF
+oxBSrg9rTAMJSnm2YWBHK1Z8DDlLzw3SkNZVKm6Ai4yEcLs1PzGZejsJvsu3zGgq
+nM4liRHK2QqY1SJf6PsJGxAI62tlyTRfjxtC3Jq9oJbmJs+jl0gtNKEbkfQc83IL
+8wCHOm9G7KK7XJjMCb50Dh80YIDFj5GTQLU1tKdpDBfq6YTKUHqjPA8GRnz8vA==
 -----END RSA PRIVATE KEY-----
diff --git a/mysql-test/suite/binlog/r/binlog_database.result b/mysql-test/suite/binlog/r/binlog_database.result
index 556a23c..b04d2a0 100644
--- a/mysql-test/suite/binlog/r/binlog_database.result
+++ b/mysql-test/suite/binlog/r/binlog_database.result
@@ -39,10 +39,31 @@ master-bin.000001	#	Query	#	#	COMMIT
 master-bin.000001	#	Query	#	#	use `test`; DROP TEMPORARY TABLE `tt1` /* generated by server */
 master-bin.000001	#	Query	#	#	use `test`; DROP TABLE `t1` /* generated by server */
 FLUSH STATUS;
+
+# 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
+# when 'DROP DATABASE' fails and at least one table is deleted
+# from the database.
+RESET MASTER;
+CREATE DATABASE testing_1;
+USE testing_1;
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2(c1 INT);
+# Create a file in the database directory
+SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE';
+
+# 'DROP DATABASE' will fail if there is any other file in the the
+# database directory
+DROP DATABASE testing_1;
+ERROR HY000: Error dropping database (can't rmdir './testing_1/', errno: 17)
+
+# Remove the fake file.
+# Now we can drop the database.
+DROP DATABASE testing_1;
 #
 # Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT
 #              BASED REPLICATION
 #
+USE test;
 DROP DATABASE IF EXISTS db1;
 DROP TABLE IF EXISTS t3;
 CREATE DATABASE db1;
@@ -58,7 +79,7 @@ Tables_in_db1
 t2
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	#	Query	#	#	use `db1`; DROP TABLE `t1`
+master-bin.000001	#	Query	#	#	use `db1`; DROP TABLE IF EXISTS `t1`
 DROP TABLE t3;
 DROP DATABASE db1;
 set binlog_format=mixed;
@@ -102,10 +123,31 @@ master-bin.000001	#	Query	#	#	COMMIT
 master-bin.000001	#	Query	#	#	use `test`; DROP TEMPORARY TABLE `tt1` /* generated by server */
 master-bin.000001	#	Query	#	#	use `test`; DROP TABLE `t1` /* generated by server */
 FLUSH STATUS;
+
+# 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
+# when 'DROP DATABASE' fails and at least one table is deleted
+# from the database.
+RESET MASTER;
+CREATE DATABASE testing_1;
+USE testing_1;
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2(c1 INT);
+# Create a file in the database directory
+SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE';
+
+# 'DROP DATABASE' will fail if there is any other file in the the
+# database directory
+DROP DATABASE testing_1;
+ERROR HY000: Error dropping database (can't rmdir './testing_1/', errno: 17)
+
+# Remove the fake file.
+# Now we can drop the database.
+DROP DATABASE testing_1;
 #
 # Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT
 #              BASED REPLICATION
 #
+USE test;
 DROP DATABASE IF EXISTS db1;
 DROP TABLE IF EXISTS t3;
 CREATE DATABASE db1;
@@ -121,7 +163,7 @@ Tables_in_db1
 t2
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	#	Query	#	#	use `db1`; DROP TABLE `t1`
+master-bin.000001	#	Query	#	#	use `db1`; DROP TABLE IF EXISTS `t1`
 DROP TABLE t3;
 DROP DATABASE db1;
 set binlog_format=row;
@@ -166,10 +208,31 @@ master-bin.000001	#	Query	#	#	COMMIT
 master-bin.000001	#	Query	#	#	DROP TEMPORARY TABLE IF EXISTS `test`.`tt1` /* generated by server */
 master-bin.000001	#	Query	#	#	use `test`; DROP TABLE `t1` /* generated by server */
 FLUSH STATUS;
+
+# 'DROP TABLE IF EXISTS <deleted tables>' is binlogged
+# when 'DROP DATABASE' fails and at least one table is deleted
+# from the database.
+RESET MASTER;
+CREATE DATABASE testing_1;
+USE testing_1;
+CREATE TABLE t1(c1 INT);
+CREATE TABLE t2(c1 INT);
+# Create a file in the database directory
+SELECT 'hello' INTO OUTFILE 'fake_file.FAKE_FILE';
+
+# 'DROP DATABASE' will fail if there is any other file in the the
+# database directory
+DROP DATABASE testing_1;
+ERROR HY000: Error dropping database (can't rmdir './testing_1/', errno: 17)
+
+# Remove the fake file.
+# Now we can drop the database.
+DROP DATABASE testing_1;
 #
 # Bug#11765416 58381: FAILED DROP DATABASE CAN BREAK STATEMENT
 #              BASED REPLICATION
 #
+USE test;
 DROP DATABASE IF EXISTS db1;
 DROP TABLE IF EXISTS t3;
 CREATE DATABASE db1;
@@ -185,7 +248,7 @@ Tables_in_db1
 t2
 show binlog events from <binlog_start>;
 Log_name	Pos	Event_type	Server_id	End_log_pos	Info
-master-bin.000001	#	Query	#	#	use `db1`; DROP TABLE `t1`
+master-bin.000001	#	Query	#	#	use `db1`; DROP TABLE IF EXISTS `t1`
 DROP TABLE t3;
 DROP DATABASE db1;
 show databases;
diff --git a/mysql-test/suite/binlog/r/temptable_uservar_disconnect-7938.result b/mysql-test/suite/binlog/r/temptable_uservar_disconnect-7938.result
new file mode 100644
index 0000000..f09216c
--- /dev/null
+++ b/mysql-test/suite/binlog/r/temptable_uservar_disconnect-7938.result
@@ -0,0 +1,8 @@
+create table t1 (i int);
+create trigger tr after insert on t1 for each row set @b=@a;
+create temporary table tmp like t1;
+insert into t1 values (1);
+select * from t1;
+i
+1
+drop table t1;
diff --git a/mysql-test/suite/binlog/t/temptable_uservar_disconnect-7938.test b/mysql-test/suite/binlog/t/temptable_uservar_disconnect-7938.test
new file mode 100644
index 0000000..a1d91e2
--- /dev/null
+++ b/mysql-test/suite/binlog/t/temptable_uservar_disconnect-7938.test
@@ -0,0 +1,17 @@
+#
+# MDEV-7938 MariaDB Crashes Suddenly while writing binlogs
+#
+--source include/have_log_bin.inc
+--source include/have_binlog_format_mixed.inc
+
+--connect(con1,localhost,root,,)
+create table t1 (i int);
+create trigger tr after insert on t1 for each row set @b=@a;
+
+create temporary table tmp like t1;
+insert into t1 values (1);
+--disconnect con1
+
+--connection default
+select * from t1;
+drop table t1;
diff --git a/mysql-test/suite/innodb/r/binlog_consistent.result b/mysql-test/suite/innodb/r/binlog_consistent.result
index c07719d..6891ac4 100644
--- a/mysql-test/suite/innodb/r/binlog_consistent.result
+++ b/mysql-test/suite/innodb/r/binlog_consistent.result
@@ -100,4 +100,13 @@ master-bin.000001	1793	Query	1	1861	BEGIN
 master-bin.000001	1861	Query	1	1953	use `test`; INSERT INTO t1 VALUES (3, "")
 master-bin.000001	1953	Xid	1	1980	COMMIT /* XID */
 master-bin.000001	1980	Rotate	1	2024	master-bin.000002;pos=4
-DROP TABLE t1,t2;
+*** MDEV-7310: last_commit_pos_offset set to wrong value after binlog rotate in group commit ***
+SET @old_size= @@GLOBAL.max_binlog_size;
+SET GLOBAL max_binlog_size=4096;
+CREATE TABLE t3 (a INT PRIMARY KEY, b VARBINARY(8192)) ENGINE=MyISAM;
+INSERT INTO t3 VALUES (10, '');
+INSERT INTO t3 VALUES (11, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [...]
+test_result
+OK
+SET GLOBAL max_binlog_size=@old_size;
+DROP TABLE t1,t2, t3;
diff --git a/mysql-test/suite/innodb/r/innodb-fk.result b/mysql-test/suite/innodb/r/innodb-fk.result
index cf883d8..3c55753 100644
--- a/mysql-test/suite/innodb/r/innodb-fk.result
+++ b/mysql-test/suite/innodb/r/innodb-fk.result
@@ -33,3 +33,35 @@ select * from fk_29;
 f1
 29
 drop table t1;
+CREATE TABLE t1 (
+id int(11) NOT NULL AUTO_INCREMENT,
+f1 int(11) DEFAULT NULL,
+PRIMARY KEY (id),
+CONSTRAINT fk1 FOREIGN KEY (f1) REFERENCES t1 (id) ON DELETE CASCADE
+) ENGINE=InnoDB;
+CREATE TABLE t2 (
+id int(11) NOT NULL AUTO_INCREMENT,
+f2 int(11) NOT NULL,
+f3 int(11) NOT NULL,
+PRIMARY KEY (`id`),
+CONSTRAINT fk2 FOREIGN KEY (f2) REFERENCES t1 (`id`) ON DELETE CASCADE,
+CONSTRAINT fk3 FOREIGN KEY (f3) REFERENCES t3 (id) ON DELETE CASCADE
+) ENGINE=InnoDB;
+ERROR HY000: Can't create table 'test.t2' (errno: 150)
+show warnings;
+Level	Code	Message
+Error	1005	Can't create table 'test.t2' (errno: 150)
+CREATE TABLE t2 (
+id int(11) NOT NULL AUTO_INCREMENT,
+f2 int(11) NOT NULL,
+f3 int(11) NOT NULL,
+PRIMARY KEY (`id`),
+CONSTRAINT fk2 FOREIGN KEY (f2) REFERENCES t1 (`id`) ON DELETE CASCADE
+) ENGINE=InnoDB;
+ALTER TABLE t2 ADD CONSTRAINT fk3 FOREIGN KEY (f3) REFERENCES t3 (id) ON DELETE CASCADE;
+ERROR HY000: Can't create table '#sql-temporary' (errno: 150)
+show warnings;
+Level	Code	Message
+Error	1005	Can't create table '#sql-temporary' (errno: 150)
+drop table t2;
+drop table t1;
diff --git a/mysql-test/suite/innodb/r/innodb-mdev-7513.result b/mysql-test/suite/innodb/r/innodb-mdev-7513.result
new file mode 100644
index 0000000..bb3531e
--- /dev/null
+++ b/mysql-test/suite/innodb/r/innodb-mdev-7513.result
@@ -0,0 +1,204 @@
+call mtr.add_suppression("Row size too large (> 8126)*");
+CREATE TABLE t1 ( text1 TEXT,
+text2 TEXT,
+text3 TEXT,
+text4 TEXT,
+text5 TEXT,
+text6 TEXT,
+text7 TEXT,
+text8 TEXT,
+text9 TEXT,
+text10 TEXT,
+text11 TEXT,
+text12 TEXT,
+text13 TEXT,
+text14 TEXT,
+text15 TEXT,
+text16 TEXT,
+text17 TEXT,
+text18 TEXT,
+text19 TEXT,
+text20 TEXT,
+text21 TEXT,
+text22 TEXT,
+text23 TEXT,
+text24 TEXT,
+text25 TEXT,
+text26 TEXT,
+text27 TEXT,
+text28 TEXT,
+text29 TEXT,
+text30 TEXT,
+text31 TEXT,
+text32 TEXT,
+text33 TEXT,
+text34 TEXT,
+text35 TEXT,
+text36 TEXT,
+text37 TEXT,
+text38 TEXT,
+text39 TEXT,
+text40 TEXT,
+text41 TEXT,
+text42 TEXT,
+text43 TEXT,
+text44 TEXT,
+text45 TEXT,
+text46 TEXT,
+text47 TEXT,
+text48 TEXT,
+text49 TEXT,
+text50 TEXT,
+text51 TEXT,
+text52 TEXT,
+text53 TEXT,
+text54 TEXT,
+text55 TEXT,
+text56 TEXT,
+text57 TEXT,
+text58 TEXT,
+text59 TEXT,
+text60 TEXT,
+text61 TEXT,
+text62 TEXT,
+text63 TEXT,
+text64 TEXT,
+text65 TEXT,
+text66 TEXT,
+text67 TEXT,
+text68 TEXT,
+text69 TEXT,
+text70 TEXT,
+text71 TEXT,
+text72 TEXT,
+text73 TEXT,
+text74 TEXT,
+text75 TEXT,
+text76 TEXT,
+text77 TEXT,
+text78 TEXT,
+text79 TEXT,
+text80 TEXT,
+text81 TEXT,
+text82 TEXT,
+text83 TEXT,
+text84 TEXT,
+text85 TEXT,
+text86 TEXT,
+text87 TEXT,
+text88 TEXT,
+text89 TEXT,
+text90 TEXT,
+text91 TEXT,
+text92 TEXT,
+text93 TEXT,
+text94 TEXT,
+text95 TEXT,
+text96 TEXT,
+text97 TEXT,
+text98 TEXT,
+text99 TEXT,
+text100 TEXT,
+text101 TEXT,
+text102 TEXT,
+text103 TEXT,
+text104 TEXT,
+text105 TEXT,
+text106 TEXT,
+text107 TEXT,
+text108 TEXT,
+text109 TEXT,
+text110 TEXT,
+text111 TEXT,
+text112 TEXT,
+text113 TEXT,
+text114 TEXT,
+text115 TEXT,
+text116 TEXT,
+text117 TEXT,
+text118 TEXT,
+text119 TEXT,
+text120 TEXT,
+text121 TEXT,
+text122 TEXT,
+text123 TEXT,
+text124 TEXT,
+text125 TEXT,
+text126 TEXT,
+text127 TEXT,
+text128 TEXT,
+text129 TEXT,
+text130 TEXT,
+text131 TEXT,
+text132 TEXT,
+text133 TEXT,
+text134 TEXT,
+text135 TEXT,
+text136 TEXT,
+text137 TEXT,
+text138 TEXT,
+text139 TEXT,
+text140 TEXT,
+text141 TEXT,
+text142 TEXT,
+text143 TEXT,
+text144 TEXT,
+text145 TEXT,
+text146 TEXT,
+text147 TEXT,
+text148 TEXT,
+text149 TEXT,
+text150 TEXT,
+text151 TEXT,
+text152 TEXT,
+text153 TEXT,
+text154 TEXT,
+text155 TEXT,
+text156 TEXT,
+text157 TEXT,
+text158 TEXT,
+text159 TEXT,
+text160 TEXT,
+text161 TEXT,
+text162 TEXT,
+text163 TEXT,
+text164 TEXT,
+text165 TEXT,
+text166 TEXT,
+text167 TEXT,
+text168 TEXT,
+text169 TEXT,
+text170 TEXT,
+text171 TEXT,
+text172 TEXT,
+text173 TEXT,
+text174 TEXT,
+text175 TEXT,
+text176 TEXT,
+text177 TEXT,
+text178 TEXT,
+text179 TEXT,
+text180 TEXT,
+text181 TEXT,
+text182 TEXT,
+text183 TEXT,
+text184 TEXT,
+text185 TEXT,
+text186 TEXT,
+text187 TEXT,
+text188 TEXT,
+text189 TEXT,
+text190 TEXT,
+text191 TEXT,
+text192 TEXT,
+text193 TEXT,
+text194 TEXT,
+text195 TEXT,
+text196 TEXT,
+text197 TEXT
+) ENGINE = InnoDB;
+INSERT INTO t1 VALUES ('abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', [...]
+DELETE FROM t1 WHERE text1 = 'abcdef';
+SELECT * from t1;
+text1	text2	text3	text4	text5	text6	text7	text8	text9	text10	text11	text12	text13	text14	text15	text16	text17	text18	text19	text20	text21	text22	text23	text24	text25	text26	text27	text28	text29	text30	text31	text32	text33	text34	text35	text36	text37	text38	text39	text40	text41	text42	text43	text44	text45	text46	text47	text48	text49	text50	text51	text52	text53	text54	text55	text56	text57	text58	text59	text60	text61	text62	text63	text64	text65	text66	text67	text68	text69	text70	text71	text [...]
+DROP TABLE t1;
diff --git a/mysql-test/suite/innodb/r/multi_repair-7404.result b/mysql-test/suite/innodb/r/multi_repair-7404.result
new file mode 100644
index 0000000..b3db575
--- /dev/null
+++ b/mysql-test/suite/innodb/r/multi_repair-7404.result
@@ -0,0 +1,21 @@
+create table `t1`(`a` int) engine=innodb partition by key (`a`);
+create table `t2`(`b` int) engine=innodb;
+create table `t3`(`c` int) engine=innodb;
+insert t1 values (1);
+insert t2 values (2);
+insert t3 values (3);
+repair table `t1`,`t2`,`t3`;
+Table	Op	Msg_type	Msg_text
+test.t1	repair	status	OK
+test.t2	repair	status	OK
+test.t3	repair	status	OK
+select * from t1;
+a
+1
+select * from t2;
+b
+2
+select * from t3;
+c
+3
+drop table t1, t2, t3;
diff --git a/mysql-test/suite/innodb/t/binlog_consistent.test b/mysql-test/suite/innodb/t/binlog_consistent.test
index f4babb8..1915479 100644
--- a/mysql-test/suite/innodb/t/binlog_consistent.test
+++ b/mysql-test/suite/innodb/t/binlog_consistent.test
@@ -85,4 +85,35 @@ SHOW MASTER STATUS;
 --replace_regex /\/\* xid=.* \*\//\/* XID *\// /Server ver: .*, Binlog ver: .*/Server ver: #, Binlog ver: #/ /table_id: [0-9]+/table_id: #/
 SHOW BINLOG EVENTS;
 
-DROP TABLE t1,t2;
+
+--echo *** MDEV-7310: last_commit_pos_offset set to wrong value after binlog rotate in group commit ***
+
+SET @old_size= @@GLOBAL.max_binlog_size;
+SET GLOBAL max_binlog_size=4096;
+
+CREATE TABLE t3 (a INT PRIMARY KEY, b VARBINARY(8192)) ENGINE=MyISAM;
+INSERT INTO t3 VALUES (10, '');
+--let $bigdata= `SELECT REPEAT('a', 5000)`
+eval INSERT INTO t3 VALUES (11, '$bigdata');
+
+# The bug was that binlog_snapshot_file pointed to the new file after binlog
+# rotation, but binlog_snapshot_position was the offset in the old file before
+# binlog rotation. So the position was invalid.
+# So here, we check that the values are consistent with SHOW MASTER STATUS,
+# which uses a different code path and did not have the bug.
+
+--let $snap_file= query_get_value(SHOW STATUS LIKE 'binlog_snapshot_file', Value, 1)
+--let $snap_pos= query_get_value(SHOW STATUS LIKE 'binlog_snapshot_position', Value, 1)
+
+--let $master_file= query_get_value(SHOW MASTER STATUS, File, 1)
+--let $master_pos= query_get_value(SHOW MASTER STATUS, Position, 1)
+
+--disable_query_log
+eval SET @errmsg= 'ERROR: ($snap_file, $snap_pos) != ($master_file, $master_pos)';
+eval SELECT IF('$snap_file' = '$master_file' AND $snap_pos = $master_pos, 'OK', @errmsg) AS test_result;
+--enable_query_log
+
+SET GLOBAL max_binlog_size=@old_size;
+
+
+DROP TABLE t1,t2, t3;
diff --git a/mysql-test/suite/innodb/t/innodb-fk.test b/mysql-test/suite/innodb/t/innodb-fk.test
index 9839cd2..9bfd16b 100644
--- a/mysql-test/suite/innodb/t/innodb-fk.test
+++ b/mysql-test/suite/innodb/t/innodb-fk.test
@@ -84,3 +84,43 @@ while ($i)
 
 drop table t1;
 
+#
+# MDEV-7672: Crash creating an InnoDB table with foreign keys
+#
+
+CREATE TABLE t1 (
+  id int(11) NOT NULL AUTO_INCREMENT,
+  f1 int(11) DEFAULT NULL,
+  PRIMARY KEY (id),
+  CONSTRAINT fk1 FOREIGN KEY (f1) REFERENCES t1 (id) ON DELETE CASCADE
+) ENGINE=InnoDB;
+
+--error 1005
+CREATE TABLE t2 (
+  id int(11) NOT NULL AUTO_INCREMENT,
+  f2 int(11) NOT NULL,
+  f3 int(11) NOT NULL,
+  PRIMARY KEY (`id`),
+  CONSTRAINT fk2 FOREIGN KEY (f2) REFERENCES t1 (`id`) ON DELETE CASCADE,
+  CONSTRAINT fk3 FOREIGN KEY (f3) REFERENCES t3 (id) ON DELETE CASCADE
+) ENGINE=InnoDB;
+
+show warnings;
+
+CREATE TABLE t2 (
+  id int(11) NOT NULL AUTO_INCREMENT,
+  f2 int(11) NOT NULL,
+  f3 int(11) NOT NULL,
+  PRIMARY KEY (`id`),
+  CONSTRAINT fk2 FOREIGN KEY (f2) REFERENCES t1 (`id`) ON DELETE CASCADE
+) ENGINE=InnoDB;
+
+--replace_regex /'test\.#sql-[0-9_a-f-]*'/'#sql-temporary'/
+--error 1005
+ALTER TABLE t2 ADD CONSTRAINT fk3 FOREIGN KEY (f3) REFERENCES t3 (id) ON DELETE CASCADE;
+
+--replace_regex /'test\.#sql-[0-9_a-f-]*'/'#sql-temporary'/
+show warnings;
+
+drop table t2;
+drop table t1;
diff --git a/mysql-test/suite/innodb/t/innodb-mdev-7513.test b/mysql-test/suite/innodb/t/innodb-mdev-7513.test
new file mode 100644
index 0000000..b929ea1
--- /dev/null
+++ b/mysql-test/suite/innodb/t/innodb-mdev-7513.test
@@ -0,0 +1,220 @@
+-- source include/have_innodb.inc
+-- source include/not_embedded.inc
+
+# MDEV-7513: ib_warn_row_too_big dereferences null thd
+
+call mtr.add_suppression("Row size too large (> 8126)*");
+
+--disable_warnings
+CREATE TABLE t1 ( text1 TEXT,
+text2 TEXT,
+text3 TEXT,
+text4 TEXT,
+text5 TEXT,
+text6 TEXT,
+text7 TEXT,
+text8 TEXT,
+text9 TEXT,
+text10 TEXT,
+text11 TEXT,
+text12 TEXT,
+text13 TEXT,
+text14 TEXT,
+text15 TEXT,
+text16 TEXT,
+text17 TEXT,
+text18 TEXT,
+text19 TEXT,
+text20 TEXT,
+text21 TEXT,
+text22 TEXT,
+text23 TEXT,
+text24 TEXT,
+text25 TEXT,
+text26 TEXT,
+text27 TEXT,
+text28 TEXT,
+text29 TEXT,
+text30 TEXT,
+text31 TEXT,
+text32 TEXT,
+text33 TEXT,
+text34 TEXT,
+text35 TEXT,
+text36 TEXT,
+text37 TEXT,
+text38 TEXT,
+text39 TEXT,
+text40 TEXT,
+text41 TEXT,
+text42 TEXT,
+text43 TEXT,
+text44 TEXT,
+text45 TEXT,
+text46 TEXT,
+text47 TEXT,
+text48 TEXT,
+text49 TEXT,
+text50 TEXT,
+text51 TEXT,
+text52 TEXT,
+text53 TEXT,
+text54 TEXT,
+text55 TEXT,
+text56 TEXT,
+text57 TEXT,
+text58 TEXT,
+text59 TEXT,
+text60 TEXT,
+text61 TEXT,
+text62 TEXT,
+text63 TEXT,
+text64 TEXT,
+text65 TEXT,
+text66 TEXT,
+text67 TEXT,
+text68 TEXT,
+text69 TEXT,
+text70 TEXT,
+text71 TEXT,
+text72 TEXT,
+text73 TEXT,
+text74 TEXT,
+text75 TEXT,
+text76 TEXT,
+text77 TEXT,
+text78 TEXT,
+text79 TEXT,
+text80 TEXT,
+text81 TEXT,
+text82 TEXT,
+text83 TEXT,
+text84 TEXT,
+text85 TEXT,
+text86 TEXT,
+text87 TEXT,
+text88 TEXT,
+text89 TEXT,
+text90 TEXT,
+text91 TEXT,
+text92 TEXT,
+text93 TEXT,
+text94 TEXT,
+text95 TEXT,
+text96 TEXT,
+text97 TEXT,
+text98 TEXT,
+text99 TEXT,
+text100 TEXT,
+text101 TEXT,
+text102 TEXT,
+text103 TEXT,
+text104 TEXT,
+text105 TEXT,
+text106 TEXT,
+text107 TEXT,
+text108 TEXT,
+text109 TEXT,
+text110 TEXT,
+text111 TEXT,
+text112 TEXT,
+text113 TEXT,
+text114 TEXT,
+text115 TEXT,
+text116 TEXT,
+text117 TEXT,
+text118 TEXT,
+text119 TEXT,
+text120 TEXT,
+text121 TEXT,
+text122 TEXT,
+text123 TEXT,
+text124 TEXT,
+text125 TEXT,
+text126 TEXT,
+text127 TEXT,
+text128 TEXT,
+text129 TEXT,
+text130 TEXT,
+text131 TEXT,
+text132 TEXT,
+text133 TEXT,
+text134 TEXT,
+text135 TEXT,
+text136 TEXT,
+text137 TEXT,
+text138 TEXT,
+text139 TEXT,
+text140 TEXT,
+text141 TEXT,
+text142 TEXT,
+text143 TEXT,
+text144 TEXT,
+text145 TEXT,
+text146 TEXT,
+text147 TEXT,
+text148 TEXT,
+text149 TEXT,
+text150 TEXT,
+text151 TEXT,
+text152 TEXT,
+text153 TEXT,
+text154 TEXT,
+text155 TEXT,
+text156 TEXT,
+text157 TEXT,
+text158 TEXT,
+text159 TEXT,
+text160 TEXT,
+text161 TEXT,
+text162 TEXT,
+text163 TEXT,
+text164 TEXT,
+text165 TEXT,
+text166 TEXT,
+text167 TEXT,
+text168 TEXT,
+text169 TEXT,
+text170 TEXT,
+text171 TEXT,
+text172 TEXT,
+text173 TEXT,
+text174 TEXT,
+text175 TEXT,
+text176 TEXT,
+text177 TEXT,
+text178 TEXT,
+text179 TEXT,
+text180 TEXT,
+text181 TEXT,
+text182 TEXT,
+text183 TEXT,
+text184 TEXT,
+text185 TEXT,
+text186 TEXT,
+text187 TEXT,
+text188 TEXT,
+text189 TEXT,
+text190 TEXT,
+text191 TEXT,
+text192 TEXT,
+text193 TEXT,
+text194 TEXT,
+text195 TEXT,
+text196 TEXT,
+text197 TEXT
+) ENGINE = InnoDB;
+
+INSERT INTO t1 VALUES ('abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', 'abcdef', [...]
+--enable_warnings
+
+DELETE FROM t1 WHERE text1 = 'abcdef';
+
+--source include/restart_mysqld.inc
+
+--disable_warnings
+SELECT * from t1;
+--enable_warnings
+
+DROP TABLE t1;
+
diff --git a/mysql-test/suite/innodb/t/innodb_corrupt_bit.test b/mysql-test/suite/innodb/t/innodb_corrupt_bit.test
index 753f2e2..88da919 100644
--- a/mysql-test/suite/innodb/t/innodb_corrupt_bit.test
+++ b/mysql-test/suite/innodb/t/innodb_corrupt_bit.test
@@ -3,11 +3,6 @@
 #
 -- source include/have_innodb.inc
 
-if (`select plugin_auth_version <= "5.5.40-MariaDB-36.1" from information_schema.plugins where plugin_name='innodb'`)
-{
-  --skip Not fixed in XtraDB as of 5.5.40-MariaDB-36.1 or earlier
-}
-
 # Issues with innodb_change_buffering_debug on Windows, so the test scenario
 # cannot be created on windows
 --source include/not_windows.inc
@@ -16,6 +11,7 @@ if (`select plugin_auth_version <= "5.5.40-MariaDB-36.1" from information_schema
 --source include/have_debug.inc
 
 -- disable_query_log
+call mtr.add_suppression("Flagged corruption of idx.*in CHECK TABLE");
 # This test setup is extracted from bug56680.test:
 # The flag innodb_change_buffering_debug is only available in debug builds.
 # It instructs InnoDB to try to evict pages from the buffer pool when
@@ -28,10 +24,10 @@ SET GLOBAL innodb_change_buffering_debug = 1;
 SET UNIQUE_CHECKS=0;
 
 CREATE DATABASE pad;
-let $i=345;
+let $i=338;
 while ($i)
 {
-  --eval CREATE TABLE pad.t$i (a INT PRIMARY KEY) ENGINE=InnoDB;
+--eval CREATE TABLE pad.t$i(a INT PRIMARY KEY)ENGINE=InnoDB;
   dec $i;
 }
 
diff --git a/mysql-test/suite/innodb/t/multi_repair-7404.test b/mysql-test/suite/innodb/t/multi_repair-7404.test
new file mode 100644
index 0000000..0775cd8
--- /dev/null
+++ b/mysql-test/suite/innodb/t/multi_repair-7404.test
@@ -0,0 +1,18 @@
+#
+# MDEV-7404 REPAIR multiple tables crash in MDL_ticket::has_stronger_or_equal_type
+#
+
+--source include/have_partition.inc
+--source include/have_innodb.inc
+create table `t1`(`a` int) engine=innodb partition by key (`a`);
+create table `t2`(`b` int) engine=innodb;
+create table `t3`(`c` int) engine=innodb;
+insert t1 values (1);
+insert t2 values (2);
+insert t3 values (3);
+repair table `t1`,`t2`,`t3`;
+select * from t1;
+select * from t2;
+select * from t3;
+drop table t1, t2, t3;
+
diff --git a/mysql-test/suite/percona/innodb_sys_index.result b/mysql-test/suite/percona/innodb_sys_index.result
index 8bf4fa7..1f1bd81 100644
--- a/mysql-test/suite/percona/innodb_sys_index.result
+++ b/mysql-test/suite/percona/innodb_sys_index.result
@@ -1,9 +1,6 @@
 drop table if exists t1;
 Warnings:
 Note	1051	Unknown table 't1'
-select @@version_comment limit 1 ;
-@@version_comment
-Source distribution
 SELECT COUNT(*) FROM `information_schema`.`INNODB_SYS_INDEXES` ;
 CREATE TABLE test.t1 (  `a` SERIAL NOT NULL ,  `b` VARCHAR( 255 ) NOT NULL ,  INDEX ( `b` )  ) ENGINE = InnoDB ;
 SHOW TABLE STATUS FROM `information_schema` LIKE 'INNODB\_SYS\_INDEXES%' ;
diff --git a/mysql-test/suite/percona/innodb_sys_index.test b/mysql-test/suite/percona/innodb_sys_index.test
index 212baed..d8c22e7 100644
--- a/mysql-test/suite/percona/innodb_sys_index.test
+++ b/mysql-test/suite/percona/innodb_sys_index.test
@@ -5,7 +5,6 @@ drop table if exists t1;
 #
 # test for bug LP#875797 "Using 'innodb_sys_indexes' causes core dump"
 #
-select @@version_comment limit 1 ;
 --disable_result_log
 SELECT COUNT(*) FROM `information_schema`.`INNODB_SYS_INDEXES` ;
 CREATE TABLE test.t1 (  `a` SERIAL NOT NULL ,  `b` VARCHAR( 255 ) NOT NULL ,  INDEX ( `b` )  ) ENGINE = InnoDB ;
diff --git a/mysql-test/suite/plugins/r/server_audit.result b/mysql-test/suite/plugins/r/server_audit.result
index 8843fc8..c9ec79d 100644
--- a/mysql-test/suite/plugins/r/server_audit.result
+++ b/mysql-test/suite/plugins/r/server_audit.result
@@ -11,10 +11,13 @@ server_audit_incl_users
 server_audit_logging	OFF
 server_audit_mode	0
 server_audit_output_type	file
+server_audit_query_log_limit	1024
 server_audit_syslog_facility	LOG_USER
 server_audit_syslog_ident	mysql-server_auditing
 server_audit_syslog_info	
 server_audit_syslog_priority	LOG_INFO
+set global server_audit_file_path=null;
+set global server_audit_incl_users=null;
 set global server_audit_file_path='server_audit.log';
 set global server_audit_output_type=file;
 set global server_audit_logging=on;
@@ -66,6 +69,7 @@ server_audit_incl_users	odin, root, dva, tri
 server_audit_logging	ON
 server_audit_mode	0
 server_audit_output_type	file
+server_audit_query_log_limit	1024
 server_audit_syslog_facility	LOG_USER
 server_audit_syslog_ident	mysql-server_auditing
 server_audit_syslog_info	
@@ -85,6 +89,99 @@ create table sa_t1(id int);
 insert into sa_t1 values (1), (2);
 drop table sa_t1;
 drop database sa_db;
+create database sa_db;
+use sa_db;
+CREATE USER u1 IDENTIFIED BY 'pwd-123';
+GRANT ALL ON sa_db TO u2 IDENTIFIED BY "pwd-321";
+SET PASSWORD FOR u1 = PASSWORD('pwd 098');
+CREATE USER u3 IDENTIFIED BY '';
+drop user u1, u2, u3;
+set global server_audit_events='query_ddl';
+create table t1(id int);
+insert into t1 values (1), (2);
+select * from t1;
+id
+1
+2
+select 2;
+2
+2
+(select 2);
+2
+2
+/*! select 2*/;
+2
+2
+/*comment*/ select 2;
+2
+2
+drop table t1;
+set global server_audit_events='query_ddl,query_dml';
+create table t1(id int);
+insert into t1 values (1), (2);
+select * from t1;
+id
+1
+2
+select 2;
+2
+2
+drop table t1;
+set global server_audit_events='query_dml';
+create table t1(id int);
+insert into t1 values (1), (2);
+select * from t1;
+id
+1
+2
+select 2;
+2
+2
+(select 2);
+2
+2
+/*! select 2*/;
+2
+2
+/*comment*/ select 2;
+2
+2
+drop table t1;
+set global server_audit_events='query_dcl';
+create table t1(id int);
+insert into t1 values (1), (2);
+select * from t1;
+id
+1
+2
+CREATE USER u1 IDENTIFIED BY 'pwd-123';
+GRANT ALL ON sa_db TO u2 IDENTIFIED BY "pwd-321";
+SET PASSWORD FOR u1 = PASSWORD('pwd 098');
+CREATE USER u3 IDENTIFIED BY '';
+drop user u1, u2, u3;
+select 2;
+2
+2
+(select 2);
+2
+2
+/*! select 2*/;
+2
+2
+/*comment*/ select 2;
+2
+2
+drop table t1;
+set global server_audit_events='';
+set global server_audit_query_log_limit= 15;
+select (1), (2), (3), (4);
+1	2	3	4
+1	2	3	4
+select 'A', 'B', 'C', 'D';
+A	B	C	D
+A	B	C	D
+set global server_audit_query_log_limit= 1024;
+drop database sa_db;
 set global server_audit_file_path='.';
 show status like 'server_audit_current_log';
 Variable_name	Value
@@ -115,6 +212,7 @@ server_audit_incl_users	odin, root, dva, tri
 server_audit_logging	ON
 server_audit_mode	1
 server_audit_output_type	file
+server_audit_query_log_limit	1024
 server_audit_syslog_facility	LOG_USER
 server_audit_syslog_ident	mysql-server_auditing
 server_audit_syslog_info	
@@ -176,19 +274,74 @@ TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proc,
 TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,event,
 TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop database sa_db',0
 TIME,HOSTNAME,root,localhost,ID,0,DISCONNECT,sa_db,,0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'.\'',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'.\'',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'show status like \'server_audit_current_log\'',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'\'',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'\'',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'show status like \'server_audit_current_log\'',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'  \'',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'  \'',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'show status like \'server_audit_current_log\'',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'nonexisting_dir/\'',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'set global server_audit_file_path=\'nonexisting_dir/\'',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'SHOW WARNINGS',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'show status like \'server_audit_current_log\'',0
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'show variables like \'server_audit%\'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'create database sa_db',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'use sa_db',0
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,db,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,tables_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,columns_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,procs_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proxies_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'CREATE USER u1 IDENTIFIED BY *****',0
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,tables_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'GRANT ALL ON sa_db TO u2 IDENTIFIED BY *****',0
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user,
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'SET PASSWORD FOR u1 = PASSWORD(*****)',0
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,db,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,tables_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,columns_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,procs_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proxies_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'CREATE USER u3 IDENTIFIED BY *****',0
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,user,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,db,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,tables_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,columns_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,procs_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proxies_priv,
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop user u1, u2, u3',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'create table t1(id int)',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop table t1',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'create table t1(id int)',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'insert into t1 values (1), (2)',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select * from t1',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select 2',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop table t1',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'insert into t1 values (1), (2)',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select * from t1',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select 2',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'(select 2)',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'/*! select 2*/',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'/*comment*/ select 2',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'CREATE USER u1 IDENTIFIED BY *****',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'GRANT ALL ON sa_db TO u2 IDENTIFIED BY *****',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'SET PASSWORD FOR u1 = PASSWORD(*****)',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'CREATE USER u3 IDENTIFIED BY *****',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop user u1, u2, u3',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_events=\'\'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global serv',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select (1), (2)',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'select \'A\', ',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_query_log_limit= 1024',0
+TIME,HOSTNAME,root,localhost,ID,ID,READ,mysql,proc,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,proc,
+TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,event,
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'drop database sa_db',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'.\'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'.\'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show status like \'server_audit_current_log\'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'\'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'\'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show status like \'server_audit_current_log\'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'  \'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'  \'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show status like \'server_audit_current_log\'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'nonexisting_dir/\'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'set global server_audit_file_path=\'nonexisting_dir/\'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'SHOW WARNINGS',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show status like \'server_audit_current_log\'',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'show variables like \'server_audit%\'',0
 TIME,HOSTNAME,root,localhost,ID,ID,WRITE,mysql,plugin,
-TIME,HOSTNAME,root,localhost,ID,ID,QUERY,test,'uninstall plugin server_audit',0
+TIME,HOSTNAME,root,localhost,ID,ID,QUERY,sa_db,'uninstall plugin server_audit',0
diff --git a/mysql-test/suite/plugins/t/server_audit.test b/mysql-test/suite/plugins/t/server_audit.test
index f63c802..3c9544d 100644
--- a/mysql-test/suite/plugins/t/server_audit.test
+++ b/mysql-test/suite/plugins/t/server_audit.test
@@ -8,6 +8,8 @@ if (!$SERVER_AUDIT_SO) {
 install plugin server_audit soname 'server_audit';
 
 show variables like 'server_audit%';
+set global server_audit_file_path=null;
+set global server_audit_incl_users=null;
 set global server_audit_file_path='server_audit.log';
 set global server_audit_output_type=file;
 set global server_audit_logging=on;
@@ -15,6 +17,7 @@ connect (con1,localhost,root,,mysql);
 connection default;
 disconnect con1;
 --sleep 2
+--sleep 2
 --replace_result $MASTER_MYSOCK MASTER_SOCKET $MASTER_MYPORT MASTER_PORT
 --error ER_ACCESS_DENIED_ERROR
 connect (con1,localhost,no_such_user,,mysql);
@@ -45,6 +48,8 @@ set global server_audit_events='';
 create database sa_db;
 connect (con1,localhost,root,,test);
 connection con1;
+--sleep 2
+--sleep 2
 create table t1 (id2 int);
 insert into t1 values (1), (2);
 select * from t1;
@@ -56,8 +61,62 @@ drop table sa_t1;
 drop database sa_db;
 connection default;
 disconnect con1;
-
 --sleep 2
+--sleep 2
+create database sa_db;
+use sa_db;
+CREATE USER u1 IDENTIFIED BY 'pwd-123';
+GRANT ALL ON sa_db TO u2 IDENTIFIED BY "pwd-321";
+SET PASSWORD FOR u1 = PASSWORD('pwd 098');
+CREATE USER u3 IDENTIFIED BY '';
+drop user u1, u2, u3;
+
+set global server_audit_events='query_ddl';
+create table t1(id int);
+insert into t1 values (1), (2);
+select * from t1;
+select 2;
+(select 2);
+/*! select 2*/;
+/*comment*/ select 2;
+drop table t1;
+set global server_audit_events='query_ddl,query_dml';
+create table t1(id int);
+insert into t1 values (1), (2);
+select * from t1;
+select 2;
+drop table t1;
+set global server_audit_events='query_dml';
+create table t1(id int);
+insert into t1 values (1), (2);
+select * from t1;
+select 2;
+(select 2);
+/*! select 2*/;
+/*comment*/ select 2;
+drop table t1;
+set global server_audit_events='query_dcl';
+create table t1(id int);
+insert into t1 values (1), (2);
+select * from t1;
+CREATE USER u1 IDENTIFIED BY 'pwd-123';
+GRANT ALL ON sa_db TO u2 IDENTIFIED BY "pwd-321";
+SET PASSWORD FOR u1 = PASSWORD('pwd 098');
+CREATE USER u3 IDENTIFIED BY '';
+drop user u1, u2, u3;
+select 2;
+(select 2);
+/*! select 2*/;
+/*comment*/ select 2;
+drop table t1;
+set global server_audit_events='';
+
+set global server_audit_query_log_limit= 15;
+select (1), (2), (3), (4);
+select 'A', 'B', 'C', 'D';
+set global server_audit_query_log_limit= 1024;
+drop database sa_db;
+
 set global server_audit_file_path='.';
 --replace_regex /\.[\\\/]/HOME_DIR\//
 show status like 'server_audit_current_log';
diff --git a/mysql-test/suite/rpl/r/rpl_drop_db_fail.result b/mysql-test/suite/rpl/r/rpl_drop_db_fail.result
new file mode 100644
index 0000000..1be9033
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_drop_db_fail.result
@@ -0,0 +1,16 @@
+include/master-slave.inc
+[connection master]
+CREATE DATABASE IF NOT EXISTS db1;
+CREATE DATABASE IF NOT EXISTS db2;
+use db1;
+CREATE TABLE a(id INT);
+CREATE VIEW v AS SELECT * FROM a;
+CREATE TABLE table_father(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20)) ENGINE=INNODB;
+use db2;
+CREATE TABLE table_child(id INT PRIMARY KEY, info VARCHAR(20), father_id INT) ENGINE=INNODB;
+ALTER TABLE table_child ADD CONSTRAINT aaa FOREIGN KEY (father_id) REFERENCES db1.table_father(id);
+DROP DATABASE db1;
+ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fails
+DROP DATABASE db2;
+DROP DATABASE db1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/rpl_special_charset.result b/mysql-test/suite/rpl/r/rpl_special_charset.result
new file mode 100644
index 0000000..2aa1fe0
--- /dev/null
+++ b/mysql-test/suite/rpl/r/rpl_special_charset.result
@@ -0,0 +1,7 @@
+include/master-slave.inc
+[connection master]
+CREATE TABLE t1(i VARCHAR(20));
+INSERT INTO t1 VALUES (0xFFFF);
+include/diff_tables.inc [master:t1, slave:t1]
+DROP TABLE t1;
+include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/r/show_status_stop_slave_race-7126.result b/mysql-test/suite/rpl/r/show_status_stop_slave_race-7126.result
new file mode 100644
index 0000000..e71bb2e
--- /dev/null
+++ b/mysql-test/suite/rpl/r/show_status_stop_slave_race-7126.result
@@ -0,0 +1,2 @@
+include/master-slave.inc
+[connection master]
diff --git a/mysql-test/suite/rpl/t/rpl_drop_db_fail.test b/mysql-test/suite/rpl/t/rpl_drop_db_fail.test
new file mode 100644
index 0000000..f448206
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_drop_db_fail.test
@@ -0,0 +1,34 @@
+###############################################################################
+# Bug#20041860: SLAVE ERROR WHEN DROP DATABASE
+#
+# Test:
+# =====
+# Create two databases such that one database has a dependency over the other
+# database and try to drop the database which has a dependency. This should
+# not cause slave to break.
+###############################################################################
+--source include/have_innodb.inc
+--source include/master-slave.inc
+
+connection master;
+CREATE DATABASE IF NOT EXISTS db1;
+CREATE DATABASE IF NOT EXISTS db2;
+
+use db1;
+CREATE TABLE a(id INT);
+CREATE VIEW v AS SELECT * FROM a;
+CREATE TABLE table_father(id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20)) ENGINE=INNODB;
+--sync_slave_with_master
+
+connection master;
+use db2;
+CREATE TABLE table_child(id INT PRIMARY KEY, info VARCHAR(20), father_id INT) ENGINE=INNODB;
+ALTER TABLE table_child ADD CONSTRAINT aaa FOREIGN KEY (father_id) REFERENCES db1.table_father(id);
+
+--error ER_ROW_IS_REFERENCED
+DROP DATABASE db1;
+DROP DATABASE db2;
+--sync_slave_with_master
+--connection master
+DROP DATABASE db1;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/rpl_special_charset.opt b/mysql-test/suite/rpl/t/rpl_special_charset.opt
new file mode 100644
index 0000000..b071fb2
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_special_charset.opt
@@ -0,0 +1 @@
+--character-set-server=utf16
diff --git a/mysql-test/suite/rpl/t/rpl_special_charset.test b/mysql-test/suite/rpl/t/rpl_special_charset.test
new file mode 100644
index 0000000..9b51eba
--- /dev/null
+++ b/mysql-test/suite/rpl/t/rpl_special_charset.test
@@ -0,0 +1,25 @@
+################################################################################
+# Bug#19855907 IO THREAD AUTHENTICATION ISSUE WITH SOME CHARACTER SETS
+# Problem: IO thread fails to connect to master if servers are configured with
+#  special character sets like utf16, utf32, ucs2.
+#
+# Analysis: MySQL server does not support few special character sets like
+#  utf16,utf32 and ucs2 as "client's character set"(eg: utf16,utf32, ucs2).
+#  When IO thread is trying to connect to Master, it sets server's character
+#  set as client's character set. When Slave server is started with these
+#  special character sets, IO thread (a connection to Master) fails because
+#  of the above said reason.
+#
+# Fix: If server's character set is not supported as client's character set,
+#  then set default's client character set(latin1) as client's character set.
+###############################################################################
+--source include/master-slave.inc
+CREATE TABLE t1(i VARCHAR(20));
+INSERT INTO t1 VALUES (0xFFFF);
+--sync_slave_with_master
+--let diff_tables=master:t1, slave:t1
+--source include/diff_tables.inc
+# Cleanup
+--connection master
+DROP TABLE t1;
+--source include/rpl_end.inc
diff --git a/mysql-test/suite/rpl/t/show_status_stop_slave_race-7126.test b/mysql-test/suite/rpl/t/show_status_stop_slave_race-7126.test
new file mode 100644
index 0000000..a79a188
--- /dev/null
+++ b/mysql-test/suite/rpl/t/show_status_stop_slave_race-7126.test
@@ -0,0 +1,12 @@
+#
+# MDEV-7126 replication slave - deadlock in terminate_slave_thread with stop slave and show variables of replication filters and show global status
+#
+--source include/master-slave.inc
+
+--connection slave
+
+# If everything is okay, the test will end in several seconds; maybe a minute. 
+# If the problem shows up, it will hang until testcase timeout is exceeded.
+--exec $MYSQL_SLAP --silent --socket=$SLAVE_MYSOCK -q "START SLAVE; STOP SLAVE; SHOW GLOBAL STATUS" -c 2 --number-of-queries=100 --create-schema=test
+
+# All done.
diff --git a/mysql-test/suite/sys_vars/r/stored_program_cache_basic.result b/mysql-test/suite/sys_vars/r/stored_program_cache_basic.result
index f163852..7f88225 100644
--- a/mysql-test/suite/sys_vars/r/stored_program_cache_basic.result
+++ b/mysql-test/suite/sys_vars/r/stored_program_cache_basic.result
@@ -23,7 +23,7 @@ Warnings:
 Warning	1292	Truncated incorrect stored_program_cache value: '-1'
 SELECT @@global.stored_program_cache;
 @@global.stored_program_cache
-256
+0
 SET @@global.stored_program_cache =100000000000;
 Warnings:
 Warning	1292	Truncated incorrect stored_program_cache value: '100000000000'
@@ -31,11 +31,9 @@ SELECT @@global.stored_program_cache;
 @@global.stored_program_cache
 524288
 SET @@global.stored_program_cache = 0;
-Warnings:
-Warning	1292	Truncated incorrect stored_program_cache value: '0'
 SELECT @@global.stored_program_cache;
 @@global.stored_program_cache
-256
+0
 SET @@global.stored_program_cache = 10000.01;
 ERROR 42000: Incorrect argument type to variable 'stored_program_cache'
 SET @@global.stored_program_cache = ON;
diff --git a/mysql-test/suite/sys_vars/r/stored_program_cache_func.result b/mysql-test/suite/sys_vars/r/stored_program_cache_func.result
new file mode 100644
index 0000000..1115184
--- /dev/null
+++ b/mysql-test/suite/sys_vars/r/stored_program_cache_func.result
@@ -0,0 +1,52 @@
+create procedure p1() select 1;
+flush status;
+show status like 'handler_read_key';
+Variable_name	Value
+Handler_read_key	0
+call p1;
+1
+1
+show status like 'handler_read_key';
+Variable_name	Value
+Handler_read_key	1
+call p1;
+1
+1
+show status like 'handler_read_key';
+Variable_name	Value
+Handler_read_key	1
+set global stored_program_cache=0;
+call p1;
+1
+1
+show status like 'handler_read_key';
+Variable_name	Value
+Handler_read_key	2
+call p1;
+1
+1
+show status like 'handler_read_key';
+Variable_name	Value
+Handler_read_key	3
+drop procedure p1;
+set global stored_program_cache=default;
+create procedure pr(i int) begin
+create table t1 (a int, b int);
+if (i = 1) then alter table t1 drop a;
+else alter table t1 drop b; 
+end if;
+select * from t1;
+drop table t1;
+end |
+call pr(1);
+b
+call pr(2);
+ERROR 42S22: Unknown column 'test.t1.b' in 'field list'
+drop table t1;
+set global stored_program_cache=0;
+call pr(1);
+b
+call pr(2);
+a
+drop procedure pr;
+set global stored_program_cache=default;
diff --git a/mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic.result b/mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic.result
index a7afc33..719adb6 100644
--- a/mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic.result
+++ b/mysql-test/suite/sys_vars/r/transaction_alloc_block_size_basic.result
@@ -41,23 +41,11 @@ Warning	1292	Truncated incorrect transaction_alloc_block_size value: '60020'
 SELECT @@global.transaction_alloc_block_size;
 @@global.transaction_alloc_block_size
 59392
-SET @@global.transaction_alloc_block_size = 4294967295;
-Warnings:
-Warning	1292	Truncated incorrect transaction_alloc_block_size value: '4294967295'
-SELECT @@global.transaction_alloc_block_size;
-@@global.transaction_alloc_block_size
-4294966272
 '#--------------------FN_DYNVARS_005_04-------------------------#'
 SET @@session.transaction_alloc_block_size = 1024;
 SELECT @@session.transaction_alloc_block_size;
 @@session.transaction_alloc_block_size
 1024
-SET @@session.transaction_alloc_block_size =4294967295;
-Warnings:
-Warning	1292	Truncated incorrect transaction_alloc_block_size value: '4294967295'
-SELECT @@session.transaction_alloc_block_size;
-@@session.transaction_alloc_block_size
-4294966272
 SET @@session.transaction_alloc_block_size = 65535;
 Warnings:
 Warning	1292	Truncated incorrect transaction_alloc_block_size value: '65535'
@@ -77,12 +65,12 @@ Warning	1292	Truncated incorrect transaction_alloc_block_size value: '-1024'
 SELECT @@global.transaction_alloc_block_size;
 @@global.transaction_alloc_block_size
 1024
-SET @@global.transaction_alloc_block_size = 123456789201;
+SET @@global.transaction_alloc_block_size = 135217728;
 Warnings:
-Warning	1292	Truncated incorrect transaction_alloc_block_size value: '123456789201'
+Warning	1292	Truncated incorrect transaction_alloc_block_size value: '135217728'
 SELECT @@global.transaction_alloc_block_size;
 @@global.transaction_alloc_block_size
-4294966272
+134217728
 SET @@global.transaction_alloc_block_size = ON;
 ERROR 42000: Incorrect argument type to variable 'transaction_alloc_block_size'
 SET @@global.transaction_alloc_block_size = OFF;
@@ -109,12 +97,12 @@ Warning	1292	Truncated incorrect transaction_alloc_block_size value: '1000'
 SELECT @@global.transaction_alloc_block_size;
 @@global.transaction_alloc_block_size
 1024
-SET @@session.transaction_alloc_block_size = 12345678901;
+SET @@session.transaction_alloc_block_size = 135217728;
 Warnings:
-Warning	1292	Truncated incorrect transaction_alloc_block_size value: '12345678901'
+Warning	1292	Truncated incorrect transaction_alloc_block_size value: '135217728'
 SELECT @@session.transaction_alloc_block_size;
 @@session.transaction_alloc_block_size
-4294966272
+134217728
 SET @@session.transaction_alloc_block_size = ON;
 ERROR 42000: Incorrect argument type to variable 'transaction_alloc_block_size'
 SET @@session.transaction_alloc_block_size = OFF;
@@ -149,9 +137,7 @@ WHERE VARIABLE_NAME='transaction_alloc_block_size';
 1
 '#---------------------FN_DYNVARS_001_08----------------------#'
 SET @@transaction_alloc_block_size = 1024;
-SET @@global.transaction_alloc_block_size = 4294967295;
-Warnings:
-Warning	1292	Truncated incorrect transaction_alloc_block_size value: '4294967295'
+SET @@global.transaction_alloc_block_size = 134217728;
 SELECT @@transaction_alloc_block_size = @@global.transaction_alloc_block_size;
 @@transaction_alloc_block_size = @@global.transaction_alloc_block_size
 0
diff --git a/mysql-test/suite/sys_vars/r/transaction_prealloc_size_basic.result b/mysql-test/suite/sys_vars/r/transaction_prealloc_size_basic.result
index cbd2542..be54302 100644
--- a/mysql-test/suite/sys_vars/r/transaction_prealloc_size_basic.result
+++ b/mysql-test/suite/sys_vars/r/transaction_prealloc_size_basic.result
@@ -109,6 +109,12 @@ SELECT @@session.transaction_prealloc_size;
 1024
 SET @@session.transaction_prealloc_size = "Test";
 ERROR 42000: Incorrect argument type to variable 'transaction_prealloc_size'
+SET @@session.transaction_prealloc_size = 135217728;
+Warnings:
+Warning	1292	Truncated incorrect transaction_prealloc_size value: '135217728'
+SELECT @@session.transaction_prealloc_size;
+@@session.transaction_prealloc_size
+134217728
 '#------------------FN_DYNVARS_005_06-----------------------#'
 SELECT @@global.transaction_prealloc_size = VARIABLE_VALUE 
 FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES 
@@ -128,7 +134,7 @@ Warnings:
 Warning	1292	Truncated incorrect transaction_prealloc_size value: '10'
 SELECT @@transaction_prealloc_size = @@global.transaction_prealloc_size;
 @@transaction_prealloc_size = @@global.transaction_prealloc_size
-1
+0
 '#---------------------FN_DYNVARS_001_10----------------------#'
 SET @@transaction_prealloc_size = 100;
 Warnings:
diff --git a/mysql-test/suite/sys_vars/t/stored_program_cache_func.test b/mysql-test/suite/sys_vars/t/stored_program_cache_func.test
new file mode 100644
index 0000000..f85fc8e
--- /dev/null
+++ b/mysql-test/suite/sys_vars/t/stored_program_cache_func.test
@@ -0,0 +1,43 @@
+create procedure p1() select 1;
+
+flush status;
+show status like 'handler_read_key';
+call p1;
+show status like 'handler_read_key';
+call p1;
+show status like 'handler_read_key';
+
+set global stored_program_cache=0;
+
+call p1;
+show status like 'handler_read_key';
+call p1;
+show status like 'handler_read_key';
+
+drop procedure p1;
+set global stored_program_cache=default;
+
+# Test for missing SP automatic reparsing.
+# when MDEV-5816 is implemented, it should be removed.
+
+--delimiter |
+create procedure pr(i int) begin
+  create table t1 (a int, b int);
+  if (i = 1) then alter table t1 drop a;
+  else alter table t1 drop b; 
+  end if;
+  select * from t1;
+  drop table t1;
+end |
+--delimiter ;
+call pr(1);
+--error ER_BAD_FIELD_ERROR
+call pr(2);
+drop table t1;
+
+set global stored_program_cache=0;
+call pr(1);
+call pr(2);
+drop procedure pr;
+set global stored_program_cache=default;
+
diff --git a/mysql-test/suite/sys_vars/t/transaction_alloc_block_size_basic.test b/mysql-test/suite/sys_vars/t/transaction_alloc_block_size_basic.test
index 4a69bbc..0faa95c 100644
--- a/mysql-test/suite/sys_vars/t/transaction_alloc_block_size_basic.test
+++ b/mysql-test/suite/sys_vars/t/transaction_alloc_block_size_basic.test
@@ -5,7 +5,7 @@
 # Access Type: Dynamic                                                        #
 # Data Type: numeric                                                          #
 # Default Value: 8192                                                         #
-# Range: 1024-4294967295                                                      #
+# Range: 1024-134217728                                                       #
 #                                                                             #
 #                                                                             #
 # Creation Date: 2008-02-14                                                   #
@@ -80,9 +80,6 @@ SELECT @@global.transaction_alloc_block_size;
 SET @@global.transaction_alloc_block_size = 60020;
 SELECT @@global.transaction_alloc_block_size;
 
-SET @@global.transaction_alloc_block_size = 4294967295;
-SELECT @@global.transaction_alloc_block_size;
-
 --echo '#--------------------FN_DYNVARS_005_04-------------------------#'
 ###################################################################
 # Change the value of variable to a valid value for SESSION Scope #
@@ -91,9 +88,6 @@ SELECT @@global.transaction_alloc_block_size;
 SET @@session.transaction_alloc_block_size = 1024;
 SELECT @@session.transaction_alloc_block_size;
 
-SET @@session.transaction_alloc_block_size =4294967295;
-SELECT @@session.transaction_alloc_block_size;
-
 SET @@session.transaction_alloc_block_size = 65535;
 SELECT @@session.transaction_alloc_block_size;
 
@@ -110,7 +104,7 @@ SET @@global.transaction_alloc_block_size = -1024;
 SELECT @@global.transaction_alloc_block_size;
 
 
-SET @@global.transaction_alloc_block_size = 123456789201;
+SET @@global.transaction_alloc_block_size = 135217728;
 SELECT @@global.transaction_alloc_block_size;
 
 -- Error ER_WRONG_TYPE_FOR_VAR
@@ -136,7 +130,7 @@ SET @@global.transaction_alloc_block_size ="Test";
 SET @@global.transaction_alloc_block_size = 1000;
 SELECT @@global.transaction_alloc_block_size;
 
-SET @@session.transaction_alloc_block_size = 12345678901;
+SET @@session.transaction_alloc_block_size = 135217728;
 SELECT @@session.transaction_alloc_block_size;
 
 -- Error ER_WRONG_TYPE_FOR_VAR
@@ -185,7 +179,7 @@ WHERE VARIABLE_NAME='transaction_alloc_block_size';
 ###########################################################################
 
 SET @@transaction_alloc_block_size = 1024;
-SET @@global.transaction_alloc_block_size = 4294967295;
+SET @@global.transaction_alloc_block_size = 134217728;
 SELECT @@transaction_alloc_block_size = @@global.transaction_alloc_block_size;
  
 
diff --git a/mysql-test/suite/sys_vars/t/transaction_prealloc_size_basic.test b/mysql-test/suite/sys_vars/t/transaction_prealloc_size_basic.test
index 5eabf45..9d0c20a 100644
--- a/mysql-test/suite/sys_vars/t/transaction_prealloc_size_basic.test
+++ b/mysql-test/suite/sys_vars/t/transaction_prealloc_size_basic.test
@@ -5,7 +5,7 @@
 # Access Type: Dynamic                                                        #
 # Data Type: numeric                                                          #
 # Default Value: 4096                                                         #
-# Range:                                                                      #
+# Range: 1024-134217728                                                       #
 #                                                                             #
 #                                                                             #
 # Creation Date: 2008-02-14                                                   #
@@ -137,6 +137,10 @@ SELECT @@session.transaction_prealloc_size;
 --Error ER_WRONG_TYPE_FOR_VAR
 SET @@session.transaction_prealloc_size = "Test";
 
+SET @@session.transaction_prealloc_size = 135217728;
+SELECT @@session.transaction_prealloc_size;
+
+
 --echo '#------------------FN_DYNVARS_005_06-----------------------#'
 ####################################################################
 #   Check if the value in GLOBAL Table matches value in variable   #
diff --git a/mysql-test/t/blackhole.test b/mysql-test/t/blackhole.test
index 1451f76..ca8ab6d 100644
--- a/mysql-test/t/blackhole.test
+++ b/mysql-test/t/blackhole.test
@@ -17,5 +17,15 @@ SELECT 1 FROM t1 WHERE a = ANY (SELECT a FROM t2);
 
 DROP TABLE t1, t2;
 
+#
+# Bug#19786309 -  CRASH IN UNLOCK TABLES AFTER LOCKING AND TRUNCATING TEMPORARY TABLE.
+#
+create temporary table t1 (a int) engine=blackhole;
+lock table t1 write;
+truncate table t1;
+select * from t1;
+unlock tables;
+drop temporary table t1;
+
 --echo End of 5.5 tests 
 
diff --git a/mysql-test/t/ctype_uca.test b/mysql-test/t/ctype_uca.test
index 8007b30..7170e09 100644
--- a/mysql-test/t/ctype_uca.test
+++ b/mysql-test/t/ctype_uca.test
@@ -577,6 +577,17 @@ select * from t1 where c1 = '=> dž';
 select * from t1 where concat(c1) = '=> dž';
 drop table t1;
 
+
+--echo #
+--echo # MDEV-7649 wrong result when comparing utf8 column with an invalid literal
+--echo #
+
+SET NAMES utf8 COLLATE utf8_unicode_ci;
+--let ENGINE=MyISAM
+--source include/ctype_utf8_ilseq.inc
+--let ENGINE=HEAP
+--source include/ctype_utf8_ilseq.inc
+
 --echo #
 --echo # End of 5.5 tests
 --echo #
diff --git a/mysql-test/t/ctype_uca_innodb.test b/mysql-test/t/ctype_uca_innodb.test
new file mode 100644
index 0000000..cb6caff
--- /dev/null
+++ b/mysql-test/t/ctype_uca_innodb.test
@@ -0,0 +1,25 @@
+#
+# Tests for UCA collations with InnoDB
+#
+
+let collation=utf8_unicode_ci;
+--source include/have_collation.inc
+--source include/have_innodb.inc
+
+
+--echo #
+--echo # Start of 5.5 tests
+--echo #
+
+
+--echo #
+--echo # MDEV-7649 wrong result when comparing utf8 column with an invalid literal
+--echo #
+
+SET NAMES utf8 COLLATE utf8_unicode_ci;
+--let ENGINE=InnoDB
+--source include/ctype_utf8_ilseq.inc
+
+--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 0d104ca..f4b16c9 100644
--- a/mysql-test/t/ctype_utf8.test
+++ b/mysql-test/t/ctype_utf8.test
@@ -1597,5 +1597,25 @@ UNION ALL
 SELECT 'a' AS id, REPEAT('bla bla', 100) AS body) t1;
 
 --echo #
+--echo # MDEV-7814 Assertion `args[0]->fixed' fails in Item_func_conv_charset::Item_func_conv_charset
+--echo #
+CREATE TABLE t1(a CHAR(1) CHARACTER SET latin1, b INT NOT NULL);
+CREATE TABLE t2(a CHAR(1) CHARACTER SET utf8 COLLATE utf8_general_ci, b INT NOT NULL);
+SELECT (SELECT t2.a FROM t2 WHERE t2.a=t1.a) AS aa, b, COUNT(b) FROM t1 GROUP BY aa;
+DROP TABLE t1,t2;
+
+--echo #
+--echo # MDEV-7649 wrong result when comparing utf8 column with an invalid literal
+--echo #
+
+SET NAMES utf8 COLLATE utf8_general_ci;
+--let ENGINE=InnoDB
+--source include/ctype_utf8_ilseq.inc
+--let ENGINE=MyISAM
+--source include/ctype_utf8_ilseq.inc
+--let ENGINE=HEAP
+--source include/ctype_utf8_ilseq.inc
+
+--echo #
 --echo # End of 5.5 tests
 --echo #
diff --git a/mysql-test/t/derived.test b/mysql-test/t/derived.test
index 61ae369..ddce7f5 100644
--- a/mysql-test/t/derived.test
+++ b/mysql-test/t/derived.test
@@ -492,5 +492,17 @@ update t1 set balance=(select sum(balance) from (SELECT balance FROM t1 where ac
 set optimizer_switch=@save_derived_optimizer_switch_bug;
 drop table t1;
 
-
 set optimizer_switch=@save_derived_optimizer_switch;
+
+--echo #
+--echo # MDEV-6892: WHERE does not apply
+--echo #
+create table t1 (id int);
+create table t2 (id int);
+insert into t1 values(1),(2),(3);
+insert into t2 values(4),(5),(6);
+#explain extended
+select x.id, message from (select id from t1) x left join
+(select id, 1 as message from t2) y on x.id=y.id
+where coalesce(message,0) <> 0;
+drop table t1,t2;
diff --git a/mysql-test/t/error_simulation-master.opt b/mysql-test/t/error_simulation-master.opt
new file mode 100644
index 0000000..c9f8d7b
--- /dev/null
+++ b/mysql-test/t/error_simulation-master.opt
@@ -0,0 +1 @@
+--tmpdir=$MYSQLTEST_VARDIR/tmp
diff --git a/mysql-test/t/error_simulation.test b/mysql-test/t/error_simulation.test
index 58ead1e..7c343ed 100644
--- a/mysql-test/t/error_simulation.test
+++ b/mysql-test/t/error_simulation.test
@@ -1,4 +1,5 @@
 -- source include/have_debug.inc
+--source include/not_embedded.inc
 
 #
 # Bug #28499: crash for grouping query when tmp_table_size is too small
@@ -112,3 +113,38 @@ DROP TABLE t1,t2;
 --echo #
 --echo # End of 5.1 tests
 --echo #
+
+
+--echo #
+--echo # BUG#11747548:DETECT ORPHAN TEMP-POOL FILES, AND HANDLE GRACEFULLY.
+--echo #
+
+--echo #Set up.
+CREATE TABLE pid_table(pid_no INT);
+CREATE TABLE t1 (a BLOB);
+INSERT INTO t1 VALUES (1), (2);
+
+--echo #Create MYD and MYI files for intrinsic temp table.
+--let $pid_file=`SELECT @@pid_file`
+--replace_result $pid_file pid_file
+--eval LOAD DATA LOCAL INFILE '$pid_file' INTO TABLE pid_table
+--let $temp_file= `SELECT CONCAT('#sql_', LCASE(HEX(pid_no)), '_0') FROM pid_table`
+--write_file $MYSQLTEST_VARDIR/tmp/$temp_file.MYD
+EOF
+--write_file $MYSQLTEST_VARDIR/tmp/$temp_file.MYI
+EOF
+--write_file $MYSQLTEST_VARDIR/tmp/$temp_file.MAD
+EOF
+--write_file $MYSQLTEST_VARDIR/tmp/$temp_file.MAI
+EOF
+
+--echo #Reports an error since the temp file already exists.
+--replace_regex /.*Can't create\/write *.*/Can't create or write to file/
+#--error 1
+SELECT a FROM t1 ORDER BY rand(1);
+
+--echo #With patch, the query executes successfully.
+SELECT a FROM t1 ORDER BY rand(1);
+
+--echo #cleanup
+DROP TABLE t1, pid_table;
diff --git a/mysql-test/t/file_contents.test b/mysql-test/t/file_contents.test
index 48189aa..9147727 100644
--- a/mysql-test/t/file_contents.test
+++ b/mysql-test/t/file_contents.test
@@ -17,7 +17,7 @@ if ($dir_bin eq '/usr/') {
   $dir_docs =~ s|/lib|/share/doc|;
   if(-d "$dir_docs/packages") {
     # SuSE: "packages/" in the documentation path
-    $dir_docs = glob "$dir_docs/packages/MySQL-server*";
+    $dir_docs = glob "$dir_docs/packages/*-server*";
   } else {
     # RedHat: version number in directory name
     $dir_docs = glob "$dir_docs/MySQL-server*";
@@ -27,7 +27,7 @@ if ($dir_bin eq '/usr/') {
   $dir_docs = "$dir_bin/share/doc";
   if(-d "$dir_docs/packages") {
     # SuSE: "packages/" in the documentation path
-    $dir_docs = glob "$dir_docs/packages/MySQL-server*";
+    $dir_docs = glob "$dir_docs/packages/*-server*";
   } else {
     # RedHat/Debian: version number in directory name
     $dir_docs = glob "$dir_docs/mariadb-server-*";
@@ -36,7 +36,7 @@ if ($dir_bin eq '/usr/') {
   # Slackware
   $dir_docs = glob "$dir_bin/doc/mariadb-[0-9]*" unless -d $dir_docs;
 } else {
-  # tar.gz package, Windows, or developer work (in BZR)
+  # tar.gz package, Windows, or developer work (in git)
   $dir_docs = $dir_bin;
   if(-d "$dir_docs/docs") {
     $dir_docs = "$dir_docs/docs"; # package
@@ -49,7 +49,7 @@ $found_revision = "No line 'revision-id: .....'";
 open(I_SRC,"<","$dir_docs/INFO_SRC") or print "Cannot open 'INFO_SRC' in '$dir_docs' (starting from bindir '$dir_bin')\n";
 while(defined ($line = <I_SRC>)) {
   if ($line =~ m|^MySQL source \d\.\d\.\d+|) {$found_version = "Found MySQL version number";}
-  if ($line =~ m|^revision-id: .*@.*-2\d{13}-\w+$|) {$found_revision = "Found BZR revision id";}
+  if ($line =~ m|^commit: \w{40}$|) {$found_revision = "Found GIT revision id";}
 }
 close I_SRC;
 print "INFO_SRC: $found_version / $found_revision\n";
diff --git a/mysql-test/t/filesort_bad_i_s-7585.test b/mysql-test/t/filesort_bad_i_s-7585.test
new file mode 100644
index 0000000..daf70ac
--- /dev/null
+++ b/mysql-test/t/filesort_bad_i_s-7585.test
@@ -0,0 +1,14 @@
+#
+# MDEV-7585 Assertion `thd->is_error() || kill_errno || thd->killed == ABORT_QUERY' failed in ha_rows filesort
+#
+SET sql_mode=STRICT_TRANS_TABLES;
+
+CREATE TABLE t0 (i INT) ENGINE=MyISAM;
+CREATE VIEW v1 AS SELECT * FROM t0;
+CREATE VIEW v2 AS SELECT * FROM v1;
+DROP VIEW IF EXISTS v1;
+
+CREATE TABLE t1 (i INT) ENGINE=MyISAM;
+INSERT INTO t1 SELECT TABLE_ROWS FROM information_schema.tables ORDER BY TABLE_ROWS;
+DROP VIEW v2;
+DROP TABLE t1, t0;
diff --git a/mysql-test/t/frm_bad_row_type-7333.test b/mysql-test/t/frm_bad_row_type-7333.test
new file mode 100644
index 0000000..5100a85
--- /dev/null
+++ b/mysql-test/t/frm_bad_row_type-7333.test
@@ -0,0 +1,14 @@
+#
+# MDEV-7333 "'show table status like 'table_name'" on tokudb table lead to MariaDB crash
+#
+let $datadir= `select @@datadir`;
+call mtr.add_suppression("bad_row_type.frm: invalid value 11 for the field row_format");
+copy_file std_data/bad_row_type.MYD $datadir/test/bad_row_type.MYD;
+copy_file std_data/bad_row_type.MYI $datadir/test/bad_row_type.MYI;
+copy_file std_data/bad_row_type.frm $datadir/test/bad_row_type.frm;
+
+select * from bad_row_type;
+show create table bad_row_type;
+replace_column 12 x 13 x;
+show table status like 'bad_row_type';
+drop table bad_row_type;
diff --git a/mysql-test/t/func_gconcat.test b/mysql-test/t/func_gconcat.test
index 936b93b..20fbed7 100644
--- a/mysql-test/t/func_gconcat.test
+++ b/mysql-test/t/func_gconcat.test
@@ -803,3 +803,21 @@ create table t1 (a char(1) character set utf8);
 insert into t1 values ('a'),('b');
 select 1 from t1 where a in (select group_concat(a) from t1);
 drop table t1;
+
+#
+# MDEV-7820 Server crashes in in my_strcasecmp_utf8 on subquery in ORDER BY clause of GROUP_CONCAT
+#
+CREATE TABLE t1 (f1 VARCHAR(10)) ENGINE=MyISAM;
+INSERT INTO t1 VALUES ('a'),('b');
+
+CREATE TABLE t2 (f2 VARCHAR(10)) ENGINE=MyISAM;
+INSERT INTO t2 VALUES ('c');
+
+CREATE TABLE t3 (f3 VARCHAR(10)) ENGINE=MyISAM;
+INSERT INTO t3 VALUES ('d'),('e');
+
+SELECT GROUP_CONCAT( f2 ORDER BY ( f2 IN ( SELECT f1 FROM t1 WHERE f1 <= f2 ) ) ) AS field
+FROM ( SELECT * FROM t2 ) AS sq2, t3
+ORDER BY field;
+
+drop table t3, t2, t1;
diff --git a/mysql-test/t/gis.test b/mysql-test/t/gis.test
index 4d421e1..6e41660 100644
--- a/mysql-test/t/gis.test
+++ b/mysql-test/t/gis.test
@@ -7,6 +7,7 @@
 
 --disable_warnings
 DROP TABLE IF EXISTS t1, gis_point, gis_line, gis_polygon, gis_multi_point, gis_multi_line, gis_multi_polygon, gis_geometrycollection, gis_geometry;
+DROP VIEW IF EXISTS v1;
 --enable_warnings
 
 CREATE TABLE gis_point  (fid INTEGER NOT NULL PRIMARY KEY, g POINT);
@@ -1465,4 +1466,17 @@ create table t1 (pt point);
 insert into t1 values(Geomfromtext('POLYGON((1 1, 2 2, 2 1, 1 1))'));
 drop table t1;
 
---echo End of 5.5 tests
+#
+# MDEV-7516 Assertion `!cur_p->event' failed in Gcalc_scan_iterator::arrange_event(int, int)
+#
+SELECT st_astext(ST_Buffer(ST_PolygonFromText('POLYGON((3 5, 2 4, 2 5, 3 5))'), -100));
+
+#
+# MDEV-7779 View definition changes upon creation
+#
+CREATE VIEW v1 AS SELECT POINT(1,1) AS p;
+SHOW CREATE VIEW v1;
+SELECT ASTEXT(p) FROM v1;
+DROP VIEW v1;
+
+# --echo End of 5.5 tests
diff --git a/mysql-test/t/group_by.test b/mysql-test/t/group_by.test
index a1f7f69..e5beeef 100644
--- a/mysql-test/t/group_by.test
+++ b/mysql-test/t/group_by.test
@@ -1516,6 +1516,17 @@ let $query= SELECT MIN(a), b FROM t1 WHERE t1.b = 'a' GROUP BY b;
 --echo
 DROP TABLE t1;
 
+
+#
+# Bug#19880368 : GROUP_CONCAT CRASHES AFTER DUMP_LEAF_KEY
+#
+create table t1 (a int, b int);
+insert into t1 values (1,11), (1,12), (2,22),(2,23), (4,44),(4,45);
+create table t2 (c int, d int);
+insert into t2 values (1,11), (1,12), (2,22),(2,23), (4,44),(4,45);
+select distinct a,sum(b), (select d from t2 where c=a order by max(b) limit 1) from t1 group by a order by max(b);
+drop table t1, t2;
+
 --echo #
 --echo # LP bug#993726 Wrong result from a query with ALL subquery predicate in WHERE
 --echo #
diff --git a/mysql-test/t/having.test b/mysql-test/t/having.test
index a2bbfb8..505fb9a 100644
--- a/mysql-test/t/having.test
+++ b/mysql-test/t/having.test
@@ -693,3 +693,37 @@ DROP TABLE t1;
 
 --echo End of 5.3 tests
 
+--echo #
+--echo # Bug MDEV-7301: Unknown column quoted with backticks in HAVING clause when using function.
+--echo # Bug#16221433 MYSQL REJECTS QUERY DUE TO BAD RESOLUTION OF NAMES IN HAVING; VIEW UNREADABLE
+--echo #
+
+CREATE TABLE `t1` (
+  `id` int(11) NOT NULL,
+  `title` varchar(45) DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) DEFAULT CHARSET=utf8;
+
+INSERT INTO `t1` VALUES ('1', 'Just for fun');
+INSERT INTO `t1` VALUES ('2', 'Wait until a sunhine');
+INSERT INTO `t1` VALUES ('3', 'Take a new turn');
+
+SELECT `id`, SHA1(`title`) AS `column_1`
+FROM `t1`
+HAVING `column_1` LIKE '8%';
+
+--echo expected 1 row(s) returned
+
+SELECT `id`, SHA1(`title`) AS `column_1`
+FROM `t1`
+HAVING UPPER(column_1) LIKE '8%';
+
+--echo expected -- 1 row(s) returned
+
+SELECT `id`, SHA1(`title`) AS `column_1`
+FROM `t1`
+HAVING UPPER(`column_1`) LIKE '8%';
+
+--echo expected -- 1 row(s) returned not ER_BAD_FIELD_ERROR
+
+drop table t1;
diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test
index 80ba4a9..fb39f2e 100644
--- a/mysql-test/t/information_schema.test
+++ b/mysql-test/t/information_schema.test
@@ -1819,6 +1819,23 @@ drop view v1;
 --echo # Clean-up.
 drop database mysqltest;
 
+--echo #
+--echo # Test for bug #16869534 - "QUERYING SUBSET OF COLUMNS DOESN'T USE TABLE
+--echo #                           CACHE; OPENED_TABLES INCREASES"
+--echo #
+--disable_result_log
+SELECT * FROM INFORMATION_SCHEMA.TABLES;
+--enable_result_log
+SELECT VARIABLE_VALUE INTO @val1 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE
+  VARIABLE_NAME LIKE 'Opened_tables';
+--disable_result_log
+SELECT ENGINE FROM INFORMATION_SCHEMA.TABLES;
+--enable_result_log
+--echo # The below SELECT query should give same output as above SELECT query.
+SELECT VARIABLE_VALUE INTO @val2 FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE
+  VARIABLE_NAME LIKE 'Opened_tables';
+--echo # The below select should return '1'
+SELECT @val1 = @val2;
 
 --echo #
 --echo # End of 5.5 tests
diff --git a/mysql-test/t/log_errchk.test b/mysql-test/t/log_errchk.test
index e4bc6a8..4f052b5 100644
--- a/mysql-test/t/log_errchk.test
+++ b/mysql-test/t/log_errchk.test
@@ -6,7 +6,8 @@
 # Bug#14757009 : WHEN THE GENERAL_LOG IS A SOCKET AND THE READER GOES AWAY,
 #                MYSQL QUITS WORKING.
 #
-call mtr.add_suppression("Could not use");
+# MDEV-6870 Not possible to use FIFO file as a general_log file
+#
 
 --let $gen_log_file= $MYSQLTEST_VARDIR/tmp/general_log.fifo
 --let $slow_query_log_file= $MYSQLTEST_VARDIR/tmp/slow_log.fifo
@@ -15,10 +16,9 @@ call mtr.add_suppression("Could not use");
 --exec mkfifo $gen_log_file
 --exec mkfifo $slow_query_log_file
 
---echo # Case 1: Setting fife file to general_log_file and slow_query_log_file
+--echo # Case 1: Setting fifo file to general_log_file and slow_query_log_file
 --echo #         system variable.
-# Only regular files can be set to general log. Setting fifo file to general log
-# reports an error.
+# Setting fifo file to general log reports an error because the other end is closed
 --replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
 --error ER_WRONG_VALUE_FOR_VAR
 --eval SET GLOBAL general_log_file="$gen_log_file";
@@ -38,11 +38,12 @@ call mtr.add_suppression("Could not use");
 --exec echo "restart: --general-log-file=$gen_log_file --slow-query-log-file=$slow_query_log_file" > $MYSQLTEST_VARDIR/tmp/mysqld.1.expect
 --source include/wait_until_connected_again.inc
 
-# With fix error should be reported in the error log file if file is not a
-# regular file.
+# Error 6 is reported, because the other end is closed
+call mtr.add_suppression("Could not use .* for logging \\(error 6\\)");
+call mtr.add_suppression("File '.*' not found \\(Errcode: 6\\)");
 --perl
   my $file= $ENV{'GREP_FILE'};
-  my $pattern= "Turning logging off for the whole duration";
+  my $pattern= "for logging \\(error 6\\)\\. Turning logging off for the whole duration";
   open(FILE, "$file") or die("Unable to open $file: $!\n");
   my $count = 0;
   while (<FILE>) {
diff --git a/mysql-test/t/multi_update.test b/mysql-test/t/multi_update.test
index 12b534f..8184d8d 100644
--- a/mysql-test/t/multi_update.test
+++ b/mysql-test/t/multi_update.test
@@ -849,5 +849,211 @@ update t1 join v3 using (id) set t1.a=0;
 drop view v1, v2, v3;
 drop table t2, t3, t1;
 
+--echo #
+--echo # MDEV-7613: MariaDB 5.5.40 server crash on update table left join
+--echo # with a view  
+--echo #
+
+CREATE TABLE `t1` (
+  `f1` varchar(6) COLLATE latin1_general_ci DEFAULT NULL,
+  `f2` varchar(6) COLLATE latin1_general_ci DEFAULT NULL,
+  `f3` varchar(7) COLLATE latin1_general_ci DEFAULT NULL,
+  `f4` varchar(15) COLLATE latin1_general_ci DEFAULT NULL,
+  `f5` datetime DEFAULT NULL,
+  `f6` varchar(2) COLLATE latin1_general_ci DEFAULT NULL,
+  `f7` varchar(2) COLLATE latin1_general_ci DEFAULT NULL,
+  `ff1` int(1) DEFAULT NULL,
+  `ff2` int(1) DEFAULT NULL,
+  `ff3` int(1) DEFAULT NULL,
+  `ff4` int(1) DEFAULT NULL,
+  `ff5` int(1) DEFAULT NULL,
+  `ff6` int(1) DEFAULT NULL,
+  `ff7` int(1) DEFAULT NULL,
+  `ff8` int(2) DEFAULT NULL,
+  `ff9` int(1) DEFAULT NULL,
+  `ff10` int(1) DEFAULT NULL,
+  `ff11` int(1) DEFAULT NULL,
+  `ff12` int(1) DEFAULT NULL,
+  `ff13` int(1) DEFAULT NULL,
+  `ff14` int(1) DEFAULT NULL,
+  `ff15` int(1) DEFAULT NULL,
+  `f8` varchar(70) COLLATE latin1_general_ci DEFAULT NULL,
+  `f9` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
+  `f10` varchar(50) COLLATE latin1_general_ci NOT NULL,
+  `f11` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
+  `f12` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+  `f13` text COLLATE latin1_general_ci,
+  `f14` time DEFAULT NULL,
+  `f15` varchar(30) COLLATE latin1_general_ci DEFAULT NULL,
+  `fg1` int(11) DEFAULT NULL,
+  `fg2` int(11) DEFAULT NULL,
+  `fg3` int(11) DEFAULT NULL,
+  `fg4` int(11) DEFAULT NULL,
+  `fg5` int(11) DEFAULT NULL,
+  `fg6` int(11) DEFAULT NULL,
+  `fg7` int(11) DEFAULT NULL,
+  `fg9` int(11) DEFAULT NULL,
+  `fg10` int(11) DEFAULT NULL,
+  `fg11` int(11) DEFAULT NULL,
+  `fg12` int(11) DEFAULT NULL,
+  `fg13` int(11) DEFAULT NULL,
+  `fg14` int(11) DEFAULT NULL,
+  `fg15` int(11) DEFAULT NULL,
+  `f16` double DEFAULT NULL,
+  `f17` double DEFAULT NULL,
+  `f18` int(11) DEFAULT NULL,
+  `f19` int(11) DEFAULT NULL,
+  `f20` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+  `f21` int(11) DEFAULT NULL,
+  `f22` int(11) DEFAULT NULL,
+  `f23` int(11) DEFAULT NULL,
+  `f24` double DEFAULT NULL,
+  `f25` int(11) DEFAULT NULL,
+  `f26` double DEFAULT NULL,
+  `f27` int(11) DEFAULT NULL,
+  `f28` int(11) DEFAULT NULL,
+  `f29` double DEFAULT NULL,
+  `f30` int(11) DEFAULT NULL,
+  `f31` double DEFAULT NULL,
+  `PZ` double DEFAULT NULL,
+  `f32` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
+  `f33` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
+  `f34` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
+  `f35` varchar(30) COLLATE latin1_general_ci DEFAULT NULL,
+  `f36` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
+  `f37` varchar(50) COLLATE latin1_general_ci DEFAULT NULL,
+  `f20_2` varchar(20) COLLATE latin1_general_ci DEFAULT NULL,
+  `f38` varchar(30) COLLATE latin1_general_ci DEFAULT NULL COMMENT 'Email = E-Mail / Whitemail = Brief',
+  `insert_ts` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
+  PRIMARY KEY (`f10`),
+  KEY `f5_f12` (`f5`,`f12`),
+  KEY `f5_f20` (`f5`,`f20`),
+  KEY `f5_f33` (`f5`,`f33`)
+) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ROW_FORMAT=COMPACT;
+
+INSERT INTO `t1` VALUES ('2011/2','201105','2011/19','gstfbnfr','2011-05-06
+00:00:00','gg','Ag',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,'','','','','','','21:56:28','',0,0,0,0,0,0,0,0,0,0,0,0,0,0,NULL,NULL,0,0,'Dffgult',1,0,0,NULL,0,NULL,0,0,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'ggggil',NULL),('2008/4','200812','2008/50','hgckbgfx','2008-12-08
+00:00:00','gg','Ag',2,NULL,2,1,1,1,1,24,1,NULL,1,1,1,2,0,'gusschlifßlich
+zugg
+gflffonifrfn','88.77.79.214','10001614','fg-gtgggggdgtfn','fg-gtgggggdgtfn','birgit.tfrpfllf at gggx.df','11:55:21',NULL,1,0,1,1,1,1,1,1,0,1,1,1,0,0,NULL,NULL,0,4,'ffrtrgg',1,6,10,1.66666666666667,4,1,10,14,1.4,1,NULL,NULL,'out',NULL,NULL,'49','ggobilcogg','k.A.',NULL,'ggggil',NULL),('2008/4','200812','2008/51','hgckbgfx','2008-12-15
+00:00:00','gg','Ag',4,5,5,4,5,5,5,NULL,4,5,1,1,1,4,0,'gusschlifßlich zugg
+gflffonifrfn','79.197.185.64','10001686','fg-gtgggggdgtfn','fg-gtgggggdgtfn','kgtjg at swfftys.df','09:28:42',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,11,4.71428571428571,16,1.2,12,49,4.08111111111111,1,NULL,NULL,'out',NULL,NULL,'49','ggobilcogg','k.A.',NULL,'ggggil',NULL),('2008/4','200812','2008/50','nufchti','2008-12-08
+00:00:00','gg','Ag',4,1,1,5,5,5,5,12,4,5,1,1,2,1,0,'gusschlifßlich zugg
+gflffonifrfn','89.54.151.216','10001700','fg-gtgggggdgtfn','fg-gtgggggdgtfn','H_K2006 at frffnft.df','16:41:45',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,10,4.28571428571429,11,2.6,12,41,1.58111111111111,1,NULL,NULL,'ffrtrgg
+Bgckofficf 5','vb5','Nufchtfr,
+Iris','49','ggobilcogg','grfurt','Intfrn','ggggil',NULL),('2008/4','200812','2008/50','junghdro','2008-12-11
+00:00:00','Do','Ag',2,2,5,5,4,4,2,72,2,5,2,2,1,1,0,'gusschlifßlich zugg
+gflffonifrfn','84.61.20.216','10001849','fg-ggriff','fg-ggriff','schofnf-glftfr at grcor.df','20:18:05',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,24,1.42857142857141,12,2.4,12,16,1,1,NULL,NULL,'ffrtrgg
+Bgckofficf 5','vb5','Junghfinrich,
+Dorothfg','49','ggobilcogg','grfurt','Intfrn','ggggil',NULL),('2008/4','200812','2008/50','fbflktj','2008-12-08
+00:00:00','gg','Ag',4,2,2,5,1,1,1,24,NULL,NULL,NULL,NULL,NULL,0,0,'Kgggfrg
+bzw. DigiCggg
+Funktion','217.84.62.6','10001888','fg-Kündigungfn','fg-Kündigungfn','f.frofschkf at gggx.df','21:05:59',NULL,1,1,1,1,1,1,1,0,0,0,0,0,0,0,NULL,NULL,0,0,'ffrtrgg',1,7,16,2.28571428571429,0,NULL,7,16,2.28571428571429,0,NULL,NULL,'out',NULL,'gbfl,
+Kgtjg','49','ggobilcogg','k.A.','gxtfrn','ggggil',NULL),('2008/4','200812','2008/50','gltggggri','2008-12-09
+00:00:00','Di','Ag',4,1,1,4,2,1,2,16,1,2,2,2,2,2,0,'gusschlifßlich zugg
+gflffonifrfn','81.171.157.211','10001988','fg-gtgggggdgtfn','fg-gtgggggdgtfn','bistfr at nftcolognf.df','11:07:54',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,21,1,11,2.2,12,12,2.66666666666667,1,NULL,NULL,'out',NULL,NULL,'49','ggobilcogg','k.A.','gxtfrn','ggggil',NULL),('2008/4','200812','2008/50','ggufllfsg','2008-12-09
+00:00:00','Di','Ag',2,2,2,2,1,1,2,12,2,2,2,1,1,2,0,'ggobilfs
+Intfrnft','62.154.142.186','10002097','fg-gtgggggdgtfn','fg-gtgggggdgtfn','norbfrtwfdlich at fgggil.df','09:42:11',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,12,1.71428571428571,8,1.6,12,20,1.66666666666667,1,NULL,NULL,'ffrtrgg
+Bgckofficf 1','vb1','Mufllfr,
+ggbinf','49','ggobilcogg','grfurt','Intfrn','ggggil',NULL),('2008/4','200812','2008/50','wggnfg','2008-12-09
+00:00:00','Di','Ag',5,5,5,5,5,5,5,12,5,5,5,5,5,5,0,'gls grsgtz für
+Ffstnftz','85.180.141.246','10002127','fg-Kündigungfn','fg-Kündigungfn','rfinhgrt.gdolph at yghoo.df','17:44:11',NULL,1,1,1,1,1,1,1,1,1,1,1,1,0,0,NULL,NULL,0,5,'ffrtrgg',1,7,15,5,25,5,12,60,5,1,NULL,NULL,'ffrtrgg
+Bgckofficf 1','vb1','Wggnfr,
+Annftt','49','ggobilcogg','grfurt','Intfrn','ggggil',NULL),('2008/4','200812','2008/50','schubrbf','2008-12-10
+00:00:00','Mi','Ag',1,2,NULL,2,1,2,1,24,NULL,NULL,NULL,NULL,NULL,0,0,'Kgggfrg
+bzw. DigiCggg
+Funktion','91.40.98.242','10002160','fg-gtgggggdgtfn','fg-gtgggggdgtfn','olgf.lifb at gggx.nft','18:18:25',NULL,1,1,0,1,1,1,1,0,0,0,0,0,0,0,NULL,NULL,0,0,'ffrtrgg',1,6,11,1.81111111111111,0,NULL,6,11,1.81111111111111,0,NULL,NULL,'out',NULL,NULL,'49','ggobilcogg','k.A.','gxtfrn','ggggil',NULL);
+
+CREATE TABLE `t2` (
+  `ft1` datetime DEFAULT NULL,
+  `ft2` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `ft3` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `ft4` varchar(255) COLLATE latin1_general_ci NOT NULL DEFAULT '',
+  `ft5` varchar(255) COLLATE latin1_general_ci NOT NULL DEFAULT '',
+  `ft6` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+  `ft6_2` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+  `ft7` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+  `ft8` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+  `ft9` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+  `ft10` varchar(255) COLLATE latin1_general_ci DEFAULT NULL,
+  PRIMARY KEY (`ft4`,`ft5`)
+) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
+
+INSERT INTO `t2` VALUES ('2013-03-13 00:00:00','2013-03-13 00:00:00','9999-12-31 00:00:00','#','extern FP f32 2','Default','Intern','DEFAULT',NULL,NULL,NULL),('2013-03-13 00:00:00','2013-03-13 00:00:00','9999-12-31 00:00:00','#','extern FP f32 3','Default','Intern','DEFAULT',NULL,NULL,NULL);
+
+CREATE TABLE `t3` (
+  `fe1` int(10) NOT NULL DEFAULT '0',
+  `fe2` char(50) COLLATE latin1_general_ci DEFAULT 'nn',
+  `f34` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+  `fe3` double DEFAULT NULL,
+  `fe4` double DEFAULT NULL,
+  `fe5` char(4) COLLATE latin1_general_ci DEFAULT NULL,
+  `f32` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+  `fe6` int(3) DEFAULT '0',
+  `fe7` char(1) COLLATE latin1_general_ci DEFAULT NULL,
+  `ft6` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+  `f33` char(4) COLLATE latin1_general_ci DEFAULT NULL COMMENT 'virtuelle f33s',
+  `fe8` char(4) COLLATE latin1_general_ci DEFAULT NULL COMMENT 'aus dem ADS',
+  `f37` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+  `fe9` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+  `fe10` int(5) DEFAULT '0',
+  `fe11` int(10) DEFAULT '0',
+  `fe12` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+  `fe13` double DEFAULT NULL,
+  `fe14` char(50) COLLATE latin1_general_ci DEFAULT NULL,
+  `fe15` date DEFAULT NULL,
+  `fe16` date DEFAULT NULL,
+  `fe17` int(10) DEFAULT '0',
+  `fe18` date NOT NULL DEFAULT '0000-00-00',
+  `ft3` date NOT NULL DEFAULT '0000-00-00',
+  PRIMARY KEY (`fe1`),
+  KEY `fe2` (`fe2`,`fe18`,`ft3`),
+  KEY `f33` (`f33`),
+  KEY `fe8` (`fe8`)
+) DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci ROW_FORMAT=COMPACT COMMENT='CustomerService und Outsourcer Userinformationen';
+
+INSERT INTO `t3` VALUES (1,'aabggn','gab, glgna',0,NULL,NULL,'gxtgrn D gnd g
+gggsbgrg',0,NULL,'gxtgrn','dsa','dsa','gggsbgrg','0',91611,0,'0',0,'agsggschigdgn','2014-08-11','2014-09-05',0,'2011-01-01','2014-08-11'),(4,'aabigr','gab,
+Iggr',0,NULL,NULL,'gxtgrn D gnd g
+gggsbgrg',0,NULL,'gxtgrn','dsa','dsa','gggsbgrg','0',0,0,'0',0,'agsggschigdgn','2014-08-11','2014-09-05',0,'2012-10-01','2014-08-11'),(7,'abgcrist','gbg,
+ghristggna',15182,1,'ja','ggshilfg gxtgrn 1',1,NULL,'gg
+galgs','ag1','ag1','grfgrt','0',11941,0,'0',0,'agsggschigdgn','2014-01-11',NULL,11802051,'1900-01-01','2010-06-10'),(8,'abgcrist','gbg,
+ghristggna',15182,1,'ja','Zgntralg gftgr galgs Bgtrgggng 1',1,NULL,'gg
+galgs','sb1','sb1','grfgrt','0',11941,0,'0',0,'agsggschigdgn','2014-01-11',NULL,11802051,'2010-07-01','2012-08-11'),(9,'abgcrist','gbg,
+ghristggna',15182,1,'ja','galgs Inbggnd 2',1,NULL,'gg
+galgs','si2','si2','grfgrt','0',11941,0,'0',0,'agsggschigdgn','2014-01-11',NULL,11802051,'2012-09-01','2014-01-11'),(10,'abgcgr','gbg,
+ggrnglgg',14962,1,NULL,'galgs Ogtbggnd 1',1,NULL,'gg
+galgs','sg1','sg1','grfgrt','0',12401,0,'abgcrn',1,NULL,NULL,NULL,11800647,'1900-01-01','2010-11-10'),(11,'abgcgr','gbg,
+ggrnglgg',14962,1,NULL,'galgs Ogtbggnd 1',1,NULL,'gg
+galgs','sg1','sg1','grfgrt','0',12401,0,'abgcrn',1,NULL,NULL,NULL,11800647,'2010-12-01','2011-08-11'),(12,'abgcgr','gbg,
+ggrnglgg',14962,1,NULL,'galgs Ogtbggnd 2',1,NULL,'gg
+galgs','sg2','sg2','grfgrt','0',12401,0,'abgcrn',1,NULL,NULL,NULL,11800647,'2011-09-01','2012-01-11'),(13,'abgcgr','gbg,
+ggrnglgg',14962,0.75,NULL,'galgs Ogtbggnd 2',1,NULL,'gg
+galgs','sg2','sg2','grfgrt','0',12401,0,'abgcrn',1,NULL,NULL,'2011-09-11',11800647,'2012-02-01','2011-08-11'),(14,'rgghrsgr','gbg,
+gigrid',14781,1,'ja','Fgrdgrgngsmanaggmgnt 1',1,NULL,'gg
+Zahlgng','fm1','fm1','grfgrt','0',12141,0,'0',1,NULL,NULL,NULL,11010781,'1900-01-01','2012-08-11');
+
+CREATE ALGORITHM=MERGE
+DEFINER=`root`@`localhost` SQL SECURITY DEFINER
+VIEW `v1` AS select `t1a`.`ft1` AS `ft1`,`t1a`.`ft2` AS `ft2`,`t1a`.`ft3` AS `ft3`,`t1a`.`ft4` AS `ft4`,`t1a`.`ft5` AS `ft5`,`t1a`.`ft6` AS `ft6`,`t1a`.`ft6_2` AS `ft6_2`,`t1a`.`ft7` AS `ft7`,`t1a`.`ft8` AS `ft8`,`t1a`.`ft9` AS `ft9`,`t1a`.`ft10` AS `ft10` from `t2` `t1a` where (if((`t1a`.`ft10` = 'virtuell'),0,1) = 1);
+
+CREATE ALGORITHM=UNDEFINED
+DEFINER=`root`@`localhost` SQL SECURITY DEFINER
+VIEW `v2` AS select distinct `t1b`.`fe2` AS `fe2`,min(`t1b`.`fe18`) AS `fe18`,max(`t1b`.`ft3`) AS `ft3` from `t3` `t1b` where ((`t1b`.`fe2` <> '') and (curdate() >= `t1b`.`fe18`)) group by `t1b`.`fe2`;
+
+CREATE ALGORITHM=UNDEFINED
+DEFINER=`root`@`localhost` SQL SECURITY DEFINER
+VIEW `v3` AS select `t1c`.`fe2` AS `fe2`,`t1c`.`f34` AS `f34`,`t1c`.`f33` AS `f33`,`t1c`.`f32` AS `f32`,`t1c`.`f37` AS `f37`,`t1c`.`fe10` AS `fe10`,if((`tov`.`ft6` in ('klarmobil','callmobile')),`tov`.`ft9`,`tov`.`ft6`) AS `ft6_1`,`tov`.`ft6_2` AS `ft6_2`,`ua`.`fe18` AS `fe18`,`ua`.`ft3` AS `ft3` from ((`t3` `t1c` left join `v2` `ua` on((`t1c`.`fe2` = `ua`.`fe2`))) left join `v1` `tov` on((`t1c`.`fe8` = `tov`.`ft4`))) where (`t1c`.`ft3` = `ua`.`ft3`) group by `t1c`.`fe2`,`t1c`.`f34`,`t1c [...]
+
+UPDATE t1 t1  left join v3 t2 on t1.f4 = t2.fe2    SET t1.f20 = t2.ft6_1,    t1.f32 = t2.f32,    t1.f33 = t2.f33,    t1.f37 = t2.f37    WHERE f5 >= '2015-02-01';
+
+--echo #MDEV-8018: main.multi_update fails with --ps-protocol
+prepare stmt1 from "UPDATE t1 t1  left join v3 t2 on t1.f4 = t2.fe2    SET t1.f20 = t2.ft6_1,    t1.f32 = t2.f32,    t1.f33 = t2.f33,    t1.f37 = t2.f37    WHERE f5 >= '2015-02-01'";
+execute stmt1;
+execute stmt1;
+deallocate prepare stmt1;
+
+drop view v3,v2,v1;
+drop table t1,t2,t3;
 --echo end of 5.5 tests
 
diff --git a/mysql-test/t/mysql_upgrade_view.test b/mysql-test/t/mysql_upgrade_view.test
new file mode 100644
index 0000000..3ecf66d
--- /dev/null
+++ b/mysql-test/t/mysql_upgrade_view.test
@@ -0,0 +1,132 @@
+-- source include/have_log_bin.inc
+
+set sql_log_bin=0;
+--disable_warnings
+drop table if exists t1,v1,v2,v3,v4,v1badcheck;
+drop view if exists t1,v1,v2,v3,v4,v1badcheck;
+--enable_warnings
+
+create table t1(a int);
+create table kv(k varchar(30) NOT NULL PRIMARY KEY,v  varchar(50));
+
+let $MYSQLD_DATADIR= `select @@datadir`;
+
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v1.frm $MYSQLD_DATADIR/test/v1.frm
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v1badcheck.frm $MYSQLD_DATADIR/test/v1badcheck.frm
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v2.frm $MYSQLD_DATADIR/test/v2.frm
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v3.frm $MYSQLD_DATADIR/test/v3.frm
+
+flush tables;
+
+check view v1;
+check view v1badcheck;
+check view v2;
+check view v3;
+
+check view v1 for upgrade;
+check view v1badcheck for upgrade;
+check view v2 for upgrade;
+check view v3 for upgrade;
+
+--replace_result $MYSQLTEST_VARDIR var
+--exec $MYSQL_UPGRADE --force 2>&1
+
+# "Phase 1/4: Fixing views"  expected (without from_mysql)
+
+show create view v1;
+show create view v2;
+show create view v3;
+
+# Now force a mariadb version to be added
+
+set sql_log_bin=1;
+REPAIR VIEW v1,v2;
+REPAIR VIEW v1badcheck;
+REPAIR NO_WRITE_TO_BINLOG VIEW v3;
+set sql_log_bin=0;
+
+--source include/show_binlog_events.inc
+
+--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
+eval LOAD DATA INFILE '$MYSQLD_DATADIR/test/v1.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
+SELECT k,v from kv where k in ('md5','algorithm');
+SELECT k from kv where k ='mariadb-version';
+truncate table kv;
+
+--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
+eval LOAD DATA INFILE '$MYSQLD_DATADIR/test/v2.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
+SELECT k,v from kv where k in ('md5','algorithm');
+SELECT k from kv where k ='mariadb-version';
+truncate table kv;
+
+--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
+eval LOAD DATA INFILE '$MYSQLD_DATADIR/test/v3.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
+SELECT k,v from kv where k in ('md5','algorithm');
+SELECT k from kv where k ='mariadb-version';
+truncate table kv;
+
+--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
+eval LOAD DATA INFILE '$MYSQLD_DATADIR/test/v1badcheck.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
+SELECT k,v from kv where k in ('md5','algorithm');
+SELECT k from kv where k ='mariadb-version';
+truncate table kv;
+
+--disable_warnings
+drop view if exists v1,v2,v3,v1badcheck;
+--enable_warnings
+
+# Make it look like a MySQL directory now
+
+rename table mysql.event to mysql.ev_bk;
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/event.MYI $MYSQLD_DATADIR/mysql/event.MYI
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/event.MYD $MYSQLD_DATADIR/mysql/event.MYD
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/event.frm $MYSQLD_DATADIR/mysql/event.frm
+
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v1.frm $MYSQLD_DATADIR/test/v1.frm
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v2.frm $MYSQLD_DATADIR/test/v2.frm
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v3.frm $MYSQLD_DATADIR/test/v3.frm
+
+flush tables;
+
+create algorithm=temptable view v4 as select a from t1;
+show create view v1;
+show create view v2;
+show create view v3;
+show create view v4;
+
+# here we test the fixing views from mysql to occur
+--replace_result $MYSQLTEST_VARDIR var
+--exec $MYSQL_UPGRADE --force 2>&1
+
+show create view v1;
+show create view v2;
+show create view v3;
+show create view v4;
+
+--replace_result $MYSQLD_DATADIR MYSQLD_DATADIR
+eval LOAD DATA INFILE '$MYSQLD_DATADIR/test/v1.frm' REPLACE INTO TABLE kv FIELDS TERMINATED BY '=';
+SELECT k,v from kv where k in ('md5','algorithm');
+SELECT k from kv where k ='mariadb-version';
+truncate table kv;
+
+--disable_warnings
+drop view if exists v1,v2,v3;
+--enable_warnings
+
+# back to mariadb default
+drop table mysql.event;
+rename table mysql.ev_bk to mysql.event;
+
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v1.frm $MYSQLD_DATADIR/test/v1.frm
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v2.frm $MYSQLD_DATADIR/test/v2.frm
+--copy_file $MYSQL_TEST_DIR/std_data/mysql_upgrade/v3.frm $MYSQLD_DATADIR/test/v3.frm
+
+# check of binlog and mixing tables (with table specific options) and views
+--exec $MYSQL_CHECK --repair --write-binlog --process-tables --use-frm --process-views=UPGRADE_FROM_MYSQL test 2>&1
+
+--source include/show_binlog_events.inc
+
+drop table if exists kv;
+drop view v1,v2,v3,v4;
+drop table t1;
+
diff --git a/mysql-test/t/mysqladmin.test b/mysql-test/t/mysqladmin.test
index c04c8d5..2580db8 100644
--- a/mysql-test/t/mysqladmin.test
+++ b/mysql-test/t/mysqladmin.test
@@ -45,3 +45,9 @@ EOF
 --exec $MYSQLADMIN --defaults-extra-file=$MYSQLTEST_VARDIR/tmp/cnf_file -uroot -S $MASTER_MYSOCK -P $MASTER_MYPORT ping 2>&1
 
 --remove_file $MYSQLTEST_VARDIR/tmp/cnf_file
+
+#
+# MDEV-7883 Segmentation failure when running mysqladmin -u root -p
+#
+--error 1
+--exec $MYSQLADMIN -u root -p 2>&1 > /dev/null
diff --git a/mysql-test/t/mysqlcheck.test b/mysql-test/t/mysqlcheck.test
index c0025f9..7c55bb7 100644
--- a/mysql-test/t/mysqlcheck.test
+++ b/mysql-test/t/mysqlcheck.test
@@ -13,8 +13,8 @@
 #
 
 --disable_warnings
-DROP TABLE IF EXISTS t1, `t``1`, `t 1`;
-drop view if exists v1;
+DROP TABLE IF EXISTS t1, `t``1`, `t 1`, test.`t.1`, v1;
+drop view if exists t1, `t``1`, `t 1`, test.`t.1`, v1;
 drop database if exists client_test_db;
 # Repair any tables in mysql, sometimes the slow_log is marked as crashed
 # after server has been killed
@@ -313,3 +313,13 @@ CHECK TABLE bug47205 FOR UPGRADE;
 CHECK TABLE bug47205 FOR UPGRADE;
 
 DROP TABLE bug47205;
+
+--echo #
+--echo #MDEV-6128:[PATCH] mysqlcheck wrongly escapes '.' in table names
+--echo #
+CREATE TABLE test.`t.1` (id int);
+
+--echo mysqlcheck test t.1
+--exec $MYSQL_CHECK test t.1
+
+drop table test.`t.1`;
diff --git a/mysql-test/t/openssl_1.test b/mysql-test/t/openssl_1.test
index bee0e2c..1b28c40 100644
--- a/mysql-test/t/openssl_1.test
+++ b/mysql-test/t/openssl_1.test
@@ -15,8 +15,8 @@ insert into t1 values (5);
 
 grant select on test.* to ssl_user1 at localhost require SSL;
 grant select on test.* to ssl_user2 at localhost require cipher "DHE-RSA-AES256-SHA";
-grant select on test.* to ssl_user3 at localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB";
-grant select on test.* to ssl_user4 at localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=SE/ST=Uppsala/O=MySQL AB" ISSUER "/C=SE/ST=Uppsala/L=Uppsala/O=MySQL AB";
+grant select on test.* to ssl_user3 at localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB/CN=client";
+grant select on test.* to ssl_user4 at localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB/CN=client" ISSUER "/CN=cacert/C=FI/ST=Helsinki/L=Helsinki/O=MariaDB";
 grant select on test.* to ssl_user5 at localhost require cipher "DHE-RSA-AES256-SHA" AND SUBJECT "xxx";
 flush privileges;
 
diff --git a/mysql-test/t/processlist.test b/mysql-test/t/processlist.test
index 9c555c0..a8f8a4e 100644
--- a/mysql-test/t/processlist.test
+++ b/mysql-test/t/processlist.test
@@ -2,6 +2,7 @@
 # MDEV-4578 information_schema.processlist reports incorrect value for Time (2147483647)
 #
 
+source include/have_debug.inc;
 source include/have_debug_sync.inc;
 
 let $tid= `SELECT CONNECTION_ID()`;
@@ -21,6 +22,7 @@ SET DEBUG_SYNC = 'now SIGNAL fill_schema_proceed';
 connection con1;
 --replace_result $tid TID
 reap;
+set debug_sync='reset';
 connection default;
 
 #
@@ -28,15 +30,13 @@ connection default;
 #
 
 connection con1;
-# Trigger a signal once the thread has gone from "Query" to "Sleep" command
-# state. Note we need to execute this twice: Once at the end of SET DEBUG_SYNC,
-# and once for the intended time, at the end of SELECT SLEEP().
-SET DEBUG_SYNC = 'dispatch_command_end SIGNAL query_done EXECUTE 2';
-connection default;
-# Wait for and clear the first signal set during SET DEBUG_SYNC.
-SET DEBUG_SYNC= 'now WAIT_FOR query_done';
-SET DEBUG_SYNC= 'now SIGNAL nosignal';
-connection con1;
+# This DBUG insertion triggers a DEBUG_SYNC signal "query_done" once
+# the below SELECT SLEEP(5) has gone from "Query" to "Sleep" command
+# state. (We cannot just set the DEBUG_SYNC directly here, because
+# then it can trigger at the end of the SET DEBUG_SYNC statement (or
+# at the end of the Prepare step of the SELECT, if --ps-protocol),
+# thus occuring too early).
+SET debug_dbug="+d,sleep_inject_query_done_debug_sync";
 select sleep(5); #run a query that will take some time
 connection default;
 
diff --git a/mysql-test/t/sp-destruct.test b/mysql-test/t/sp-destruct.test
index 75eeda8..3a2e925 100644
--- a/mysql-test/t/sp-destruct.test
+++ b/mysql-test/t/sp-destruct.test
@@ -281,3 +281,11 @@ DROP DATABASE db1;
 --echo # Restore mysql.proc
 DROP TABLE mysql.proc;
 RENAME TABLE proc_backup TO mysql.proc;
+
+#
+# BUG#19875331 - HANDLE_FATAL_SIGNAL 11 IN STRMAKE
+#
+create database mysqltest1;
+create procedure mysqltest1.foo() select "foo";
+update mysql.proc set name='' where db='mysqltest1';
+drop database mysqltest1;
diff --git a/mysql-test/t/sp-innodb.test b/mysql-test/t/sp-innodb.test
index 228ab42..2371516 100644
--- a/mysql-test/t/sp-innodb.test
+++ b/mysql-test/t/sp-innodb.test
@@ -43,3 +43,120 @@ CALL p1();
 
 drop procedure p1;
 drop table t1,t2;
+
+# Save the initial number of concurrent sessions
+--source include/count_sessions.inc
+
+--echo
+--echo #
+--echo # BUG 16041903: CONTINUE HANDLER NOT INVOKED
+--echo # IN A STORED FUNCTION AFTER A LOCK WAIT TIMEOUT
+--echo #
+
+--echo
+--echo # Save and set lock wait timeout
+SET @lock_wait_timeout_saved= @@lock_wait_timeout;
+SET @innodb_lock_wait_timeout_saved= @@innodb_lock_wait_timeout;
+SET @@lock_wait_timeout= 1;
+SET @@innodb_lock_wait_timeout= 1;
+
+--echo
+--echo # Create a function with exit handler:
+DELIMITER //;
+CREATE FUNCTION f1() RETURNS VARCHAR(20)
+BEGIN
+  DECLARE EXIT HANDLER FOR SQLSTATE '42S02' RETURN 'No such table';
+  INSERT INTO no_such_table VALUES (1);
+END//
+
+--echo
+--echo # Create a function calling f1():
+CREATE FUNCTION f2() RETURNS VARCHAR(20)
+BEGIN
+  RETURN f1();
+END//
+
+--echo
+--echo # Create a function provoking deadlock:
+CREATE FUNCTION f3() RETURNS VARCHAR(20)
+BEGIN
+  UPDATE t1 SET i= 1 WHERE i= 1;
+  RETURN 'Will never get here';
+END//
+
+--echo
+--echo # Create a function calling f3, to create
+--echo # a deadlock indirectly:
+CREATE FUNCTION f4() RETURNS VARCHAR(20)
+BEGIN
+  RETURN f3();
+END//
+DELIMITER ;//
+
+--echo
+--echo # Open another connection, create and initialize a table
+--echo # to be used for provoking deadlock, put a lock on the table:
+connect (con1,localhost,root,,);
+CREATE TABLE t1 (i INT) ENGINE=InnoDB;
+INSERT INTO t1 VALUES (1);
+SET AUTOCOMMIT= 0;
+UPDATE t1 SET i=1 WHERE i=1;
+
+--echo
+--echo # On the default connection, do an update to provoke a
+--echo # deadlock, then call the function with handler. This case
+--echo # fails without the patch (with error ER_NO_SUCH_TABLE):
+--connection default
+SET AUTOCOMMIT= 0;
+--error ER_LOCK_WAIT_TIMEOUT
+UPDATE t1 SET i=1 WHERE i=1;
+SELECT f1() AS 'f1():';
+
+--echo
+--echo # Provoke another deadlock, then call the function with
+--echo # handler indirectly. This case fails without the patch
+--echo # (with error ER_NO_SUCH_TABLE):
+--error ER_LOCK_WAIT_TIMEOUT
+UPDATE t1 SET i= 1 WHERE i= 1;
+SELECT f2() AS 'f2():';
+
+--echo
+--echo # Provoke yet another deadlock, but now from within a function,
+--echo # then call the function with handler. This succeeds even
+--echo # without the patch because is_fatal_sub_stmt_error is reset
+--echo # in restore_sub_stmt after the failing function has been
+--echo # executed. The test case is included anyway for better coverage:
+--error ER_LOCK_WAIT_TIMEOUT
+SELECT f3() AS 'f3():';
+SELECT f1() AS 'f1():';
+
+--echo # Provoke yet another deadlock, but now from within a function,
+--echo # calling another function, then call the function with handler.
+--echo # This succeeds even without the patch because
+--echo # is_fatal_sub_stmt_error is reset in restore_sub_stmt after
+--echo # the failing function has been executed. The test case is
+--echo # included anyway for better coverage:
+--error ER_LOCK_WAIT_TIMEOUT
+SELECT f4() AS 'f4():';
+SELECT f1() AS 'f1():';
+
+--echo
+--echo # Disconnect, drop functions and table:
+--disconnect con1
+DROP FUNCTION f4;
+DROP FUNCTION f3;
+DROP FUNCTION f2;
+DROP FUNCTION f1;
+DROP TABLE t1;
+
+--echo
+--echo # Reset lock wait timeouts
+SET @@lock_wait_timeout= @lock_wait_timeout_saved;
+SET @@innodb_lock_wait_timeout= @innodb_lock_wait_timeout_saved;
+
+--echo #
+--echo # BUG 16041903: End of test case
+--echo #
+
+# Wait till we reached the initial number of concurrent sessions
+--source include/wait_until_count_sessions.inc
diff --git a/mysql-test/t/subselect_sj.test b/mysql-test/t/subselect_sj.test
index 1b0076f..9d7ea17 100644
--- a/mysql-test/t/subselect_sj.test
+++ b/mysql-test/t/subselect_sj.test
@@ -2689,5 +2689,16 @@ SET join_cache_level=@tmp_mdev5059;
 set optimizer_switch=@tmp_os_mdev5059;
 DROP TABLE t1,t2,t3,t4;
 
+--echo #
+--echo # MDEV-7911: crash in Item_cond::eval_not_null_tables
+--echo #
+
+create table t1(a int);
+insert into t1 values(1),(2),(3),(null);
+--error ER_CANT_AGGREGATE_2COLLATIONS
+explain
+select 1 from t1 where _cp932 "1" in (select '1' from t1);
+drop table t1;
+
 # The following command must be the last one the file 
 set optimizer_switch=@subselect_sj_tmp;
diff --git a/mysql-test/t/subselect_sj2.test b/mysql-test/t/subselect_sj2.test
index a82baf0..0bf9c6d 100644
--- a/mysql-test/t/subselect_sj2.test
+++ b/mysql-test/t/subselect_sj2.test
@@ -1320,5 +1320,76 @@ SELECT * FROM t1 WHERE id in (select distinct id_agente from t2);
 
 DROP TABLE t1, t2;
 
+--echo #
+--echo # MDEV-7474: Semi-Join's DuplicateWeedout strategy skipped for some values of optimizer_search_depth
+--echo #
+
+CREATE TABLE t1 (
+	t1id BIGINT(20) NOT NULL,
+	code VARCHAR(20),
+	PRIMARY KEY (t1id)
+) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
+
+CREATE TABLE t2 (
+	t2id BIGINT(20) NOT NULL,
+	t1idref BIGINT(20) NOT NULL,
+	code VARCHAR(20),
+	PRIMARY KEY (t2id),
+	INDEX FK_T2_T1Id (t1idref),
+	CONSTRAINT FK_T2_T1Id FOREIGN KEY (t1idref) REFERENCES t1 (t1id)
+) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
+
+CREATE TABLE t3 (
+	t3idref BIGINT(20) NOT NULL,
+	t2idref BIGINT(20) NOT NULL,
+	sequencenumber INT(10) NOT NULL,
+	PRIMARY KEY (t3idref, t2idref),
+	INDEX FK_T3_T2Id (t2idref),
+	CONSTRAINT FK_T3_T2Id FOREIGN KEY (t2idref) REFERENCES t2 (t2id)
+) COLLATE='utf8mb4_bin' ENGINE=InnoDB;
+
+# Load up dummy data (needed to reproduce issue)
+INSERT INTO t1 (t1id) VALUES (100001),(100017),(100018),(100026),(100027),(100028),(100029),(100030),
+(100031),(100032),(100033),(100034),(100035),(100036),(100037),(100038),(100040),(100041),(100042),
+(100043),(100044),(100045),(100046),(100047);
+
+INSERT IGNORE INTO t2 (t2id, t1idref) SELECT t1id, t1id FROM t1;
+
+# Now the test Data
+INSERT IGNORE INTO t1 VALUES (200001, 'a');
+INSERT IGNORE INTO t2 (t2id, t1idref) VALUES (200011, 200001),(200012, 200001),(200013, 200001);
+INSERT IGNORE INTO t3 VALUES (1, 200011, 1),  (1, 200012, 2), (1, 200013, 3);
+
+set @tmp7474= @@optimizer_search_depth;
+SET SESSION optimizer_search_depth = 1;
+
+let $query=
+SELECT SQL_NO_CACHE 
+T2_0_.t1idref,
+T2_0_.t2id
+FROM
+        t2 T2_0_ 
+WHERE
+        T2_0_.t1idref IN (
+                SELECT
+                        T1_1_.t1id 
+                FROM
+                        t3 T3_0_ 
+                INNER JOIN
+                        t2 T2_1_ 
+                                ON T3_0_.t2idref=T2_1_.t2id 
+                INNER JOIN
+                        t1 T1_1_ 
+                                ON T2_1_.t1idref=T1_1_.t1id            
+                WHERE
+                        T3_0_.t3idref= 1
+);
+
+eval $query;
+eval explain $query;
+
+drop table t3,t2,t1;
+set optimizer_search_depth=@tmp7474;
+
 --echo # This must be the last in the file:
 set optimizer_switch=@subselect_sj2_tmp;
diff --git a/mysql-test/t/table_elim.test b/mysql-test/t/table_elim.test
index 0d42dca..24f4820 100644
--- a/mysql-test/t/table_elim.test
+++ b/mysql-test/t/table_elim.test
@@ -610,3 +610,34 @@ SELECT t1.alpha3 FROM t1 LEFT JOIN ( t2 LEFT JOIN t3 ON t2.t3_code  = t3.code )
 DROP TABLE t1, t2, t3;
 
 SET optimizer_switch=@save_optimizer_switch;
+
+--echo #
+--echo # MDEV-7893: table_elimination works wrong with on computed expression and compound unique key
+--echo #  (just a testcase)
+CREATE TABLE t1 (
+  PostID int(10) unsigned NOT NULL
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+INSERT INTO t1 (PostID) VALUES (1), (2);
+
+CREATE TABLE t2 (
+  VoteID int(10) unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
+  EntityID int(10) unsigned NOT NULL,
+  UserID int(10) unsigned NOT NULL,
+  UNIQUE KEY EntityID (EntityID,UserID)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+  
+INSERT INTO t2 (EntityID, UserID) VALUES (1,  30), (2, 30);
+
+SELECT t1.*, T.Voted as Voted
+FROM 
+t1 LEFT JOIN (
+  SELECT 1 AS Voted, EntityID 
+  FROM t2 
+  WHERE t2.UserID = '20' ) AS T 
+  ON T.EntityID = t1.PostID
+WHERE t1.PostID='1'
+LIMIT 1;
+
+DROP TABLE t1,t2;
+
diff --git a/mysql-test/t/table_keyinfo-6838.test b/mysql-test/t/table_keyinfo-6838.test
new file mode 100644
index 0000000..5f4c9f4
--- /dev/null
+++ b/mysql-test/t/table_keyinfo-6838.test
@@ -0,0 +1,18 @@
+# Test case for MDEV-6838.
+# Due to incorrect key_length computation, this usecase failed with the error
+# Using too big key for internal temp table.
+
+CREATE TABLE t1 (i INT, state VARCHAR(997)) ENGINE=MyISAM;
+INSERT INTO t1 VALUES (2,'Louisiana'),(9,'Maine');
+
+CREATE TABLE t2 (state VARCHAR(997), j INT) ENGINE=MyISAM;
+INSERT INTO t2 VALUES ('Louisiana',9),('Alaska',5);
+INSERT INTO t2 SELECT t2.* FROM t2 JOIN t2 AS t3 JOIN t2 AS t4 JOIN t2 AS t5 JOIN t2 AS t6;
+
+SET @@max_heap_table_size= 16384;
+set @@optimizer_switch='derived_merge=OFF';
+set @@optimizer_switch='extended_keys=ON';
+
+SELECT * FROM t1 AS t1_1 LEFT JOIN ( t1 AS t1_2 INNER JOIN (SELECT * FROM t2) v2 ON t1_2.i = j ) ON t1_1.state = v2.state LIMIT 1;
+
+DROP TABLE t1, t2;
diff --git a/mysql-test/t/trigger-trans.test b/mysql-test/t/trigger-trans.test
index 82bee7a..c172020 100644
--- a/mysql-test/t/trigger-trans.test
+++ b/mysql-test/t/trigger-trans.test
@@ -2,6 +2,9 @@
 # (or just InnoDB storage engine)
 --source include/have_innodb.inc
 
+# Save the initial number of concurrent sessions
+--source include/count_sessions.inc
+
 --disable_warnings
 drop table if exists t1;
 --enable_warnings
@@ -182,3 +185,54 @@ insert into t1 values ( 654, 'a'), ( 654, 'b'), ( 654, 'c'),
 select * from t2 order by b;
 drop trigger t1_after_insert;
 drop table t1,t2;
+
+--echo #
+--echo #Bug#19683834 SOME INNODB ERRORS CAUSES STORED FUNCTION
+--echo #             AND TRIGGER HANDLERS TO BE IGNORED
+
+--echo #Code fixed in Bug#16041903
+--enable_connect_log
+
+CREATE TABLE t1 (id int unsigned PRIMARY KEY, val int DEFAULT 0)
+ENGINE=InnoDB;
+INSERT INTO t1 (id) VALUES (1), (2);
+
+CREATE TABLE t2 (id int PRIMARY KEY);
+CREATE TABLE t3 LIKE t2;
+
+# Trigger with continue handler for ER_DUP_ENTRY(1062)
+DELIMITER //;
+CREATE TRIGGER bef_insert BEFORE INSERT ON t2 FOR EACH ROW
+BEGIN
+   DECLARE CONTINUE HANDLER FOR 1062 BEGIN END;
+   INSERT INTO t3 (id) VALUES (NEW.id);
+   INSERT INTO t3 (id) VALUES (NEW.id);
+END//
+DELIMITER ;//
+
+# Transaction 1: Grab locks on t1
+START TRANSACTION;
+UPDATE t1 SET val = val + 1;
+
+# Transaction 2:
+--connect (con2,localhost,root,,test,,)
+SET SESSION innodb_lock_wait_timeout = 2;
+# Trigger lock timeout (1205)
+--error ER_LOCK_WAIT_TIMEOUT
+UPDATE t1 SET val = val + 1;
+
+# This insert should go through, as the continue handler should
+# handle ER_DUP_ENTRY, even after ER_LOCK_WAIT_TIMEOUT (Bug#16041903)
+INSERT INTO t2 (id) VALUES (1);
+
+# Cleanup
+disconnect con2;
+--source include/wait_until_disconnected.inc
+connection default;
+
+DROP TABLE t3, t2, t1;
+
+--disable_connect_log
+
+# Wait till we reached the initial number of concurrent sessions
+--source include/wait_until_count_sessions.inc
diff --git a/mysql-test/t/uniques_crash-7912.test b/mysql-test/t/uniques_crash-7912.test
new file mode 100644
index 0000000..8dc82f8
--- /dev/null
+++ b/mysql-test/t/uniques_crash-7912.test
@@ -0,0 +1,26 @@
+#
+# MDEV-7912
+#
+# multitable delete with wrongly set sort_buffer_size crashes in merge_buffers
+
+--source include/have_innodb.inc
+--source include/have_debug.inc
+--source include/windows.inc
+
+call mtr.add_suppression("Out of memory");
+
+set sql_mode="";
+--disable_warnings
+drop table if exists t1,t2;
+create table `t1` (`a` datetime not null) engine=InnoDB;
+create table `t2` (`a` int not null) engine=innodb;
+replace into t1 values (),();
+insert into t2 values(0);
+set session sort_buffer_size = 1024*1024*1024*1024;
+#Either fail with EE_OUTOFMEMORY, or succeed
+--error 0 , 5
+delete d2 from t2 as d1, t1 as d2 where d1.a <=> d2.a;
+--enable_warnings
+
+drop table t2;
+drop table t1;
diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test
index 9cb9def..b967992 100644
--- a/mysql-test/t/view.test
+++ b/mysql-test/t/view.test
@@ -5335,6 +5335,38 @@ DROP FUNCTION f1;
 DROP VIEW v1;
 DROP TABLE t1, t2;
 
+
+create view v1 as select 1;
+
+--let $MYSQLD_DATADIR= `select @@datadir`
+--let SEARCH_FILE= $MYSQLD_DATADIR/test/v1.frm
+--let SEARCH_PATTERN=mariadb-version
+--source include/search_pattern_in_file.inc
+
+drop view v1;
+
+--echo #
+--echo # MDEV-7260: Crash in get_best_combination when executing multi-table
+--echo # UPDATE with nested views
+--echo #
+
+CREATE TABLE `t1` (`id` bigint(20));
+
+INSERT INTO `t1` VALUES (1),(2);
+
+CREATE TABLE `t2` (`id` bigint(20));
+
+CREATE TABLE `t3` (`id` bigint(20), `flag` tinyint(4));
+
+create view v1 as select id from t1;
+
+create view v2 as select t2.* from (t2 left join v1 using (id));
+
+update t3 left join v2 using (id) set flag=flag+1;
+
+drop view v2, v1;
+drop table t1, t2, t3;
+
 --echo # -----------------------------------------------------------------
 --echo # -- End of 5.5 tests.
 --echo # -----------------------------------------------------------------
diff --git a/mysys/my_context.c b/mysys/my_context.c
index 9be5ab8..80156df 100644
--- a/mysys/my_context.c
+++ b/mysys/my_context.c
@@ -729,33 +729,36 @@ my_context_continue(struct my_context *c)
 
 #ifdef MY_CONTEXT_DISABLE
 int
-my_context_continue(struct my_context *c)
+my_context_continue(struct my_context *c __attribute__((unused)))
 {
   return -1;
 }
 
 
 int
-my_context_spawn(struct my_context *c, void (*f)(void *), void *d)
+my_context_spawn(struct my_context *c __attribute__((unused)),
+                 void (*f)(void *) __attribute__((unused)),
+                 void *d __attribute__((unused)))
 {
   return -1;
 }
 
 
 int
-my_context_yield(struct my_context *c)
+my_context_yield(struct my_context *c __attribute__((unused)))
 {
   return -1;
 }
 
 int
-my_context_init(struct my_context *c, size_t stack_size)
+my_context_init(struct my_context *c __attribute__((unused)),
+                size_t stack_size __attribute__((unused)))
 {
   return -1;                                  /* Out of memory */
 }
 
 void
-my_context_destroy(struct my_context *c)
+my_context_destroy(struct my_context *c __attribute__((unused)))
 {
 }
 
diff --git a/packaging/WiX/custom_ui.wxs b/packaging/WiX/custom_ui.wxs
index d49e421..a28c3c9 100644
--- a/packaging/WiX/custom_ui.wxs
+++ b/packaging/WiX/custom_ui.wxs
@@ -2,7 +2,7 @@
          xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
 
 <!--
-   Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
+   Copyright (c) 2010, 2015, 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
@@ -30,7 +30,7 @@
       <Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" Disabled="yes" />
       <Control Id="Description" Type="Text" X="135" Y="80" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgDescription)" />
       <Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeDlgTitle)" />
-      <Control Id="CopyrightText" Type="Text" X="135" Y="200" Width="220" Height="40" Transparent="yes" Text="Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved." />
+      <Control Id="CopyrightText" Type="Text" X="135" Y="200" Width="220" Height="40" Transparent="yes" Text="Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved." />
       <Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="!(loc.WelcomeDlgBitmap)" />
       <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
     </Dialog>
diff --git a/plugin/server_audit/server_audit.c b/plugin/server_audit/server_audit.c
index 5c19b36..a4d726b 100644
--- a/plugin/server_audit/server_audit.c
+++ b/plugin/server_audit/server_audit.c
@@ -14,11 +14,10 @@
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
 
 
-#define PLUGIN_VERSION 0x101
-#define PLUGIN_STR_VERSION "1.1.7"
+#define PLUGIN_VERSION 0x103
+#define PLUGIN_STR_VERSION "1.3.0"
 
 #include <my_config.h>
-
 #include <stdio.h>
 #include <time.h>
 #include <string.h>
@@ -142,6 +141,10 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
 #define flogger_mutex_lock(A) pthread_mutex_lock(&(A)->m_mutex)
 #define flogger_mutex_unlock(A) pthread_mutex_unlock(&(A)->m_mutex)
 
+static char **int_mysql_data_home;
+static char *default_home= (char *)".";
+#define mysql_data_home (*int_mysql_data_home)
+
 #include "../../mysys/file_logger.c"
 #endif /*!MARIADB_ONLY*/
 
@@ -165,6 +168,7 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
 extern char server_version[];
 static const char *serv_ver= NULL;
 static int started_mysql= 0;
+static int started_mariadb= 0;
 static int maria_above_5= 0;
 static char *incl_users, *excl_users,
             *file_path, *syslog_info;
@@ -181,6 +185,9 @@ static char logging;
 static int internal_stop_logging= 0;
 static char incl_user_buffer[1024];
 static char excl_user_buffer[1024];
+static char *big_buffer= NULL;
+static size_t big_buffer_alloced= 0;
+static unsigned int query_log_limit= 0;
 
 static char servhost[256];
 static size_t servhost_len;
@@ -222,11 +229,16 @@ static MYSQL_SYSVAR_STR(excl_users, excl_users, PLUGIN_VAR_RQCMDARG,
        NULL, update_excl_users, NULL);
 /* bits in the event filter. */
 #define EVENT_CONNECT 1
-#define EVENT_QUERY 2
+#define EVENT_QUERY_ALL 2
+#define EVENT_QUERY 58
 #define EVENT_TABLE 4
+#define EVENT_QUERY_DDL 8
+#define EVENT_QUERY_DML 16
+#define EVENT_QUERY_DCL 32
+
 static const char *event_names[]=
 {
-  "CONNECT", "QUERY", "TABLE",
+  "CONNECT", "QUERY", "TABLE", "QUERY_DDL", "QUERY_DML", "QUERY_DCL",
   NULL
 };
 static TYPELIB events_typelib=
@@ -234,7 +246,7 @@ static TYPELIB events_typelib=
   array_elements(event_names) - 1, "", event_names, NULL
 };
 static MYSQL_SYSVAR_SET(events, events, PLUGIN_VAR_RQCMDARG,
-       "Specifies the set of events to monitor. Can be CONNECT, QUERY, TABLE.",
+       "Specifies the set of events to monitor. Can be CONNECT, QUERY, TABLE, QUERY_DDL, QUERY_DML.",
        NULL, NULL, 0, &events_typelib);
 #define OUTPUT_SYSLOG 0
 #define OUTPUT_FILE 1
@@ -271,6 +283,9 @@ static MYSQL_SYSVAR_STR(syslog_ident, syslog_ident, PLUGIN_VAR_RQCMDARG,
 static MYSQL_SYSVAR_STR(syslog_info, syslog_info,
        PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC,
        "The <info> string to be added to the SYSLOG record.", NULL, NULL, "");
+static MYSQL_SYSVAR_UINT(query_log_limit, query_log_limit,
+       PLUGIN_VAR_OPCMDARG, "Limit on the length of the query string in a record.",
+       NULL, NULL, 1024, 0, 0x7FFFFFFF, 1);
 
 static const char *syslog_facility_names[]=
 {
@@ -350,6 +365,7 @@ static struct st_mysql_sys_var* vars[] = {
     MYSQL_SYSVAR(syslog_ident),
     MYSQL_SYSVAR(syslog_facility),
     MYSQL_SYSVAR(syslog_priority),
+    MYSQL_SYSVAR(query_log_limit),
     NULL
 };
 
@@ -374,9 +390,11 @@ static struct st_mysql_show_var audit_status[]=
 static PSI_mutex_key key_LOCK_operations;
 static PSI_mutex_info mutex_key_list[]=
 {{ &key_LOCK_operations, "SERVER_AUDIT_plugin::lock_operations",
+{{ &key_LOCK_bigbuffer, "SERVER_AUDIT_plugin::lock_bigbuffer",
    PSI_FLAG_GLOBAL}};
 #endif
 static mysql_mutex_t lock_operations;
+static mysql_mutex_t lock_bigbuffer;
 
 /* The Percona server and partly MySQL don't support         */
 /* launching client errors in the 'update_variable' methods. */
@@ -526,6 +544,115 @@ static int user_hash_fill(HASH *h, char *users,
 }
 
 
+enum sa_keywords
+{
+  SQLCOM_NOTHING=0,
+  SQLCOM_DDL,
+  SQLCOM_DML,
+  SQLCOM_GRANT,
+  SQLCOM_CREATE_USER,
+  SQLCOM_CHANGE_MASTER,
+  SQLCOM_CREATE_SERVER,
+  SQLCOM_SET_OPTION,
+  SQLCOM_ALTER_SERVER,
+  SQLCOM_TRUNCATE,
+  SQLCOM_QUERY_ADMIN,
+  SQLCOM_DCL,
+};
+
+struct sa_keyword
+{
+  int length;
+  const char *wd;
+  struct sa_keyword *next;
+  enum sa_keywords type;
+};
+
+
+struct sa_keyword xml_word=   {3, "XML", 0, SQLCOM_NOTHING};
+struct sa_keyword user_word=   {4, "USER", 0, SQLCOM_NOTHING};
+struct sa_keyword data_word=   {4, "DATA", 0, SQLCOM_NOTHING};
+struct sa_keyword server_word= {6, "SERVER", 0, SQLCOM_NOTHING};
+struct sa_keyword master_word= {6, "MASTER", 0, SQLCOM_NOTHING};
+struct sa_keyword password_word= {8, "PASSWORD", 0, SQLCOM_NOTHING};
+struct sa_keyword function_word= {8, "FUNCTION", 0, SQLCOM_NOTHING};
+struct sa_keyword statement_word= {9, "STATEMENT", 0, SQLCOM_NOTHING};
+struct sa_keyword procedure_word= {9, "PROCEDURE", 0, SQLCOM_NOTHING};
+
+
+struct sa_keyword keywords_to_skip[]=
+{
+  {3, "SET", &statement_word, SQLCOM_QUERY_ADMIN},
+  {0, NULL, 0, SQLCOM_DDL}
+};
+
+
+struct sa_keyword not_ddl_keywords[]=
+{
+  {4, "DROP", &function_word, SQLCOM_QUERY_ADMIN},
+  {4, "DROP", &procedure_word, SQLCOM_QUERY_ADMIN},
+  {4, "DROP", &user_word, SQLCOM_DCL},
+  {6, "CREATE", &user_word, SQLCOM_DCL},
+  {6, "CREATE", &function_word, SQLCOM_QUERY_ADMIN},
+  {6, "CREATE", &procedure_word, SQLCOM_QUERY_ADMIN},
+  {6, "RENAME", &user_word, SQLCOM_DCL},
+  {0, NULL, 0, SQLCOM_DDL}
+};
+
+
+struct sa_keyword ddl_keywords[]=
+{
+  {4, "DROP", 0, SQLCOM_DDL},
+  {5, "ALTER", 0, SQLCOM_DDL},
+  {6, "CREATE", 0, SQLCOM_DDL},
+  {6, "RENAME", 0, SQLCOM_DDL},
+  {8, "TRUNCATE", 0, SQLCOM_DDL},
+  {0, NULL, 0, SQLCOM_DDL}
+};
+
+
+struct sa_keyword dml_keywords[]=
+{
+  {2, "DO", 0, SQLCOM_DML},
+  {4, "CALL", 0, SQLCOM_DML},
+  {4, "LOAD", &data_word, SQLCOM_DML},
+  {4, "LOAD", &xml_word, SQLCOM_DML},
+  {6, "DELETE", 0, SQLCOM_DML},
+  {6, "INSERT", 0, SQLCOM_DML},
+  {6, "SELECT", 0, SQLCOM_DML},
+  {6, "UPDATE", 0, SQLCOM_DML},
+  {7, "HANDLER", 0, SQLCOM_DML},
+  {7, "REPLACE", 0, SQLCOM_DML},
+  {0, NULL, 0, SQLCOM_DML}
+};
+
+
+struct sa_keyword dcl_keywords[]=
+{
+  {6, "CREATE", &user_word, SQLCOM_DCL},
+  {4, "DROP", &user_word, SQLCOM_DCL},
+  {6, "RENAME", &user_word, SQLCOM_DCL},
+  {5, "GRANT", 0, SQLCOM_DCL},
+  {6, "REVOKE", 0, SQLCOM_DCL},
+  {3, "SET", &password_word, SQLCOM_DCL},
+  {0, NULL, 0, SQLCOM_DDL}
+};
+
+
+struct sa_keyword passwd_keywords[]=
+{
+  {3, "SET", &password_word, SQLCOM_SET_OPTION},
+  {5, "ALTER", &server_word, SQLCOM_ALTER_SERVER},
+  {5, "GRANT", 0, SQLCOM_GRANT},
+  {6, "CREATE", &user_word, SQLCOM_CREATE_USER},
+  {6, "CREATE", &server_word, SQLCOM_CREATE_SERVER},
+  {6, "CHANGE", &master_word, SQLCOM_CHANGE_MASTER},
+  {0, NULL, 0, SQLCOM_NOTHING}
+};
+
+#define MAX_KEYWORD 9
+
+
 static void error_header()
 {
   struct tm tm_time;
@@ -563,6 +690,7 @@ struct connection_info
   int log_always;
 };
 
+
 static HASH connection_hash;
 
 
@@ -771,6 +899,22 @@ static struct connection_info *
 
 
 #define SAFE_STRLEN(s) (s ? strlen(s) : 0)
+static char empty_str[1]= { 0 };
+
+
+static int is_space(char c)
+{
+  return c == ' ' || c == '\r' || c == '\n' || c == '\t';
+}
+
+
+#define SKIP_SPACES(str) \
+do { \
+  while (is_space(*str)) \
+    ++str; \
+} while(0)
+
+
 
 
 static struct connection_info *
@@ -962,11 +1106,15 @@ static size_t escape_string(const char *str, unsigned int len,
       break;
     if (*str == '\'')
     {
+      if (result+1 >= res_end)
+        break;
       *(result++)= '\\';
       *(result++)= '\'';
     }
     else if (*str == '\\')
     {
+      if (result+1 >= res_end)
+        break;
       *(result++)= '\\';
       *(result++)= '\\';
     }
@@ -980,6 +1128,102 @@ static size_t escape_string(const char *str, unsigned int len,
 }
 
 
+static size_t escape_string_hide_passwords(const char *str, unsigned int len,
+    char *result, size_t result_len,
+    const char *word1, size_t word1_len,
+    const char *word2, size_t word2_len,
+    int next_text_string)
+{
+  const char *res_start= result;
+  const char *res_end= result + result_len - 2;
+  size_t d_len;
+  char b_char;
+
+  while (len)
+  {
+    if (len > word1_len + 1 && strncasecmp(str, word1, word1_len) == 0)
+    {
+      const char *next_s= str + word1_len;
+      size_t c;
+
+      if (next_text_string)
+      {
+        while (*next_s && *next_s != '\'' && *next_s != '"')
+          ++next_s;
+      }
+      else
+      {
+        if (word2)
+        {
+          SKIP_SPACES(next_s);
+          if (len < (next_s - str) + word2_len + 1 ||
+              strncasecmp(next_s, word2, word2_len) != 0)
+            goto no_password;
+          next_s+= word2_len;
+        }
+
+        while (*next_s && *next_s != '\'' && *next_s != '"')
+          ++next_s;
+      }
+
+      d_len= next_s - str;
+      if (result + d_len + 5 > res_end)
+        break;
+
+      for (c=0; c<d_len; c++)
+        result[c]= is_space(str[c]) ? ' ' : str[c];
+
+      memmove(result + d_len, "*****", 5);
+      result+= d_len + 5;
+      b_char= *(next_s++);
+      while (*next_s)
+      {
+        if (*next_s == b_char)
+        {
+          ++next_s;
+          break;
+        }
+        if (*next_s == '\\')
+        {
+          if (next_s[1])
+            next_s++;
+        }
+        next_s++;
+      }
+      len-= next_s - str;
+      str= next_s;
+      continue;
+    }
+no_password:
+    if (result >= res_end)
+      break;
+    if (*str == '\'')
+    {
+      if (result+1 >= res_end)
+        break;
+      *(result++)= '\\';
+      *(result++)= '\'';
+    }
+    else if (*str == '\\')
+    {
+      if (result+1 >= res_end)
+        break;
+      *(result++)= '\\';
+      *(result++)= '\\';
+    }
+    else if (is_space(*str))
+      *(result++)= ' ';
+    else
+      *(result++)= *str;
+    str++;
+    len--;
+  }
+  *result= 0;
+  return result - res_start;
+}
+
+
+
 static int do_log_user(const char *name)
 {
   size_t len;
@@ -998,17 +1242,111 @@ static int do_log_user(const char *name)
 }
 
 
+static int get_next_word(const char *query, char *word)
+{
+  int len= 0;
+  char c;
+  while ((c= query[len]))
+  {
+    if (c >= 'a' && c <= 'z')
+      word[len]= 'A' + (c-'a');
+    else if (c >= 'A' && c <= 'Z')
+      word[len]= c;
+    else
+      break;
+
+    if (len++ == MAX_KEYWORD)
+      return 0;
+  }
+  word[len]= 0;
+  return len;
+}
+
+
+static int filter_query_type(const char *query, struct sa_keyword *kwd)
+{
+  int qwe_in_list;
+  char fword[MAX_KEYWORD + 1], nword[MAX_KEYWORD + 1];
+  int len, nlen= 0;
+  const struct sa_keyword *l_keywords;
+
+  while (*query && (is_space(*query) || *query == '(' || *query == '/'))
+  {
+    /* comment handling */
+    if (*query == '/' && query[1] == '*')
+    {
+      if (query[2] == '!')
+      {
+        query+= 3;
+        while (*query >= '0' && *query <= '9')
+          query++;
+        continue;
+      }
+      query+= 2;
+      while (*query)
+      {
+        if (*query=='*' && query[1] == '/')
+        {
+          query+= 2;
+          break;
+        }
+        query++;
+      }
+      continue;
+    }
+    query++;
+  }
+
+  qwe_in_list= 0;
+  if (!(len= get_next_word(query, fword)))
+    goto not_in_list;
+  query+= len+1;
+
+  l_keywords= kwd;
+  while (l_keywords->length)
+  {
+    if (l_keywords->length == len && strncmp(l_keywords->wd, fword, len) == 0)
+    {
+      if (l_keywords->next)
+      {
+        if (nlen == 0)
+        {
+          while (*query && is_space(*query))
+            query++;
+          nlen= get_next_word(query, nword);
+        }
+        if (l_keywords->next->length != nlen ||
+            strncmp(l_keywords->next->wd, nword, nlen) != 0)
+          goto do_loop;
+      }
+
+      qwe_in_list= l_keywords->type;
+      break;
+    };
+do_loop:
+    l_keywords++;
+  }
+
+not_in_list:
+  return qwe_in_list;
+}
+
+
 static int log_statement_ex(const struct connection_info *cn,
                             time_t ev_time, unsigned long thd_id,
                             const char *query, unsigned int query_len,
                             int error_code, const char *type)
 {
-  size_t csize, esc_q_len;
-  char message[1024];
-  char uh_buffer[768];
+  size_t csize;
+  char message_loc[1024];
+  char *message= message_loc;
+  size_t message_size= sizeof(message_loc);
+  char *uh_buffer;
+  size_t uh_buffer_size;
   const char *db;
   unsigned int db_length;
   long long query_id;
+  int result;
 
   if ((db= cn->db))
     db_length= cn->db_length;
@@ -1021,27 +1359,130 @@ static int log_statement_ex(const struct connection_info *cn,
   if (!(query_id= cn->query_id))
     query_id= query_counter++;
 
-  csize= log_header(message, sizeof(message)-1, &ev_time,
+  if (query == 0)
+  {
+    /* Can happen after the error in mysqld_prepare_stmt() */
+    query= cn->query;
+    query_len= cn->query_length;
+    if (query == 0 || query_len == 0)
+      return 0;
+  }
+
+  if (query && !(events & EVENT_QUERY_ALL) &&
+      (events & EVENT_QUERY))
+  {
+    const char *orig_query= query;
+
+    if (filter_query_type(query, keywords_to_skip))
+    {
+      char fword[MAX_KEYWORD + 1];
+      int len;
+      do
+      {
+        len= get_next_word(query, fword);
+        query+= len ? len : 1;
+        if (len == 3 && strncmp(fword, "FOR", 3) == 0)
+          break;
+      } while (*query);
+
+      if (*query == 0)
+        return 0;
+    }
+
+    if (events & EVENT_QUERY_DDL)
+    {
+      if (!filter_query_type(query, not_ddl_keywords) &&
+          filter_query_type(query, ddl_keywords))
+        goto do_log_query;
+    }
+    if (events & EVENT_QUERY_DML)
+    {
+      if (filter_query_type(query, dml_keywords))
+        goto do_log_query;
+    }
+    if (events & EVENT_QUERY_DCL)
+    {
+      if (filter_query_type(query, dcl_keywords))
+        goto do_log_query;
+    }
+
+    return 0;
+do_log_query:
+    query= orig_query;
+  }
+
+  csize= log_header(message, message_size-1, &ev_time,
                     servhost, servhost_len,
                     cn->user, cn->user_length,cn->host, cn->host_length,
                     cn->ip, cn->ip_length, thd_id, query_id, type);
 
-  csize+= my_snprintf(message+csize, sizeof(message) - 1 - csize,
-      ",%.*s", db_length, db);
+  csize+= my_snprintf(message+csize, message_size - 1 - csize,
+      ",%.*s,\'", db_length, db);
 
-  if (query == 0)
+  if (query_log_limit > 0 && query_len > query_log_limit)
+    query_len= query_log_limit;
+
+  if (query_len > (message_size - csize)/2)
   {
-    /* Can happen after the error in mysqld_prepare_stmt() */
-    query= cn->query;
-    query_len= cn->query_length;
+    flogger_mutex_lock(&lock_bigbuffer);
+    if (big_buffer_alloced < (query_len * 2 + csize))
+    {
+      big_buffer_alloced= (query_len * 2 + csize + 4095) & ~4095L;
+      big_buffer= realloc(big_buffer, big_buffer_alloced);
+      if (big_buffer == NULL)
+      {
+        big_buffer_alloced= 0;
+        return 0;
+      }
+    }
+
+    memcpy(big_buffer, message, csize);
+    message= big_buffer;
+    message_size= big_buffer_alloced;
   }
 
-  esc_q_len= escape_string(query, query_len,
-                           uh_buffer, sizeof(uh_buffer)); 
-  csize+= my_snprintf(message+csize, sizeof(message) - 1 - csize,
-           ",\'%.*s\',%d", esc_q_len, uh_buffer, error_code);
+  uh_buffer= message + csize;
+  uh_buffer_size= message_size - csize;
+  if (query_log_limit > 0 && uh_buffer_size > query_log_limit+2)
+    uh_buffer_size= query_log_limit+2;
+
+  switch (filter_query_type(query, passwd_keywords))
+  {
+    case SQLCOM_GRANT:
+    case SQLCOM_CREATE_USER:
+      csize+= escape_string_hide_passwords(query, query_len,
+                                           uh_buffer, uh_buffer_size,
+                                           "IDENTIFIED", 10, "BY", 2, 0);
+      break;
+    case SQLCOM_CHANGE_MASTER:
+      csize+= escape_string_hide_passwords(query, query_len,
+                                           uh_buffer, uh_buffer_size,
+                                           "MASTER_PASSWORD", 15, "=", 1, 0);
+      break;
+    case SQLCOM_CREATE_SERVER:
+    case SQLCOM_ALTER_SERVER:
+      csize+= escape_string_hide_passwords(query, query_len,
+                                           uh_buffer, uh_buffer_size,
+                                           "PASSWORD", 8, NULL, 0, 0);
+      break;
+    case SQLCOM_SET_OPTION:
+      csize+= escape_string_hide_passwords(query, query_len,
+                                           uh_buffer, uh_buffer_size,
+                                           "=", 1, NULL, 0, 1);
+      break;
+    default:
+      csize+= escape_string(query, query_len,
+                               uh_buffer, uh_buffer_size); 
+      break;
+  }
+  csize+= my_snprintf(message+csize, message_size - 1 - csize,
+                      "\',%d", error_code);
   message[csize]= '\n';
-  return write_log(message, csize + 1);
+  result= write_log(message, csize + 1);
+  if (message == big_buffer)
+    flogger_mutex_unlock(&lock_bigbuffer);
+
+  return result;
 }
 
 
@@ -1386,6 +1827,105 @@ exit_func:
 }
 
 
+#ifdef DBUG_OFF
+  #ifdef __x86_64__
+static const int cmd_off= 4200;
+static const int db_off= 120;
+static const int db_len_off= 128;
+  #else
+static const int cmd_off= 2668;
+static const int db_off= 60;
+static const int db_len_off= 64;
+  #endif /*x86_64*/
+#else
+  #ifdef __x86_64__
+static const int cmd_off= 4432;
+static const int db_off= 120;
+static const int db_len_off= 128;
+  #else
+static const int cmd_off= 2808;
+static const int db_off= 64;
+static const int db_len_off= 68;
+  #endif /*x86_64*/
+#endif /*DBUG_OFF*/
+
+struct mysql_event_general_v8
+{
+  unsigned int event_class;
+  unsigned int event_subclass;
+  int general_error_code;
+  unsigned long general_thread_id;
+  const char *general_user;
+  unsigned int general_user_length;
+  const char *general_command;
+  unsigned int general_command_length;
+  const char *general_query;
+  unsigned int general_query_length;
+  struct charset_info_st *general_charset;
+  unsigned long long general_time;
+  unsigned long long general_rows;
+};
+
+static void auditing_v8(MYSQL_THD thd, struct mysql_event_general_v8 *ev_v8)
+{
+  struct mysql_event_general event;
+
+  if (ev_v8->event_class != MYSQL_AUDIT_GENERAL_CLASS)
+    return;
+
+  event.event_subclass= ev_v8->event_subclass;
+  event.general_error_code= ev_v8->general_error_code;
+  event.general_thread_id= ev_v8->general_thread_id;
+  event.general_user= ev_v8->general_user;
+  event.general_user_length= ev_v8->general_user_length;
+  event.general_command= ev_v8->general_command;
+  event.general_command_length= ev_v8->general_command_length;
+  event.general_query= ev_v8->general_query;
+  event.general_query_length= ev_v8->general_query_length;
+  event.general_charset= ev_v8->general_charset;
+  event.general_time= ev_v8->general_time;
+  event.general_rows= ev_v8->general_rows;
+  event.database= 0;
+  event.database_length= 0;
+
+  if (event.general_query_length > 0)
+  {
+    event.event_subclass= MYSQL_AUDIT_GENERAL_STATUS;
+    event.general_command= "Query";
+    event.general_command_length= 5;
+#ifdef __linux__
+    event.database= *(char **) (((char *) thd) + db_off);
+    event.database_length= *(size_t *) (((char *) thd) + db_len_off);
+#endif /*__linux*/
+  }
+#ifdef __linux__
+  else if (*((int *) (((char *)thd) + cmd_off)) == 2)
+  {
+    event.event_subclass= MYSQL_AUDIT_GENERAL_LOG;
+    event.general_command= "Init DB";
+    event.general_command_length= 7;
+    event.general_query= *(char **) (((char *) thd) + db_off);
+    event.general_query_length= *(size_t *) (((char *) thd) + db_len_off);
+  }
+#endif /*__linux*/
+  auditing(thd, ev_v8->event_class, &event);
+}
+
+
+static void auditing_v13(MYSQL_THD thd, unsigned int *ev_v0)
+{
+  struct mysql_event_general event= *(const struct mysql_event_general *) (ev_v0+1);
+
+  if (event.general_query_length > 0)
+  {
+    event.event_subclass= MYSQL_AUDIT_GENERAL_STATUS;
+    event.general_command= "Query";
+    event.general_command_length= 5;
+  }
+  auditing(thd, ev_v0[0], &event);
+}
+
+
 /*
    As it's just too difficult to #include "sql_class.h",
    let's just copy the necessary part of the system_variables
@@ -1461,15 +2001,19 @@ typedef struct loc_system_variables
   ulong query_cache_type;
 } LOC_SV;
 
+
 static int server_audit_init(void *p __attribute__((unused)))
 {
   const void *my_hash_init_ptr;
+
+  if (!serv_ver)
+  {
 #ifdef _WIN32
-  serv_ver= (const char *) GetProcAddress(0, "server_version");
+    serv_ver= (const char *) GetProcAddress(0, "server_version");
 #else
-  serv_ver= server_version;
+    serv_ver= server_version;
 #endif /*_WIN32*/
-
+  }
   my_hash_init_ptr= dlsym(RTLD_DEFAULT, "_my_hash_init");
   if (!my_hash_init_ptr)
   {
@@ -1477,8 +2021,14 @@ static int server_audit_init(void *p __attribute__((unused)))
     my_hash_init_ptr= dlsym(RTLD_DEFAULT, "my_hash_init2");
   }
 
+  if(!(int_mysql_data_home= dlsym(RTLD_DEFAULT, "mysql_data_home")))
+  {
+    if(!(int_mysql_data_home= dlsym(RTLD_DEFAULT, "?mysql_data_home@@3PADA")))
+      int_mysql_data_home= &default_home;
+  }
+
   if (!serv_ver || !my_hash_init_ptr)
-    return 0;
+    return 1;
 
   if (!started_mysql)
   {
@@ -1489,7 +2039,6 @@ static int server_audit_init(void *p __attribute__((unused)))
     }
   }
 
-
   if (gethostname(servhost, sizeof(servhost)))
     strcpy(servhost, "unknown");
 
@@ -1501,6 +2050,7 @@ static int server_audit_init(void *p __attribute__((unused)))
     PSI_server->register_mutex("server_audit", mutex_key_list, 1);
 #endif
   flogger_mutex_init(key_LOCK_operations, &lock_operations, MY_MUTEX_INIT_FAST);
+  flogger_mutex_init(key_LOCK_operations, &lock_bigbuffer, MY_MUTEX_INIT_FAST);
 
   my_hash_clear(&incl_user_hash);
   my_hash_clear(&excl_user_hash);
@@ -1577,7 +2127,10 @@ static int server_audit_deinit(void *p __attribute__((unused)))
     logger_close(logfile);
   else if (output_type == OUTPUT_SYSLOG)
     closelog();
+
+  (void) free(big_buffer);
   flogger_mutex_destroy(&lock_operations);
+  flogger_mutex_destroy(&lock_bigbuffer);
 
   error_header();
   fprintf(stderr, "STOPPED\n");
@@ -1608,8 +2161,8 @@ mysql_declare_plugin(server_audit)
   MYSQL_AUDIT_PLUGIN,
   &mysql_descriptor,
   "SERVER_AUDIT",
-  " Alexey Botchkov (MariaDB)",
-  "Audit the server activity.",
+  " Alexey Botchkov (MariaDB Corporation)",
+  "Audit the server activity",
   PLUGIN_LICENSE_GPL,
   server_audit_init_mysql,
   server_audit_deinit,
@@ -1636,8 +2189,8 @@ maria_declare_plugin(server_audit)
   MYSQL_AUDIT_PLUGIN,
   &maria_descriptor,
   "SERVER_AUDIT",
-  "Alexey Botchkov (MariaDB)",
-  "Audit the server activity.",
+  "Alexey Botchkov (MariaDB Corporation)",
+  "Audit the server activity",
   PLUGIN_LICENSE_GPL,
   server_audit_init,
   server_audit_deinit,
@@ -1645,7 +2198,7 @@ maria_declare_plugin(server_audit)
   audit_status,
   vars,
   PLUGIN_STR_VERSION,
-  MariaDB_PLUGIN_MATURITY_BETA
+  MariaDB_PLUGIN_MATURITY_GAMMA
 }
 maria_declare_plugin_end;
 
@@ -1678,10 +2231,12 @@ static void update_file_path(MYSQL_THD thd,
               struct st_mysql_sys_var *var  __attribute__((unused)),
               void *var_ptr  __attribute__((unused)), const void *save)
 {
+  char *new_name= (*(char **) save) ? *(char **) save : empty_str;
+
   flogger_mutex_lock(&lock_operations);
   internal_stop_logging= 1;
   error_header();
-  fprintf(stderr, "Log file name was changed to '%s'.\n", *(const char **) save);
+  fprintf(stderr, "Log file name was changed to '%s'.\n", new_name);
 
   if (logging)
     log_current_query(thd);
@@ -1690,7 +2245,7 @@ static void update_file_path(MYSQL_THD thd,
   {
     char *sav_path= file_path;
 
-    file_path= *(char **) save;
+    file_path= new_name;
     internal_stop_logging= 1;
     stop_logging();
     if (start_logging())
@@ -1710,7 +2265,7 @@ static void update_file_path(MYSQL_THD thd,
     internal_stop_logging= 0;
   }
 
-  strncpy(path_buffer, *(const char **) save, sizeof(path_buffer));
+  strncpy(path_buffer, new_name, sizeof(path_buffer));
   file_path= path_buffer;
 exit_func:
   internal_stop_logging= 0;
@@ -1757,9 +2312,10 @@ static void update_incl_users(MYSQL_THD thd,
               struct st_mysql_sys_var *var  __attribute__((unused)),
               void *var_ptr  __attribute__((unused)), const void *save)
 {
+  char *new_users= (*(char **) save) ? *(char **) save : empty_str;
   flogger_mutex_lock(&lock_operations);
   mark_always_logged(thd);
-  strncpy(incl_user_buffer, *(const char **) save, sizeof(incl_user_buffer));
+  strncpy(incl_user_buffer, new_users, sizeof(incl_user_buffer));
   incl_users= incl_user_buffer;
   user_hash_fill(&incl_user_hash, incl_users, &excl_user_hash, 1);
   error_header();
@@ -1772,9 +2328,10 @@ static void update_excl_users(MYSQL_THD thd  __attribute__((unused)),
               struct st_mysql_sys_var *var  __attribute__((unused)),
               void *var_ptr  __attribute__((unused)), const void *save)
 {
+  char *new_users= (*(char **) save) ? *(char **) save : empty_str;
   flogger_mutex_lock(&lock_operations);
   mark_always_logged(thd);
-  strncpy(excl_user_buffer, *(const char **) save, sizeof(excl_user_buffer));
+  strncpy(excl_user_buffer, new_users, sizeof(excl_user_buffer));
   excl_users= excl_user_buffer;
   user_hash_fill(&excl_user_hash, excl_users, &incl_user_hash, 0);
   error_header();
@@ -1899,8 +2456,8 @@ static void update_syslog_ident(MYSQL_THD thd  __attribute__((unused)),
               struct st_mysql_sys_var *var  __attribute__((unused)),
               void *var_ptr  __attribute__((unused)), const void *save)
 {
-  strncpy(syslog_ident_buffer, *(const char **) save,
-          sizeof(syslog_ident_buffer));
+  char *new_ident= (*(char **) save) ? *(char **) save : empty_str;
+  strncpy(syslog_ident_buffer, new_ident, sizeof(syslog_ident_buffer));
   syslog_ident= syslog_ident_buffer;
   error_header();
   fprintf(stderr, "SYSYLOG ident was changed to '%s'\n", syslog_ident);
@@ -1915,3 +2472,48 @@ static void update_syslog_ident(MYSQL_THD thd  __attribute__((unused)),
 }
 
 
+#ifdef _WIN32
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+  if (fdwReason != DLL_PROCESS_ATTACH)
+    return 1;
+
+  serv_ver= (const char *) GetProcAddress(0, "server_version");
+#else
+void __attribute__ ((constructor)) audit_plugin_so_init(void)
+{
+  serv_ver= server_version;
+#endif /*_WIN32*/
+
+  if (!serv_ver)
+    goto exit;
+
+  started_mariadb= strstr(serv_ver, "MariaDB") != 0;
+
+  if (!started_mariadb)
+  {
+    if (serv_ver[0] == '5' && serv_ver[2] == '5')
+    {
+      int sc= serv_ver[4] - '0';
+      if (serv_ver[5] >= '0' && serv_ver[5] <= '9')
+        sc= sc * 10 + serv_ver[5] - '0';
+      if (sc <= 10)
+      {
+        mysql_descriptor.interface_version= 0x0200;
+        mysql_descriptor.event_notify= (void *) auditing_v8;
+      }
+      else if (sc < 14)
+      {
+        mysql_descriptor.interface_version= 0x0200;
+        mysql_descriptor.event_notify= (void *) auditing_v13;
+      }
+    }
+  }
+exit:
+#ifdef _WIN32
+  return 1;
+#else
+  return;
+#endif
+}
+
diff --git a/scripts/mysql_install_db.pl.in b/scripts/mysql_install_db.pl.in
index 03b7931..dcb7d77 100644
--- a/scripts/mysql_install_db.pl.in
+++ b/scripts/mysql_install_db.pl.in
@@ -65,8 +65,8 @@ Usage: $0 [OPTIONS]
                        Read this file after the global files are read.
   --defaults-file=name Only read default options from the given file name.
   --force              Causes mysql_install_db to run even if DNS does not
-                       work.  In that case, grant table entries that normally
-                       use hostnames will use IP addresses.
+                       work.  In that case, grant table entries that
+                       normally use hostnames will use IP addresses.
   --help               Display this help and exit.                     
   --ldata=path         The path to the MySQL data directory. Same as --datadir.
   --no-defaults        Don't read default options from any option file.
diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh
index 8da0922..5d53b25 100644
--- a/scripts/mysql_install_db.sh
+++ b/scripts/mysql_install_db.sh
@@ -50,8 +50,8 @@ Usage: $0 [OPTIONS]
                        Read this file after the global files are read.
   --defaults-file=name Only read default options from the given file name.
   --force              Causes mysql_install_db to run even if DNS does not
-                       work.  In that case, grant table entries that normally
-                       use hostnames will use IP addresses.
+                       work.  In that case, grant table entries that
+                       normally use hostnames will use IP addresses.
   --help               Display this help and exit.                     
   --ldata=path         The path to the MariaDB data directory. Same as
                        --datadir.
diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh
index e5e0b76..7f18abb 100644
--- a/scripts/mysqld_safe.sh
+++ b/scripts/mysqld_safe.sh
@@ -28,6 +28,7 @@ syslog_tag=
 user='@MYSQLD_USER@'
 pid_file=
 err_log=
+err_log_base=
 
 syslog_tag_mysqld=mysqld
 syslog_tag_mysqld_safe=mysqld_safe
@@ -208,7 +209,7 @@ parse_arguments() {
       --user=*) user="$val"; SET_USER=1 ;;
       --log-basename=*|--hostname=*|--loose-log-basename=*)
         pid_file="$val.pid";
-	err_log="$val.err";
+	err_log_base="$val";
 	;;
 
       # these might have been set in a [mysqld_safe] section of my.cnf
@@ -527,7 +528,7 @@ if [ -n "${PLUGIN_DIR}" ]; then
   plugin_dir="${PLUGIN_DIR}"
 else
   # Try to find plugin dir relative to basedir
-  for dir in lib/mysql/plugin lib/plugin
+  for dir in lib64/mysql/plugin lib64/plugin lib/mysql/plugin lib/plugin
   do
     if [ -d "${MY_BASEDIR_VERSION}/${dir}" ]; then
       plugin_dir="${MY_BASEDIR_VERSION}/${dir}"
@@ -577,7 +578,16 @@ then
       * ) err_log="$DATADIR/$err_log" ;;
     esac
   else
-    err_log=$DATADIR/`@HOSTNAME@`.err
+    if [ -n "$err_log_base" ]
+    then
+      err_log=$err_log_base.err
+      case "$err_log" in
+        /* ) ;;
+        * ) err_log="$DATADIR/$err_log" ;;
+      esac
+    else
+      err_log=$DATADIR/`@HOSTNAME@`.err
+    fi
   fi
 
   append_arg_to_args "--log-error=$err_log"
@@ -586,6 +596,7 @@ then
   then
     # User explicitly asked for syslog, so warn that it isn't used
     log_error "Can't log to error log and syslog at the same time.  Remove all --log-error configuration options for --syslog to take effect."
+    want_syslog=0
   fi
 
   # Log to err_log file
diff --git a/sql-bench/test-table-elimination.sh b/sql-bench/test-table-elimination.sh
index 5b49468..7772cab 100755
--- a/sql-bench/test-table-elimination.sh
+++ b/sql-bench/test-table-elimination.sh
@@ -1,4 +1,4 @@
-#!@PERL@
+#!/usr/bin/perl
 # Test of table elimination feature
 
 use Cwd;
diff --git a/sql-common/client.c b/sql-common/client.c
index 6938739..ac372a4 100644
--- a/sql-common/client.c
+++ b/sql-common/client.c
@@ -1,5 +1,5 @@
-/* Copyright (c) 2003, 2013, Oracle and/or its affiliates.
-   Copyright (c) 2009, 2013, Monty Program Ab
+/* Copyright (c) 2003, 2014, Oracle and/or its affiliates.
+   Copyright (c) 2009, 2015, MariaDB
 
    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
@@ -118,6 +118,7 @@ my_bool	net_flush(NET *net);
 #define native_password_plugin_name "mysql_native_password"
 #define old_password_plugin_name    "mysql_old_password"
 
+uint            mariadb_deinitialize_ssl= 1;
 uint		mysql_port=0;
 char		*mysql_unix_port= 0;
 const char	*unknown_sqlstate= "HY000";
@@ -1884,7 +1885,7 @@ static int ssl_verify_server_cert(Vio *vio, const char* server_hostname, const c
   SSL *ssl;
   X509 *server_cert;
   char *cp1, *cp2;
-  char buf[256];
+  char *buf;
   DBUG_ENTER("ssl_verify_server_cert");
   DBUG_PRINT("enter", ("server_hostname: %s", server_hostname));
 
@@ -1918,9 +1919,15 @@ static int ssl_verify_server_cert(Vio *vio, const char* server_hostname, const c
     are what we expect.
   */
 
-  X509_NAME_oneline(X509_get_subject_name(server_cert), buf, sizeof(buf));
+  buf= X509_NAME_oneline(X509_get_subject_name(server_cert), 0, 0);
   X509_free (server_cert);
 
+  if (!buf)
+  {
+    *errptr= "Out of memory";
+    DBUG_RETURN(1);
+  }
+
   DBUG_PRINT("info", ("hostname in cert: %s", buf));
   cp1= strstr(buf, "/CN=");
   if (cp1)
@@ -1933,11 +1940,13 @@ static int ssl_verify_server_cert(Vio *vio, const char* server_hostname, const c
     DBUG_PRINT("info", ("Server hostname in cert: %s", cp1));
     if (!strcmp(cp1, server_hostname))
     {
+      free(buf);
       /* Success */
       DBUG_RETURN(0);
     }
   }
   *errptr= "SSL certificate validation failure";
+  free(buf);
   DBUG_RETURN(1);
 }
 
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
index 1195197..7172294 100644
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -1,4 +1,5 @@
-# Copyright (c) 2006, 2013, Oracle and/or its affiliates.
+# Copyright (c) 2006, 2014, Oracle and/or its affiliates.
+# Copyright (c) 2010, 2015, MariaDB
 # 
 # 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
@@ -253,14 +254,15 @@ IF(WIN32 OR HAVE_DLOPEN AND NOT DISABLE_SHARED)
 ENDIF()
 
 FOREACH(tool glibtoolize libtoolize aclocal autoconf autoheader automake gtar 
- tar bzr)
+ tar git)
  STRING(TOUPPER ${tool}  TOOL)
  FIND_PROGRAM(${TOOL}_EXECUTABLE ${tool} DOC "path to the executable")
  MARK_AS_ADVANCED(${TOOL}_EXECUTABLE)
 ENDFOREACH()
 
 CONFIGURE_FILE(
-  ${CMAKE_SOURCE_DIR}/cmake/make_dist.cmake.in ${CMAKE_BINARY_DIR}/make_dist.cmake @ONLY)
+  ${CMAKE_SOURCE_DIR}/cmake/make_dist.cmake.in
+  ${CMAKE_BINARY_DIR}/make_dist.cmake @ONLY)
 
 ADD_CUSTOM_TARGET(dist 
   COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/make_dist.cmake
@@ -270,8 +272,7 @@ ADD_CUSTOM_TARGET(dist
 
 ADD_CUSTOM_TARGET(distclean
   COMMAND ${CMAKE_COMMAND} -E echo  WARNING: distclean target is not functional
-  COMMAND ${CMAKE_COMMAND} -E echo  Use 'bzr clean-tree' with --unknown and/or
-    --ignored parameter instead
+  COMMAND ${CMAKE_COMMAND} -E echo  Use 'git clean -fdx' instead
   VERBATIM
   )
 
diff --git a/sql/field.h b/sql/field.h
index c2a26f2..a43b3b5 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -1982,6 +1982,14 @@ public:
   int  store(longlong nr, bool unsigned_val);
   int  store_decimal(const my_decimal *);
   uint size_of() const { return sizeof(*this); }
+  /**
+   Key length is provided only to support hash joins. (compared byte for byte)
+   Ex: SELECT .. FROM t1,t2 WHERE t1.field_geom1=t2.field_geom2.
+
+   The comparison is not very relevant, as identical geometry might be
+   represented differently, but we need to support it either way.
+  */
+  uint32 key_length() const { return packlength; }
 
   /**
     Non-nullable GEOMETRY types cannot have defaults,
diff --git a/sql/handler.cc b/sql/handler.cc
index 086a653..7e756ff 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -86,9 +86,7 @@ static const LEX_STRING sys_table_aliases[]=
 };
 
 const char *ha_row_type[] = {
-  "", "FIXED", "DYNAMIC", "COMPRESSED", "REDUNDANT", "COMPACT",
-  "PAGE",
-  "?","?","?"
+  "", "FIXED", "DYNAMIC", "COMPRESSED", "REDUNDANT", "COMPACT", "PAGE"
 };
 
 const char *tx_isolation_names[] =
diff --git a/sql/handler.h b/sql/handler.h
index 5c902e6..642a922 100644
--- a/sql/handler.h
+++ b/sql/handler.h
@@ -369,9 +369,10 @@ enum legacy_db_type
 
 enum row_type { ROW_TYPE_NOT_USED=-1, ROW_TYPE_DEFAULT, ROW_TYPE_FIXED,
 		ROW_TYPE_DYNAMIC, ROW_TYPE_COMPRESSED,
-		ROW_TYPE_REDUNDANT, ROW_TYPE_COMPACT,
-                /** Unused. Reserved for future versions. */
-                ROW_TYPE_PAGE };
+		ROW_TYPE_REDUNDANT, ROW_TYPE_COMPACT, ROW_TYPE_PAGE };
+
+/* not part of the enum, so that it shouldn't be in switch(row_type) */
+#define ROW_TYPE_MAX ((uint)ROW_TYPE_PAGE + 1)
 
 enum enum_binlog_func {
   BFN_RESET_LOGS=        1,
@@ -1248,7 +1249,7 @@ class partition_info;
 struct st_partition_iter;
 #define NOT_A_PARTITION_ID ((uint32)-1)
 
-enum ha_choice { HA_CHOICE_UNDEF, HA_CHOICE_NO, HA_CHOICE_YES };
+enum ha_choice { HA_CHOICE_UNDEF, HA_CHOICE_NO, HA_CHOICE_YES, HA_CHOICE_MAX };
 
 typedef struct st_ha_create_information
 {
diff --git a/sql/item.cc b/sql/item.cc
index cfc5f67..87336dc 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -7949,6 +7949,7 @@ bool Item_direct_view_ref::fix_fields(THD *thd, Item **reference)
     return TRUE;
   if (view->table && view->table->maybe_null)
     maybe_null= TRUE;
+  set_null_ref_table();
   return FALSE;
 }
 
@@ -9790,13 +9791,30 @@ void Item_ref::update_used_tables()
     (*ref)->update_used_tables();
 }
 
+void Item_direct_view_ref::update_used_tables()
+{
+  set_null_ref_table();
+  Item_direct_ref::update_used_tables();
+}
+
+
 table_map Item_direct_view_ref::used_tables() const
 {
-  return get_depended_from() ?
-         OUTER_REF_TABLE_BIT :
-         ((view->is_merged_derived() || view->merged || !view->table) ?
-          (*ref)->used_tables() :
-          view->table->map);
+  DBUG_ASSERT(null_ref_table);
+
+  if (get_depended_from())
+    return OUTER_REF_TABLE_BIT;
+
+  if (view->is_merged_derived() || view->merged || !view->table)
+  {
+    table_map used= (*ref)->used_tables();
+    return (used ?
+            used :
+            ((null_ref_table != NO_NULL_TABLE) ?
+             null_ref_table->map :
+             (table_map)0 ));
+  }
+  return view->table->map;
 }
 
 table_map Item_direct_view_ref::not_null_tables() const
diff --git a/sql/item.h b/sql/item.h
index ed50605..ac4fa86 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -1,8 +1,8 @@
 #ifndef SQL_ITEM_INCLUDED
 #define SQL_ITEM_INCLUDED
 
-/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
-   Copyright (c) 2009, 2013 Monty Program Ab.
+/* Copyright (c) 2000, 2015, Oracle and/or its affiliates.
+   Copyright (c) 2009, 2015 Monty Program Ab.
 
    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
@@ -3315,13 +3315,16 @@ class Item_direct_view_ref :public Item_direct_ref
 
 #define NO_NULL_TABLE (reinterpret_cast<TABLE *>(0x1))
 
+  void set_null_ref_table()
+  {
+    if (!view->is_inner_table_of_outer_join() ||
+        !(null_ref_table= view->get_real_join_table()))
+      null_ref_table= NO_NULL_TABLE;
+  }
+
   bool check_null_ref()
   {
-    if (null_ref_table == NULL)
-    {
-      if (!(null_ref_table= view->get_real_join_table()))
-        null_ref_table= NO_NULL_TABLE;
-    }
+    DBUG_ASSERT(null_ref_table);
     if (null_ref_table != NO_NULL_TABLE && null_ref_table->null_row)
     {
       null_value= 1;
@@ -3329,6 +3332,7 @@ class Item_direct_view_ref :public Item_direct_ref
     }
     return FALSE;
   }
+
 public:
   Item_direct_view_ref(Name_resolution_context *context_arg, Item **item,
                        const char *table_name_arg,
@@ -3336,7 +3340,11 @@ public:
                        TABLE_LIST *view_arg)
     :Item_direct_ref(context_arg, item, table_name_arg, field_name_arg),
     item_equal(0), view(view_arg),
-    null_ref_table(NULL) {}
+    null_ref_table(NULL)
+  {
+    if (fixed)
+      set_null_ref_table();
+  }
 
   bool fix_fields(THD *, Item **);
   bool eq(const Item *item, bool binary_cmp) const;
@@ -3353,8 +3361,10 @@ public:
   bool subst_argument_checker(uchar **arg);
   Item *equal_fields_propagator(uchar *arg);
   Item *replace_equal_field(uchar *arg);
-  table_map used_tables() const;	
+  table_map used_tables() const;
+  void update_used_tables();
   table_map not_null_tables() const;
+  bool const_item() const { return used_tables() == 0; }
   bool walk(Item_processor processor, bool walk_subquery, uchar *arg)
   { 
     return (*ref)->walk(processor, walk_subquery, arg) ||
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 93eafdf..ed08555 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -1,5 +1,5 @@
 /* Copyright (c) 2000, 2014, Oracle and/or its affiliates.
-   Copyright (c) 2009, 2014, Monty Program Ab.
+   Copyright (c) 2009, 2015, MariaDB
 
    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
@@ -3659,8 +3659,12 @@ bool udf_handler::get_arguments()
 	{
 	  f_args.args[i]=    (char*) res->ptr();
 	  f_args.lengths[i]= res->length();
-	  break;
 	}
+	else
+	{
+	  f_args.lengths[i]= 0;
+	}
+	break;
       }
     case INT_RESULT:
       *((longlong*) to) = args[i]->val_int();
@@ -4482,6 +4486,11 @@ longlong Item_func_sleep::val_int()
 
   mysql_cond_destroy(&cond);
 
+  DBUG_EXECUTE_IF("sleep_inject_query_done_debug_sync", {
+      debug_sync_set_action
+        (thd, STRING_WITH_LEN("dispatch_command_end SIGNAL query_done"));
+    };);
+
   return test(!error); 		// Return 1 killed
 }
 
diff --git a/sql/item_geofunc.cc b/sql/item_geofunc.cc
index a38e9d4..5e1c0ad 100644
--- a/sql/item_geofunc.cc
+++ b/sql/item_geofunc.cc
@@ -1286,6 +1286,13 @@ String *Item_func_buffer::val_str(String *str_value)
 
   if (dist > 0.0)
     mbr.buffer(dist);
+  else
+  {
+    /* This happens when dist is too far negative. */
+    if (mbr.xmax + dist < mbr.xmin || mbr.ymax + dist < mbr.ymin)
+      goto return_empty_result;
+  }
+
   collector.set_extent(mbr.xmin, mbr.xmax, mbr.ymin, mbr.ymax);
   /*
     If the distance given is 0, the Buffer function is in fact NOOP,
@@ -1313,6 +1320,7 @@ String *Item_func_buffer::val_str(String *str_value)
     goto mem_error;
 
 
+return_empty_result:
   str_value->set_charset(&my_charset_bin);
   if (str_value->reserve(SRID_SIZE, 512))
     goto mem_error;
diff --git a/sql/item_geofunc.h b/sql/item_geofunc.h
index 2d715dc..a2a6175 100644
--- a/sql/item_geofunc.h
+++ b/sql/item_geofunc.h
@@ -116,7 +116,7 @@ class Item_func_point: public Item_geometry_func
 public:
   Item_func_point(Item *a, Item *b): Item_geometry_func(a, b) {}
   Item_func_point(Item *a, Item *b, Item *srid): Item_geometry_func(a, b, srid) {}
-  const char *func_name() const { return "st_point"; }
+  const char *func_name() const { return "point"; }
   String *val_str(String *);
   Field::geometry_type get_geometry_type() const;
 };
diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h
index fcc1991..7606c28 100644
--- a/sql/item_strfunc.h
+++ b/sql/item_strfunc.h
@@ -827,7 +827,6 @@ public:
   Item_func_conv_charset(Item *a, CHARSET_INFO *cs, bool cache_if_const) 
     :Item_str_func(a) 
   {
-    DBUG_ASSERT(args[0]->fixed);
     conv_charset= cs;
     if (cache_if_const && args[0]->const_item() && !args[0]->is_expensive())
     {
diff --git a/sql/lex.h b/sql/lex.h
index 9bf4c43..6541140 100644
--- a/sql/lex.h
+++ b/sql/lex.h
@@ -376,6 +376,7 @@ static SYMBOL symbols[] = {
   { "MULTIPOINT",	SYM(MULTIPOINT)},
   { "MULTIPOLYGON",	SYM(MULTIPOLYGON)},
   { "MUTEX",  SYM(MUTEX_SYM)},
+  { "MYSQL",            SYM(MYSQL_SYM)},
   { "MYSQL_ERRNO",      SYM(MYSQL_ERRNO_SYM)},
   { "NAME",             SYM(NAME_SYM)},
   { "NAMES",		SYM(NAMES_SYM)},
diff --git a/sql/log.cc b/sql/log.cc
index b639ff8..9722f20 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -2359,6 +2359,8 @@ bool MYSQL_LOG::open(
   char buff[FN_REFLEN];
   MY_STAT f_stat;
   File file= -1;
+  my_off_t seek_offset;
+  bool is_fifo = false;
   int open_flags= O_CREAT | O_BINARY;
   DBUG_ENTER("MYSQL_LOG::open");
   DBUG_PRINT("enter", ("log_type: %d", (int) log_type_arg));
@@ -2375,15 +2377,17 @@ bool MYSQL_LOG::open(
                                  log_type_arg, io_cache_type_arg))
     goto err;
 
-  /* File is regular writable file */
-  if (my_stat(log_file_name, &f_stat, MYF(0)) && !MY_S_ISREG(f_stat.st_mode))
-    goto err;
+  is_fifo = my_stat(log_file_name, &f_stat, MYF(0)) &&
+            MY_S_ISFIFO(f_stat.st_mode);
 
   if (io_cache_type == SEQ_READ_APPEND)
     open_flags |= O_RDWR | O_APPEND;
   else
     open_flags |= O_WRONLY | (log_type == LOG_BIN ? 0 : O_APPEND);
 
+  if (is_fifo)
+    open_flags |= O_NONBLOCK;
+
   db[0]= 0;
 
 #ifdef HAVE_PSI_INTERFACE
@@ -2391,11 +2395,16 @@ bool MYSQL_LOG::open(
   m_log_file_key= log_file_key;
 #endif
 
-  if ((file= mysql_file_open(log_file_key,
-                             log_file_name, open_flags,
-                             MYF(MY_WME | ME_WAITTANG))) < 0 ||
-      init_io_cache(&log_file, file, IO_SIZE, io_cache_type,
-                    mysql_file_tell(file, MYF(MY_WME)), 0,
+  if ((file= mysql_file_open(log_file_key, log_file_name, open_flags,
+                             MYF(MY_WME | ME_WAITTANG))) < 0)
+    goto err;
+
+  if (is_fifo)
+    seek_offset= 0;
+  else if ((seek_offset= mysql_file_tell(file, MYF(MY_WME))))
+    goto err;
+
+  if (init_io_cache(&log_file, file, IO_SIZE, io_cache_type, seek_offset, 0,
                     MYF(MY_WME | MY_NABP |
                         ((log_type == LOG_BIN) ? MY_WAIT_IF_FULL : 0))))
     goto err;
@@ -2484,17 +2493,17 @@ void MYSQL_LOG::close(uint exiting)
   {
     end_io_cache(&log_file);
 
-    if (mysql_file_sync(log_file.file, MYF(MY_WME)) && ! write_error)
+    if (log_type == LOG_BIN && mysql_file_sync(log_file.file, MYF(MY_WME)) && ! write_error)
     {
       write_error= 1;
-      sql_print_error(ER(ER_ERROR_ON_WRITE), name, errno);
+      sql_print_error(ER_THD_OR_DEFAULT(current_thd, ER_ERROR_ON_WRITE), name, errno);
     }
 
     if (!(exiting & LOG_CLOSE_DELAYED_CLOSE) &&
         mysql_file_close(log_file.file, MYF(MY_WME)) && ! write_error)
     {
       write_error= 1;
-      sql_print_error(ER(ER_ERROR_ON_WRITE), name, errno);
+      sql_print_error(ER_THD_OR_DEFAULT(current_thd, ER_ERROR_ON_WRITE), name, errno);
     }
   }
 
@@ -5784,6 +5793,10 @@ bool MYSQL_BIN_LOG::write_incident(THD *thd)
     if (check_purge)
       purge();
   }
+  else
+  {
+    mysql_mutex_unlock(&LOCK_log);
+  }
 
   DBUG_RETURN(error);
 }
@@ -6094,6 +6107,8 @@ MYSQL_BIN_LOG::trx_group_commit_leader(group_commit_entry *leader)
         last_in_queue->commit_errno= errno;
         check_purge= false;
       }
+      /* In case of binlog rotate, update the correct current binlog offset. */
+      commit_offset= my_b_write_tell(&log_file);
     }
   }
 
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 52b56f1..0178f92 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -1,5 +1,5 @@
-/* Copyright (c) 2000, 2014, Oracle and/or its affiliates.
-   Copyright (c) 2008, 2014, SkySQL Ab.
+/* Copyright (c) 2000, 2015, Oracle and/or its affiliates.
+   Copyright (c) 2008, 2015, SkySQL Ab.
 
    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
@@ -2031,7 +2031,8 @@ static struct passwd *check_user(const char *user)
   {
     if (!opt_bootstrap && !opt_help)
     {
-      sql_print_error("Fatal error: Please read \"Security\" section of the manual to find out how to run mysqld as root!\n");
+      sql_print_error("Fatal error: Please consult the Knowledge Base "
+                      "to find out how to run mysqld as root!\n");
       unireg_abort(1);
     }
     return NULL;
@@ -3607,6 +3608,10 @@ static int init_common_variables()
     return 1;
   set_server_version();
 
+  if (!opt_help)
+    sql_print_information("%s (mysqld %s) starting as process %lu ...",
+                          my_progname, server_version, (ulong) getpid());
+
 #ifndef EMBEDDED_LIBRARY
   if (opt_abort && !opt_verbose)
     unireg_abort(0);
@@ -6625,12 +6630,10 @@ static int show_rpl_status(THD *thd, SHOW_VAR *var, char *buff)
 static int show_slave_running(THD *thd, SHOW_VAR *var, char *buff)
 {
   var->type= SHOW_MY_BOOL;
-  mysql_mutex_lock(&LOCK_active_mi);
   var->value= buff;
   *((my_bool *)buff)= (my_bool) (active_mi && 
                                  active_mi->slave_running == MYSQL_SLAVE_RUN_CONNECT &&
                                  active_mi->rli.slave_running);
-  mysql_mutex_unlock(&LOCK_active_mi);
   return 0;
 }
 
@@ -6640,41 +6643,32 @@ static int show_slave_retried_trans(THD *thd, SHOW_VAR *var, char *buff)
     TODO: with multimaster, have one such counter per line in
     SHOW SLAVE STATUS, and have the sum over all lines here.
   */
-  mysql_mutex_lock(&LOCK_active_mi);
   if (active_mi)
   {
     var->type= SHOW_LONG;
     var->value= buff;
-    mysql_mutex_lock(&active_mi->rli.data_lock);
     *((long *)buff)= (long)active_mi->rli.retried_trans;
-    mysql_mutex_unlock(&active_mi->rli.data_lock);
   }
   else
     var->type= SHOW_UNDEF;
-  mysql_mutex_unlock(&LOCK_active_mi);
   return 0;
 }
 
 static int show_slave_received_heartbeats(THD *thd, SHOW_VAR *var, char *buff)
 {
-  mysql_mutex_lock(&LOCK_active_mi);
   if (active_mi)
   {
     var->type= SHOW_LONGLONG;
     var->value= buff;
-    mysql_mutex_lock(&active_mi->rli.data_lock);
     *((longlong *)buff)= active_mi->received_heartbeats;
-    mysql_mutex_unlock(&active_mi->rli.data_lock);
   }
   else
     var->type= SHOW_UNDEF;
-  mysql_mutex_unlock(&LOCK_active_mi);
   return 0;
 }
 
 static int show_heartbeat_period(THD *thd, SHOW_VAR *var, char *buff)
 {
-  mysql_mutex_lock(&LOCK_active_mi);
   if (active_mi)
   {
     var->type= SHOW_CHAR;
@@ -6683,7 +6677,6 @@ static int show_heartbeat_period(THD *thd, SHOW_VAR *var, char *buff)
   }
   else
     var->type= SHOW_UNDEF;
-  mysql_mutex_unlock(&LOCK_active_mi);
   return 0;
 }
 
diff --git a/sql/opt_subselect.cc b/sql/opt_subselect.cc
index 794b4f9..ebf640c 100644
--- a/sql/opt_subselect.cc
+++ b/sql/opt_subselect.cc
@@ -1610,9 +1610,20 @@ static bool convert_subq_to_sj(JOIN *parent_join, Item_in_subselect *subq_pred)
       sj_nest->sj_on_expr= and_items(sj_nest->sj_on_expr, item_eq);
     }
   }
-  /* Fix the created equality and AND */
-  if (!sj_nest->sj_on_expr->fixed)
-    sj_nest->sj_on_expr->fix_fields(parent_join->thd, &sj_nest->sj_on_expr);
+  /*
+    Fix the created equality and AND
+
+    Note that fix_fields() can actually fail in a meaningful way here. One
+    example is when the IN-equality is not valid, because it compares columns
+    with incompatible collations. (One can argue it would be more appropriate
+    to check for this at name resolution stage, but as a legacy of IN->EXISTS
+    we have in here).
+  */
+  if (!sj_nest->sj_on_expr->fixed &&
+      sj_nest->sj_on_expr->fix_fields(parent_join->thd, &sj_nest->sj_on_expr))
+  {
+    DBUG_RETURN(TRUE);
+  }
 
   /*
     Walk through sj nest's WHERE and ON expressions and call
@@ -1631,12 +1642,15 @@ static bool convert_subq_to_sj(JOIN *parent_join, Item_in_subselect *subq_pred)
   /* Inject sj_on_expr into the parent's WHERE or ON */
   if (emb_tbl_nest)
   {
-    emb_tbl_nest->on_expr= and_items(emb_tbl_nest->on_expr, 
+    emb_tbl_nest->on_expr= and_items(emb_tbl_nest->on_expr,
                                      sj_nest->sj_on_expr);
     emb_tbl_nest->on_expr->top_level_item();
-    if (!emb_tbl_nest->on_expr->fixed)
-      emb_tbl_nest->on_expr->fix_fields(parent_join->thd,
-                                        &emb_tbl_nest->on_expr);
+    if (!emb_tbl_nest->on_expr->fixed &&
+         emb_tbl_nest->on_expr->fix_fields(parent_join->thd,
+                                           &emb_tbl_nest->on_expr))
+    {
+      DBUG_RETURN(TRUE);
+    }
   }
   else
   {
@@ -1649,8 +1663,12 @@ static bool convert_subq_to_sj(JOIN *parent_join, Item_in_subselect *subq_pred)
     */
     save_lex= thd->lex->current_select;
     thd->lex->current_select=parent_join->select_lex;
-    if (!parent_join->conds->fixed)
-      parent_join->conds->fix_fields(parent_join->thd, &parent_join->conds);
+    if (!parent_join->conds->fixed &&
+         parent_join->conds->fix_fields(parent_join->thd,
+                                        &parent_join->conds))
+    {
+      DBUG_RETURN(1);
+    }
     thd->lex->current_select=save_lex;
     parent_join->select_lex->where= parent_join->conds;
   }
@@ -2504,10 +2522,16 @@ void advance_sj_state(JOIN *join, table_map remaining_tables, uint idx,
     LooseScan detector in best_access_path)
   */
   remaining_tables &= ~new_join_tab->table->map;
-  pos->prefix_dups_producing_tables= join->cur_dups_producing_tables;
+  table_map dups_producing_tables;
+
+  if (idx == join->const_tables)
+    dups_producing_tables= 0;
+  else
+    dups_producing_tables= pos[-1].dups_producing_tables;
+
   TABLE_LIST *emb_sj_nest;
   if ((emb_sj_nest= new_join_tab->emb_sj_nest))
-    join->cur_dups_producing_tables |= emb_sj_nest->sj_inner_tables;
+    dups_producing_tables |= emb_sj_nest->sj_inner_tables;
 
   Semi_join_strategy_picker **strategy;
   if (idx == join->const_tables)
@@ -2560,7 +2584,7 @@ void advance_sj_state(JOIN *join, table_map remaining_tables, uint idx,
                    fanout from semijoin X.
                 3. We have no clue what to do about fanount of semi-join Y.
         */
-        if ((join->cur_dups_producing_tables & handled_fanout) ||
+        if ((dups_producing_tables & handled_fanout) ||
             (read_time < *current_read_time && 
              !(handled_fanout & pos->inner_tables_handled_with_other_sjs)))
         {
@@ -2573,7 +2597,7 @@ void advance_sj_state(JOIN *join, table_map remaining_tables, uint idx,
             join->sjm_lookup_tables &= ~handled_fanout;
           *current_read_time= read_time;
           *current_record_count= rec_count;
-          join->cur_dups_producing_tables &= ~handled_fanout;
+          dups_producing_tables &= ~handled_fanout;
           //TODO: update bitmap of semi-joins that were handled together with
           // others.
           if (is_multiple_semi_joins(join, join->positions, idx, handled_fanout))
@@ -2600,6 +2624,7 @@ void advance_sj_state(JOIN *join, table_map remaining_tables, uint idx,
 
   pos->prefix_cost.convert_from_cost(*current_read_time);
   pos->prefix_record_count= *current_record_count;
+  pos->dups_producing_tables= dups_producing_tables;
 }
 
 
@@ -3111,8 +3136,6 @@ void restore_prev_sj_state(const table_map remaining_tables,
       tab->join->cur_sj_inner_tables &= ~emb_sj_nest->sj_inner_tables;
     }
   }
-  POSITION *pos= tab->join->positions + idx;
-  tab->join->cur_dups_producing_tables= pos->prefix_dups_producing_tables;
 }
 
 
diff --git a/sql/opt_subselect.h b/sql/opt_subselect.h
index 0a74abe..e4d679f 100644
--- a/sql/opt_subselect.h
+++ b/sql/opt_subselect.h
@@ -298,7 +298,7 @@ public:
 };
 
 
-extern void advance_sj_state(JOIN *join, table_map remaining_tables, uint idx,
+void advance_sj_state(JOIN *join, table_map remaining_tables, uint idx,
                       double *current_record_count, double *current_read_time,
                       POSITION *loose_scan_pos);
 void restore_prev_sj_state(const table_map remaining_tables, 
diff --git a/sql/slave.cc b/sql/slave.cc
index f224de2..a03deb1 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -1,5 +1,5 @@
-/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
-   Copyright (c) 2008, 2014, SkySQL Ab.
+/* Copyright (c) 2000, 2015, Oracle and/or its affiliates.
+   Copyright (c) 2008, 2015, SkySQL Ab.
 
    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
@@ -4717,7 +4717,23 @@ static int connect_to_master(THD* thd, MYSQL* mysql, Master_info* mi,
   }
 #endif
 
-  mysql_options(mysql, MYSQL_SET_CHARSET_NAME, default_charset_info->csname);
+  /*
+    If server's default charset is not supported (like utf16, utf32) as client
+    charset, then set client charset to 'latin1' (default client charset).
+  */
+  if (is_supported_parser_charset(default_charset_info))
+    mysql_options(mysql, MYSQL_SET_CHARSET_NAME, default_charset_info->csname);
+  else
+  {
+    sql_print_information("'%s' can not be used as client character set. "
+                          "'%s' will be used as default client character set "
+                          "while connecting to master.",
+                          default_charset_info->csname,
+                          default_client_charset_info->csname);
+    mysql_options(mysql, MYSQL_SET_CHARSET_NAME,
+                  default_client_charset_info->csname);
+  }
+
   /* This one is not strictly needed but we have it here for completeness */
   mysql_options(mysql, MYSQL_SET_CHARSET_DIR, (char *) charsets_dir);
 
diff --git a/sql/sp.cc b/sql/sp.cc
index 13f0274..254c9c5 100644
--- a/sql/sp.cc
+++ b/sql/sp.cc
@@ -1,5 +1,6 @@
 /*
-   Copyright (c) 2002, 2011, Oracle and/or its affiliates.
+   Copyright (c) 2002, 2015, Oracle and/or its affiliates.
+   Copyright (c) 2009, 2015, MariaDB
 
    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
@@ -1494,6 +1495,9 @@ bool lock_db_routines(THD *thd, char *db)
     {
       char *sp_name= get_field(thd->mem_root,
                                table->field[MYSQL_PROC_FIELD_NAME]);
+      if (sp_name == NULL) // skip invalid sp names (hand-edited mysql.proc?)
+        continue;
+
       longlong sp_type= table->field[MYSQL_PROC_MYSQL_TYPE]->val_int();
       MDL_request *mdl_request= new (thd->mem_root) MDL_request;
       mdl_request->init(sp_type == TYPE_ENUM_FUNCTION ?
diff --git a/sql/sql_admin.cc b/sql/sql_admin.cc
index 92aa414..44057b6 100644
--- a/sql/sql_admin.cc
+++ b/sql/sql_admin.cc
@@ -314,7 +314,8 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
                                                   HA_CHECK_OPT *),
                               int (handler::*operator_func)(THD *,
                                                             HA_CHECK_OPT *),
-                              int (view_operator_func)(THD *, TABLE_LIST*))
+                              int (view_operator_func)(THD *, TABLE_LIST*,
+                                                       HA_CHECK_OPT *))
 {
   TABLE_LIST *table;
   SELECT_LEX *select= &thd->lex->select_lex;
@@ -380,7 +381,18 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
       lex->query_tables_own_last= 0;
 
       if (view_operator_func == NULL)
+      {
         table->required_type=FRMTYPE_TABLE;
+        DBUG_ASSERT(!lex->only_view);
+      }
+      else if (lex->only_view)
+      {
+        table->required_type= FRMTYPE_VIEW;
+      }
+      else if (!lex->only_view && lex->sql_command == SQLCOM_REPAIR)
+      {
+        table->required_type= FRMTYPE_TABLE;
+      }
 
       if (lex->sql_command == SQLCOM_CHECK ||
           lex->sql_command == SQLCOM_REPAIR ||
@@ -506,9 +518,9 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
     }
 
     /*
-      CHECK TABLE command is only command where VIEW allowed here and this
-      command use only temporary teble method for VIEWs resolving => there
-      can't be VIEW tree substitition of join view => if opening table
+      CHECK/REPAIR TABLE command is only command where VIEW allowed here and
+      this command use only temporary table method for VIEWs resolving =>
+      there can't be VIEW tree substitition of join view => if opening table
       succeed then table->table will have real TABLE pointer as value (in
       case of join view substitution table->table can be 0, but here it is
       impossible)
@@ -521,7 +533,7 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
                      ER_CHECK_NO_SUCH_TABLE, ER(ER_CHECK_NO_SUCH_TABLE));
       /* if it was a view will check md5 sum */
       if (table->view &&
-          view_checksum(thd, table) == HA_ADMIN_WRONG_CHECKSUM)
+          view_check(thd, table, check_opt) == HA_ADMIN_WRONG_CHECKSUM)
         push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
                      ER_VIEW_CHECKSUM, ER(ER_VIEW_CHECKSUM));
       if (thd->stmt_da->is_error() &&
@@ -536,7 +548,7 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
     if (table->view)
     {
       DBUG_PRINT("admin", ("calling view_operator_func"));
-      result_code= (*view_operator_func)(thd, table);
+      result_code= (*view_operator_func)(thd, table, check_opt);
       goto send_result;
     }
 
@@ -857,7 +869,16 @@ send_result_message:
       size_t length;
 
       protocol->store(STRING_WITH_LEN("error"), system_charset_info);
-      if (table->table->file->ha_table_flags() & HA_CAN_REPAIR)
+#if MYSQL_VERSION_ID > 100104
+#error fix the error message to take TABLE or VIEW as an argument
+#else
+      if (table->view)
+        length= my_snprintf(buf, sizeof(buf),
+                            "Upgrade required. Please do \"REPAIR VIEW %`s\" or dump/reload to fix it!",
+                            table->table_name);
+      else
+#endif
+      if (table->table->file->ha_table_flags() & HA_CAN_REPAIR || table->view)
         length= my_snprintf(buf, sizeof(buf), ER(ER_TABLE_NEEDS_UPGRADE),
                             table->table_name);
       else
@@ -1071,7 +1092,7 @@ bool Check_table_statement::execute(THD *thd)
 
   res= mysql_admin_table(thd, first_table, &m_lex->check_opt, "check",
                          lock_type, 0, 0, HA_OPEN_FOR_REPAIR, 0,
-                         &handler::ha_check, &view_checksum);
+                         &handler::ha_check, &view_check);
 
   m_lex->select_lex.table_list.first= first_table;
   m_lex->query_tables= first_table;
@@ -1126,7 +1147,7 @@ bool Repair_table_statement::execute(THD *thd)
                          TL_WRITE, 1,
                          test(m_lex->check_opt.sql_flags & TT_USEFRM),
                          HA_OPEN_FOR_REPAIR, &prepare_for_repair,
-                         &handler::ha_repair, 0);
+                         &handler::ha_repair, &view_repair);
 
   /* ! we write after unlocking the table */
   if (!res && !m_lex->no_write_to_binlog)
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 90a12eb..592215d 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -1,5 +1,5 @@
-/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
-   Copyright (c) 2010, 2013 Monty Program Ab
+/* Copyright (c) 2000, 2015, Oracle and/or its affiliates.
+   Copyright (c) 2010, 2015, MariaDB
 
    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
@@ -643,7 +643,8 @@ found:
     open_table_error(share, share->error, share->open_errno, share->errarg);
     DBUG_RETURN(0);
   }
-  if (share->is_view && !(db_flags & OPEN_VIEW))
+  if ((share->is_view && !(db_flags & OPEN_VIEW)) ||
+      (!share->is_view && (db_flags & OPEN_VIEW_ONLY)))
   {
     open_table_error(share, 1, ENOENT, 0);
     DBUG_RETURN(0);
@@ -2028,6 +2029,9 @@ unique_table(THD *thd, TABLE_LIST *table, TABLE_LIST *table_list,
              bool check_alias)
 {
   TABLE_LIST *dup;
+
+  table= table->find_table_for_update();
+
   if (table->table && table->table->file->ht->db_type == DB_TYPE_MRG_MYISAM)
   {
     TABLE_LIST *child;
@@ -3024,7 +3028,11 @@ retry_share:
   mysql_mutex_lock(&LOCK_open);
 
   if (!(share= get_table_share_with_discover(thd, table_list, key,
-                                             key_length, OPEN_VIEW,
+                                             key_length,
+                                             (OPEN_VIEW |
+                                              ((table_list->required_type ==
+                                                FRMTYPE_VIEW) ?
+                                               OPEN_VIEW_ONLY : 0)),
                                              &error,
                                              hash_value)))
   {
@@ -4103,7 +4111,7 @@ request_backoff_action(enum_open_table_action action_arg,
   if (action_arg != OT_REOPEN_TABLES && m_has_locks)
   {
     my_error(ER_LOCK_DEADLOCK, MYF(0));
-    mark_transaction_to_rollback(m_thd, true);
+    m_thd->mark_transaction_to_rollback(true);
     return TRUE;
   }
   /*
@@ -7253,7 +7261,7 @@ find_item_in_list(Item *find, List<Item> &items, uint *counter,
         Item_field for tables.
       */
       Item_ident *item_ref= (Item_ident *) item;
-      if (item_ref->name && item_ref->table_name &&
+      if (field_name && item_ref->name && item_ref->table_name &&
           !my_strcasecmp(system_charset_info, item_ref->name, field_name) &&
           !my_strcasecmp(table_alias_charset, item_ref->table_name,
                          table_name) &&
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index 475069d..76b2031 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -1,6 +1,6 @@
 /*
-   Copyright (c) 2000, 2013, Oracle and/or its affiliates.
-   Copyright (c) 2008, 2014, SkySQL Ab.
+   Copyright (c) 2000, 2015, Oracle and/or its affiliates.
+   Copyright (c) 2008, 2015, MariaDB
 
    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
@@ -815,7 +815,7 @@ THD::THD()
    failed_com_change_user(0),
    is_fatal_error(0),
    transaction_rollback_request(0),
-   is_fatal_sub_stmt_error(0),
+   is_fatal_sub_stmt_error(false),
    rand_used(0),
    time_zone_used(0),
    in_lock_tables(0),
@@ -1394,6 +1394,7 @@ void THD::cleanup(void)
   mysql_ha_cleanup(this);
   locked_tables_list.unlock_locked_tables(this);
 
+  delete_dynamic(&user_var_events);
   close_temporary_tables(this);
 
   transaction.xid_state.xa_state= XA_NOTR;
@@ -1427,7 +1428,6 @@ void THD::cleanup(void)
   debug_sync_end_thread(this);
 #endif /* defined(ENABLED_DEBUG_SYNC) */
 
-  delete_dynamic(&user_var_events);
   my_hash_free(&user_vars);
   sp_cache_clear(&sp_proc_cache);
   sp_cache_clear(&sp_func_cache);
@@ -4045,7 +4045,8 @@ extern "C" int thd_binlog_format(const MYSQL_THD thd)
 
 extern "C" void thd_mark_transaction_to_rollback(MYSQL_THD thd, bool all)
 {
-  mark_transaction_to_rollback(thd, all);
+  DBUG_ASSERT(thd);
+  thd->mark_transaction_to_rollback(all);
 }
 
 extern "C" bool thd_binlog_filter_ok(const MYSQL_THD thd)
@@ -4241,9 +4242,12 @@ void THD::restore_sub_statement_state(Sub_statement_state *backup)
     If we've left sub-statement mode, reset the fatal error flag.
     Otherwise keep the current value, to propagate it up the sub-statement
     stack.
+
+    NOTE: is_fatal_sub_stmt_error can be set only if we've been in the
+    sub-statement mode.
   */
   if (!in_sub_stmt)
-    is_fatal_sub_stmt_error= FALSE;
+    is_fatal_sub_stmt_error= false;
 
   if ((variables.option_bits & OPTION_BIN_LOG) && is_update_query(lex->sql_command) &&
        !is_current_stmt_binlog_format_row())
@@ -4353,17 +4357,18 @@ void THD::get_definer(LEX_USER *definer)
 /**
   Mark transaction to rollback and mark error as fatal to a sub-statement.
 
-  @param  thd   Thread handle
   @param  all   TRUE <=> rollback main transaction.
 */
 
-void mark_transaction_to_rollback(THD *thd, bool all)
+void THD::mark_transaction_to_rollback(bool all)
 {
-  if (thd)
-  {
-    thd->is_fatal_sub_stmt_error= TRUE;
-    thd->transaction_rollback_request= all;
-  }
+  /*
+    There is no point in setting is_fatal_sub_stmt_error unless
+    we are actually in_sub_stmt.
+  */
+  if (in_sub_stmt)
+    is_fatal_sub_stmt_error= true;
+  transaction_rollback_request= all;
 }
 /***************************************************************************
   Handling of XA id cacheing
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 9365727..67db166 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -1,6 +1,6 @@
 /*
-   Copyright (c) 2000, 2013, Oracle and/or its affiliates.
-   Copyright (c) 2009, 2013, Monty Program Ab
+   Copyright (c) 2000, 2015, Oracle and/or its affiliates.
+   Copyright (c) 2009, 2014, MariaDB
 
    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
@@ -700,8 +700,6 @@ void add_to_status(STATUS_VAR *to_var, STATUS_VAR *from_var);
 void add_diff_to_status(STATUS_VAR *to_var, STATUS_VAR *from_var,
                         STATUS_VAR *dec_var);
 
-void mark_transaction_to_rollback(THD *thd, bool all);
-
 #ifdef MYSQL_SERVER
 
 void free_tmp_table(THD *thd, TABLE *entry);
@@ -2620,6 +2618,8 @@ public:
     if (stmt_da->is_error())
       stmt_da->reset_diagnostics_area();
     is_slave_error= 0;
+    if (killed == KILL_BAD_DATA)
+      killed= NOT_KILLED; // KILL_BAD_DATA can be reset w/o a mutex
     DBUG_VOID_RETURN;
   }
 #ifndef EMBEDDED_LIBRARY
@@ -3119,6 +3119,7 @@ public:
     mysql_mutex_unlock(&LOCK_status);
   }
 
+  void mark_transaction_to_rollback(bool all);
 private:
 
   /** The current internal error handler for this thread, or NULL. */
@@ -4161,8 +4162,6 @@ public:
 */
 #define CF_SKIP_QUESTIONS       (1U << 1)
 
-void mark_transaction_to_rollback(THD *thd, bool all);
-
 /* Inline functions */
 
 inline bool add_item_to_list(THD *thd, Item *item)
diff --git a/sql/sql_db.cc b/sql/sql_db.cc
index 0464128..f72a891 100644
--- a/sql/sql_db.cc
+++ b/sql/sql_db.cc
@@ -1,6 +1,6 @@
 /*
-   Copyright (c) 2000, 2013, Oracle and/or its affiliates.
-   Copyright (c) 2009, 2013, Monty Program Ab.
+   Copyright (c) 2000, 2014, Oracle and/or its affiliates.
+   Copyright (c) 2009, 2015, MariaDB
 
    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
@@ -917,7 +917,7 @@ update_binlog:
 
     if (!(query= (char*) thd->alloc(MAX_DROP_TABLE_Q_LEN)))
       goto exit; /* not much else we can do */
-    query_pos= query_data_start= strmov(query,"DROP TABLE ");
+    query_pos= query_data_start= strmov(query,"DROP TABLE IF EXISTS ");
     query_end= query + MAX_DROP_TABLE_Q_LEN;
     db_len= strlen(db);
 
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc
index 97d3d10..5b233cd 100644
--- a/sql/sql_delete.cc
+++ b/sql/sql_delete.cc
@@ -610,7 +610,7 @@ int mysql_multi_delete_prepare(THD *thd)
   */
   lex->select_lex.exclude_from_table_unique_test= FALSE;
   
-  if (lex->select_lex.save_prep_leaf_tables(thd))
+  if (lex->save_prep_leaf_tables())
     DBUG_RETURN(TRUE);
   
   DBUG_RETURN(FALSE);
@@ -657,9 +657,10 @@ multi_delete::initialize_tables(JOIN *join)
   delete_while_scanning= 1;
   for (walk= delete_tables; walk; walk= walk->next_local)
   {
-    tables_to_delete_from|= walk->table->map;
+    TABLE_LIST *tbl= walk->correspondent_table->find_table_for_update();
+    tables_to_delete_from|= tbl->table->map;
     if (delete_while_scanning &&
-        unique_table(thd, walk, join->tables_list, false))
+        unique_table(thd, tbl, join->tables_list, false))
     {
       /*
         If the table we are going to delete from appears
diff --git a/sql/sql_derived.cc b/sql/sql_derived.cc
index 004cccb..c6865a7 100644
--- a/sql/sql_derived.cc
+++ b/sql/sql_derived.cc
@@ -169,7 +169,9 @@ mysql_handle_single_derived(LEX *lex, TABLE_LIST *derived, uint phases)
   uint8 allowed_phases= (derived->is_merged_derived() ? DT_PHASES_MERGE :
                          DT_PHASES_MATERIALIZE);
   DBUG_ENTER("mysql_handle_single_derived");
-  DBUG_PRINT("enter", ("phases: 0x%x  allowed: 0x%x", phases, allowed_phases));
+  DBUG_PRINT("enter", ("phases: 0x%x  allowed: 0x%x  alias: '%s'",
+                       phases, allowed_phases,
+                       (derived->alias ? derived->alias : "<NULL>")));
   if (!lex->derived_tables)
     DBUG_RETURN(FALSE);
 
@@ -507,6 +509,9 @@ bool mysql_derived_merge_for_insert(THD *thd, LEX *lex, TABLE_LIST *derived)
     DBUG_RETURN(FALSE);
   if (derived->is_materialized_derived())
     DBUG_RETURN(mysql_derived_prepare(thd, lex, derived));
+  if ((thd->lex->sql_command == SQLCOM_UPDATE_MULTI ||
+       thd->lex->sql_command == SQLCOM_DELETE_MULTI))
+    DBUG_RETURN(FALSE);
   if (!derived->is_multitable())
   {
     if (!derived->single_table_updatable())
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 8aeb2e6..74591b5 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -4102,27 +4102,48 @@ bool st_select_lex::save_leaf_tables(THD *thd)
 }
 
 
-bool st_select_lex::save_prep_leaf_tables(THD *thd)
+bool LEX::save_prep_leaf_tables()
 {
   if (!thd->save_prep_leaf_list)
-    return 0;
+    return FALSE;
 
   Query_arena *arena= thd->stmt_arena, backup;
   arena= thd->activate_stmt_arena_if_needed(&backup);
+  //It is used for DETETE/UPDATE so top level has only one SELECT
+  DBUG_ASSERT(select_lex.next_select() == NULL);
+  bool res= select_lex.save_prep_leaf_tables(thd);
+
+  if (arena)
+    thd->restore_active_arena(arena, &backup);
+
+  if (res)
+    return TRUE;
 
+  thd->save_prep_leaf_list= FALSE;
+  return FALSE;
+}
+
+
+bool st_select_lex::save_prep_leaf_tables(THD *thd)
+{
   List_iterator_fast<TABLE_LIST> li(leaf_tables);
   TABLE_LIST *table;
   while ((table= li++))
   {
     if (leaf_tables_prep.push_back(table))
-      return 1;
+      return TRUE;
+  }
+  is_prep_leaf_list_saved= TRUE;
+  for (SELECT_LEX_UNIT *u= first_inner_unit(); u; u= u->next_unit())
+  {
+    for (SELECT_LEX *sl= u->first_select(); sl; sl= sl->next_select())
+    {
+      if (sl->save_prep_leaf_tables(thd))
+        return TRUE;
+    }
   }
-  thd->lex->select_lex.is_prep_leaf_list_saved= TRUE; 
-  thd->save_prep_leaf_list= FALSE;
-  if (arena)
-    thd->restore_active_arena(arena, &backup);
 
-  return 0;
+  return FALSE;
 }
 
 
diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index 4f42400..69ee5cc 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -2766,6 +2766,8 @@ struct LEX: public Query_tables_list
     }
     return FALSE;
   }
+
+  bool save_prep_leaf_tables();
 };
 
 
diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc
index e1784c1..d1838ba 100644
--- a/sql/sql_plugin.cc
+++ b/sql/sql_plugin.cc
@@ -3916,7 +3916,7 @@ static int test_plugin_options(MEM_ROOT *tmp_root, struct st_plugin_int *tmp,
       we copy string values to a plugin's memroot.
     */
     if (mysqld_server_started &&
-        ((o->flags & (PLUGIN_VAR_STR | PLUGIN_VAR_NOCMDOPT |
+        ((o->flags & (PLUGIN_VAR_TYPEMASK | PLUGIN_VAR_NOCMDOPT |
                        PLUGIN_VAR_MEMALLOC)) == PLUGIN_VAR_STR))
     {
       sysvar_str_t* str= (sysvar_str_t *)o;
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index bdb2d1c..0373f0b 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -1,5 +1,5 @@
-/* Copyright (c) 2000, 2013 Oracle and/or its affiliates.
-   Copyright (c) 2009, 2013 Monty Program Ab.
+/* Copyright (c) 2000, 2015 Oracle and/or its affiliates.
+   Copyright (c) 2009, 2015 MariaDB
 
    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
@@ -646,9 +646,7 @@ JOIN::prepare(Item ***rref_pointer_array,
   if (!(select_options & OPTION_SETUP_TABLES_DONE) &&
       setup_tables_and_check_access(thd, &select_lex->context, join_list,
                                     tables_list, select_lex->leaf_tables,
-                                    FALSE, SELECT_ACL, SELECT_ACL,
-                                    (thd->lex->sql_command ==
-                                     SQLCOM_UPDATE_MULTI)))
+                                    FALSE, SELECT_ACL, SELECT_ACL, FALSE))
       DBUG_RETURN(-1);
 
   /*
@@ -6143,7 +6141,6 @@ choose_plan(JOIN *join, table_map join_tables)
   DBUG_ENTER("choose_plan");
 
   join->cur_embedding_map= 0;
-  join->cur_dups_producing_tables= 0;
   reset_nj_counters(join, join->join_list);
   qsort2_cmp jtab_sort_func;
 
@@ -7957,7 +7954,8 @@ static bool create_hj_key_for_table(JOIN *join, JOIN_TAB *join_tab,
       {
         Field *field= table->field[keyuse->keypart];
         uint fieldnr= keyuse->keypart+1;
-        table->create_key_part_by_field(keyinfo, key_part_info, field, fieldnr);
+        table->create_key_part_by_field(key_part_info, field, fieldnr);
+        keyinfo->key_length += key_part_info->store_length;
         key_part_info++;
       }
     }
@@ -15921,7 +15919,7 @@ bool create_internal_tmp_table(TABLE *table, KEY *keyinfo,
       goto err;
 
     bzero(seg, sizeof(*seg) * keyinfo->key_parts);
-    if (keyinfo->key_length >= table->file->max_key_length() ||
+    if (keyinfo->key_length > table->file->max_key_length() ||
 	keyinfo->key_parts > table->file->max_key_parts() ||
 	share->uniques)
     {
@@ -16107,7 +16105,7 @@ bool create_internal_tmp_table(TABLE *table, KEY *keyinfo,
       goto err;
 
     bzero(seg, sizeof(*seg) * keyinfo->key_parts);
-    if (keyinfo->key_length >= table->file->max_key_length() ||
+    if (keyinfo->key_length > table->file->max_key_length() ||
 	keyinfo->key_parts > table->file->max_key_parts() ||
 	share->uniques)
     {
@@ -20311,18 +20309,33 @@ SORT_FIELD *make_unireg_sortorder(ORDER *order, uint *length,
 
   for (;order;order=order->next,pos++)
   {
-    Item *item= order->item[0]->real_item();
+    Item *const item= order->item[0], *const real_item= item->real_item();
     pos->field= 0; pos->item= 0;
-    if (item->type() == Item::FIELD_ITEM)
-      pos->field= ((Item_field*) item)->field;
-    else if (item->type() == Item::SUM_FUNC_ITEM && !item->const_item())
-      pos->field= ((Item_sum*) item)->get_tmp_table_field();
-    else if (item->type() == Item::COPY_STR_ITEM)
-    {						// Blob patch
-      pos->item= ((Item_copy*) item)->get_item();
+    if (real_item->type() == Item::FIELD_ITEM)
+    {
+      // Could be a field, or Item_direct_view_ref wrapping a field
+      DBUG_ASSERT(item->type() == Item::FIELD_ITEM ||
+                  (item->type() == Item::REF_ITEM &&
+                   static_cast<Item_ref*>(item)->ref_type() ==
+                   Item_ref::VIEW_REF));
+      pos->field= static_cast<Item_field*>(real_item)->field;
+    }
+    else if (real_item->type() == Item::SUM_FUNC_ITEM &&
+             !real_item->const_item())
+    {
+      // Aggregate, or Item_aggregate_ref
+      DBUG_ASSERT(item->type() == Item::SUM_FUNC_ITEM ||
+                  (item->type() == Item::REF_ITEM &&
+                   static_cast<Item_ref*>(item)->ref_type() ==
+                   Item_ref::AGGREGATE_REF));
+      pos->field= item->get_tmp_table_field();
+    }
+    else if (real_item->type() == Item::COPY_STR_ITEM)
+    {                                           // Blob patch
+      pos->item= static_cast<Item_copy*>(real_item)->get_item();
     }
     else
-      pos->item= *order->item;
+      pos->item= item;
     pos->reverse=! order->asc;
   }
   *length=count;
@@ -20564,6 +20577,17 @@ find_order_in_list(THD *thd, Item **ref_pointer_array, TABLE_LIST *tables,
   uint el= all_fields.elements;
   all_fields.push_front(order_item); /* Add new field to field list. */
   ref_pointer_array[el]= order_item;
+  /*
+     If the order_item is a SUM_FUNC_ITEM, when fix_fields is called
+     ref_by is set to order->item which is the address of order_item.
+     But this needs to be address of order_item in the all_fields list.
+     As a result, when it gets replaced with Item_aggregate_ref
+     object in Item::split_sum_func2, we will be able to retrieve the
+     newly created object.
+  */
+  if (order_item->type() == Item::SUM_FUNC_ITEM)
+    ((Item_sum *)order_item)->ref_by= all_fields.head_ref();
+
   order->item= ref_pointer_array + el;
   return FALSE;
 }
diff --git a/sql/sql_select.h b/sql/sql_select.h
index ce57376..de5baee 100644
--- a/sql/sql_select.h
+++ b/sql/sql_select.h
@@ -813,7 +813,12 @@ typedef struct st_position :public Sql_alloc
   */
   uint n_sj_tables;
 
-  table_map prefix_dups_producing_tables;
+  /*
+    Bitmap of semi-join inner tables that are in the join prefix and for
+    which there's no provision for how to eliminate semi-join duplicates
+    they produce.
+  */
+  table_map dups_producing_tables;
 
   table_map inner_tables_handled_with_other_sjs;
    
@@ -1034,13 +1039,6 @@ public:
   */
   table_map cur_sj_inner_tables;
   
-  /*
-    Bitmap of semi-join inner tables that are in the join prefix and for
-    which there's no provision for how to eliminate semi-join duplicates
-    they produce.
-  */
-  table_map cur_dups_producing_tables;
-  
   /* We also maintain a stack of join optimization states in * join->positions[] */
 /******* Join optimization state members end *******/
 
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 77dbc76..6ec99cd 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -1,6 +1,6 @@
 /*
-   Copyright (c) 2000, 2013, Oracle and/or its affiliates.
-   Copyright (c) 2010, 2014, SkySQL Ab.
+   Copyright (c) 2000, 2015, Oracle and/or its affiliates.
+   Copyright (c) 2010, 2015, MariaDB
 
    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
@@ -28,7 +28,6 @@
 #include "sql_base.h"   // open_table_uncached, lock_table_names
 #include "lock.h"       // mysql_unlock_tables
 #include "strfunc.h"    // find_type2, find_set
-#include "sql_view.h" // view_checksum 
 #include "sql_truncate.h"                       // regenerate_locked_table 
 #include "sql_partition.h"                      // mem_alloc_error,
                                                 // generate_partition_syntax,
@@ -5580,6 +5579,10 @@ mysql_prepare_alter_table(THD *thd, TABLE *table,
   if (!(used_fields & HA_CREATE_USED_TRANSACTIONAL))
     create_info->transactional= table->s->transactional;
 
+  /* Creation of federated table with LIKE clause needs connection string */
+  if (!(used_fields & HA_CREATE_USED_CONNECTION))
+    create_info->connect_string= table->s->connect_string;
+
   restore_record(table, s->default_values);     // Empty record for DEFAULT
 
   create_info->option_list= merge_engine_table_options(table->s->option_list,
@@ -7644,12 +7647,12 @@ err:
 
 
 /*
-  Recreates tables by calling mysql_alter_table().
+  Recreates one table by calling mysql_alter_table().
 
   SYNOPSIS
     mysql_recreate_table()
     thd			Thread handler
-    tables		Tables to recreate
+    table_list          Table to recreate
 
  RETURN
     Like mysql_alter_table().
@@ -7658,9 +7661,9 @@ bool mysql_recreate_table(THD *thd, TABLE_LIST *table_list)
 {
   HA_CREATE_INFO create_info;
   Alter_info alter_info;
+  TABLE_LIST *next_table= table_list->next_global;
 
   DBUG_ENTER("mysql_recreate_table");
-  DBUG_ASSERT(!table_list->next_global);
   /*
     table_list->table has been closed and freed. Do not reference
     uninitialized data. open_tables() could fail.
@@ -7672,15 +7675,19 @@ bool mysql_recreate_table(THD *thd, TABLE_LIST *table_list)
   table_list->lock_type= TL_READ_NO_INSERT;
   /* Same applies to MDL request. */
   table_list->mdl_request.set_type(MDL_SHARED_NO_WRITE);
+  /* hide following tables from open_tables() */
+  table_list->next_global= NULL;
 
   bzero((char*) &create_info, sizeof(create_info));
   create_info.row_type=ROW_TYPE_NOT_USED;
   create_info.default_table_charset=default_charset_info;
   /* Force alter table to recreate table */
   alter_info.flags= (ALTER_CHANGE_COLUMN | ALTER_RECREATE);
-  DBUG_RETURN(mysql_alter_table(thd, NullS, NullS, &create_info,
+  bool res= mysql_alter_table(thd, NullS, NullS, &create_info,
                                 table_list, &alter_info, 0,
-                                (ORDER *) 0, 0, 0));
+                                (ORDER *) 0, 0, 0);
+  table_list->next_global= next_table;
+  DBUG_RETURN(res);
 }
 
 
diff --git a/sql/sql_truncate.cc b/sql/sql_truncate.cc
index 92fc420..9b37996 100644
--- a/sql/sql_truncate.cc
+++ b/sql/sql_truncate.cc
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2010, 2015, 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
@@ -288,6 +288,12 @@ static bool recreate_temporary_table(THD *thd, TABLE *table)
 
   table->file->info(HA_STATUS_AUTO | HA_STATUS_NO_LOCK);
 
+  /*
+    If LOCK TABLES list is not empty and contains this table
+    then unlock the table and remove it from this list.
+  */
+  mysql_lock_remove(thd, thd->lock, table);
+
   /* Don't free share. */
   close_temporary_table(thd, table, FALSE, FALSE);
 
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index 300769e..23e17b0 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -1388,7 +1388,7 @@ int mysql_multi_update_prepare(THD *thd)
   */
   lex->select_lex.exclude_from_table_unique_test= FALSE;
 
-  if (lex->select_lex.save_prep_leaf_tables(thd))
+  if (lex->save_prep_leaf_tables())
     DBUG_RETURN(TRUE);
  
   DBUG_RETURN (FALSE);
diff --git a/sql/sql_view.cc b/sql/sql_view.cc
index b711f05..47b2387 100644
--- a/sql/sql_view.cc
+++ b/sql/sql_view.cc
@@ -729,8 +729,28 @@ err:
 }
 
 
+static void make_view_filename(LEX_STRING *dir, char *dir_buff,
+                               size_t dir_buff_len,
+                               LEX_STRING *path, char *path_buff,
+                               size_t path_buff_len,
+                               LEX_STRING *file,
+                               TABLE_LIST *view)
+{
+  /* print file name */
+  dir->length= build_table_filename(dir_buff, dir_buff_len - 1,
+                                   view->db, "", "", 0);
+  dir->str= dir_buff;
+
+  path->length= build_table_filename(path_buff, path_buff_len - 1,
+                                     view->db, view->table_name, reg_ext, 0);
+  path->str= path_buff;
+
+  file->str= path->str + dir->length;
+  file->length= path->length - dir->length;
+}
+
 /* number of required parameters for making view */
-static const int required_view_parameters= 14;
+static const int required_view_parameters= 15;
 
 /*
   table of VIEW .frm field descriptors
@@ -781,6 +801,9 @@ static File_option view_parameters[]=
  {{(char*) STRING_WITH_LEN("view_body_utf8")},
   my_offsetof(TABLE_LIST, view_body_utf8),
   FILE_OPTIONS_ESTRING},
+ {{ C_STRING_WITH_LEN("mariadb-version")},
+  my_offsetof(TABLE_LIST, mariadb_version),
+  FILE_OPTIONS_ULONGLONG},
  {{NullS, 0},			0,
   FILE_OPTIONS_STRING}
 };
@@ -788,6 +811,67 @@ static File_option view_parameters[]=
 static LEX_STRING view_file_type[]= {{(char*) STRING_WITH_LEN("VIEW") }};
 
 
+int mariadb_fix_view(THD *thd, TABLE_LIST *view, bool wrong_checksum,
+                     bool swap_alg)
+{
+  char dir_buff[FN_REFLEN + 1], path_buff[FN_REFLEN + 1];
+  LEX_STRING dir, file, path;
+  DBUG_ENTER("mariadb_fix_view");
+
+  if (!wrong_checksum && view->mariadb_version)
+    DBUG_RETURN(HA_ADMIN_OK);
+
+  make_view_filename(&dir, dir_buff, sizeof(dir_buff),
+                     &path, path_buff, sizeof(path_buff),
+                     &file, view);
+  /* init timestamp */
+  if (!view->timestamp.str)
+    view->timestamp.str= view->timestamp_buffer;
+
+  if (swap_alg && view->algorithm != VIEW_ALGORITHM_UNDEFINED)
+  {
+    DBUG_ASSERT(view->algorithm == VIEW_ALGORITHM_MERGE ||
+                view->algorithm == VIEW_ALGORITHM_TMPTABLE);
+    if (view->algorithm == VIEW_ALGORITHM_MERGE)
+      view->algorithm= VIEW_ALGORITHM_TMPTABLE;
+    else
+      view->algorithm= VIEW_ALGORITHM_MERGE;
+  }
+  else
+    swap_alg= 0;
+  if (wrong_checksum)
+  {
+    if (view->md5.length != 32)
+    {
+       if ((view->md5.str= (char *)thd->alloc(32 + 1)) == NULL)
+         DBUG_RETURN(HA_ADMIN_FAILED);
+    }
+    view->calc_md5(view->md5.str);
+    view->md5.length= 32;
+  }
+  view->mariadb_version= MYSQL_VERSION_ID;
+
+  if (sql_create_definition_file(&dir, &file, view_file_type,
+                                (uchar*)view, view_parameters))
+  {
+    sql_print_error("View '%-.192s'.'%-.192s': algorithm swap error.",
+                    view->db, view->table_name);
+    DBUG_RETURN(HA_ADMIN_INTERNAL_ERROR);
+  }
+  sql_print_information("View %`s.%`s: the version is set to %llu%s%s",
+                        view->db, view->table_name, view->mariadb_version,
+                        (wrong_checksum ? ", checksum corrected" : ""),
+                        (swap_alg ?
+                          ((view->algorithm == VIEW_ALGORITHM_MERGE) ?
+                            ", algorithm restored to be MERGE"
+                           : ", algorithm restored to be TEMPTABLE")
+                         : ""));
+
+
+  DBUG_RETURN(HA_ADMIN_OK);
+}
+
+
 /*
   Register VIEW (write .frm & process .frm's history backups)
 
@@ -877,6 +961,7 @@ static int mysql_register_view(THD *thd, TABLE_LIST *view,
   }
 
   view->file_version= 1;
+  view->mariadb_version= MYSQL_VERSION_ID;
   view->calc_md5(md5);
   if (!(view->md5.str= (char*) thd->memdup(md5, 32)))
   {
@@ -923,17 +1008,9 @@ static int mysql_register_view(THD *thd, TABLE_LIST *view,
   }
 loop_out:
   /* print file name */
-  dir.length= build_table_filename(dir_buff, sizeof(dir_buff) - 1,
-                                   view->db, "", "", 0);
-  dir.str= dir_buff;
-
-  path.length= build_table_filename(path_buff, sizeof(path_buff) - 1,
-                                    view->db, view->table_name, reg_ext, 0);
-  path.str= path_buff;
-
-  file.str= path.str + dir.length;
-  file.length= path.length - dir.length;
-
+  make_view_filename(&dir, dir_buff, sizeof(dir_buff),
+                     &path, path_buff, sizeof(path_buff),
+                     &file, view);
   /* init timestamp */
   if (!view->timestamp.str)
     view->timestamp.str= view->timestamp_buffer;
@@ -1059,7 +1136,7 @@ err:
 
   SYNOPSIS
     mysql_make_view()
-    thd			Thread handler
+    thd			Thread handle
     parser		parser object
     table		TABLE_LIST structure for filling
     flags               flags
@@ -1630,7 +1707,7 @@ err:
 
   SYNOPSIS
     mysql_drop_view()
-    thd		- thread handler
+    thd		- thread handle
     views	- views to delete
     drop_mode	- cascade/check
 
@@ -1751,7 +1828,7 @@ bool mysql_drop_view(THD *thd, TABLE_LIST *views, enum_drop_mode drop_mode)
 
   SYNOPSIS
     check_key_in_view()
-    thd     thread handler
+    thd     thread handle
     view    view for check with opened table
 
   DESCRIPTION
@@ -1937,6 +2014,58 @@ int view_checksum(THD *thd, TABLE_LIST *view)
           HA_ADMIN_OK);
 }
 
+/**
+  Check view
+
+  @param thd             thread handle
+  @param view            view for check
+  @param check_opt       check options
+
+  @retval HA_ADMIN_OK               OK
+  @retval HA_ADMIN_NOT_IMPLEMENTED  it is not VIEW
+  @retval HA_ADMIN_WRONG_CHECKSUM   check sum is wrong
+*/
+int view_check(THD *thd, TABLE_LIST *view, HA_CHECK_OPT *check_opt)
+{
+  DBUG_ENTER("view_check");
+
+  int res= view_checksum(thd, view);
+  if (res != HA_ADMIN_OK)
+    DBUG_RETURN(res);
+
+  if (((check_opt->sql_flags & TT_FOR_UPGRADE) && !view->mariadb_version))
+    DBUG_RETURN(HA_ADMIN_NEEDS_UPGRADE);
+
+  DBUG_RETURN(HA_ADMIN_OK);
+}
+
+
+/**
+  Repair view
+
+  @param thd             thread handle
+  @param view            view for check
+  @param check_opt       check options
+
+  @retval HA_ADMIN_OK               OK
+  @retval HA_ADMIN_NOT_IMPLEMENTED  it is not VIEW
+  @retval HA_ADMIN_WRONG_CHECKSUM   check sum is wrong
+*/
+
+int view_repair(THD *thd, TABLE_LIST *view, HA_CHECK_OPT *check_opt)
+{
+  DBUG_ENTER("view_repair");
+  bool swap_alg= (check_opt->sql_flags & TT_FROM_MYSQL);
+  bool wrong_checksum= view_checksum(thd, view) != HA_ADMIN_OK;
+  int ret;
+  if (wrong_checksum || swap_alg || (!view->mariadb_version))
+  {
+    ret= mariadb_fix_view(thd, view, wrong_checksum, swap_alg);
+    DBUG_RETURN(ret);
+  }
+  DBUG_RETURN(HA_ADMIN_OK);
+}
+
 /*
   rename view
 
diff --git a/sql/sql_view.h b/sql/sql_view.h
index 2e9c772..1026c57 100644
--- a/sql/sql_view.h
+++ b/sql/sql_view.h
@@ -44,6 +44,8 @@ bool check_key_in_view(THD *thd, TABLE_LIST * view);
 bool insert_view_fields(THD *thd, List<Item> *list, TABLE_LIST *view);
 
 int view_checksum(THD *thd, TABLE_LIST *view);
+int view_check(THD *thd, TABLE_LIST *view, HA_CHECK_OPT *check_opt);
+int view_repair(THD *thd, TABLE_LIST *view, HA_CHECK_OPT *check_opt);
 
 extern TYPELIB updatable_views_with_limit_typelib;
 
diff --git a/sql/sql_yacc.cc b/sql/sql_yacc.cc
index d807fb8..25caef6 100644
--- a/sql/sql_yacc.cc
+++ b/sql/sql_yacc.cc
@@ -76,7 +76,7 @@
 /* Copy the first part of user declarations.  */
 
 /* Line 189 of yacc.c  */
-#line 25 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 25 "/home/buildbot/git/sql/sql_yacc.yy"
 
 #define YYLIP (& thd->m_parser_state->m_lip)
 #define YYPS (& thd->m_parser_state->m_yacc)
@@ -786,7 +786,7 @@ static bool add_create_index (LEX *lex, Key::Keytype type,
 
 
 /* Line 189 of yacc.c  */
-#line 790 "/home/buildbot/bzr/build/mkdist/sql/sql_yacc.cc"
+#line 790 "/home/buildbot/git/mkdist/sql/sql_yacc.cc"
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
@@ -1146,289 +1146,290 @@ static bool add_create_index (LEX *lex, Key::Keytype type,
      MULTIPOINT = 588,
      MULTIPOLYGON = 589,
      MUTEX_SYM = 590,
-     MYSQL_ERRNO_SYM = 591,
-     NAMES_SYM = 592,
-     NAME_SYM = 593,
-     NATIONAL_SYM = 594,
-     NATURAL = 595,
-     NCHAR_STRING = 596,
-     NCHAR_SYM = 597,
-     NDBCLUSTER_SYM = 598,
-     NE = 599,
-     NEG = 600,
-     NEW_SYM = 601,
-     NEXT_SYM = 602,
-     NODEGROUP_SYM = 603,
-     NONE_SYM = 604,
-     NOT2_SYM = 605,
-     NOT_SYM = 606,
-     NOW_SYM = 607,
-     NO_SYM = 608,
-     NO_WAIT_SYM = 609,
-     NO_WRITE_TO_BINLOG = 610,
-     NULL_SYM = 611,
-     NUM = 612,
-     NUMERIC_SYM = 613,
-     NVARCHAR_SYM = 614,
-     OFFSET_SYM = 615,
-     OLD_PASSWORD = 616,
-     ON = 617,
-     ONE_SHOT_SYM = 618,
-     ONE_SYM = 619,
-     ONLINE_SYM = 620,
-     OPEN_SYM = 621,
-     OPTIMIZE = 622,
-     OPTIONS_SYM = 623,
-     OPTION = 624,
-     OPTIONALLY = 625,
-     OR2_SYM = 626,
-     ORDER_SYM = 627,
-     OR_OR_SYM = 628,
-     OR_SYM = 629,
-     OUTER = 630,
-     OUTFILE = 631,
-     OUT_SYM = 632,
-     OWNER_SYM = 633,
-     PACK_KEYS_SYM = 634,
-     PAGE_SYM = 635,
-     PAGE_CHECKSUM_SYM = 636,
-     PARAM_MARKER = 637,
-     PARSER_SYM = 638,
-     PARSE_VCOL_EXPR_SYM = 639,
-     PARTIAL = 640,
-     PARTITIONING_SYM = 641,
-     PARTITIONS_SYM = 642,
-     PARTITION_SYM = 643,
-     PASSWORD = 644,
-     PERSISTENT_SYM = 645,
-     PHASE_SYM = 646,
-     PLUGINS_SYM = 647,
-     PLUGIN_SYM = 648,
-     POINT_SYM = 649,
-     POLYGON = 650,
-     PORT_SYM = 651,
-     POSITION_SYM = 652,
-     PRECISION = 653,
-     PREPARE_SYM = 654,
-     PRESERVE_SYM = 655,
-     PREV_SYM = 656,
-     PRIMARY_SYM = 657,
-     PRIVILEGES = 658,
-     PROCEDURE_SYM = 659,
-     PROCESS = 660,
-     PROCESSLIST_SYM = 661,
-     PROFILE_SYM = 662,
-     PROFILES_SYM = 663,
-     PROXY_SYM = 664,
-     PURGE = 665,
-     QUARTER_SYM = 666,
-     QUERY_SYM = 667,
-     QUICK = 668,
-     RANGE_SYM = 669,
-     READS_SYM = 670,
-     READ_ONLY_SYM = 671,
-     READ_SYM = 672,
-     READ_WRITE_SYM = 673,
-     REAL = 674,
-     REBUILD_SYM = 675,
-     RECOVER_SYM = 676,
-     REDOFILE_SYM = 677,
-     REDO_BUFFER_SIZE_SYM = 678,
-     REDUNDANT_SYM = 679,
-     REFERENCES = 680,
-     REGEXP = 681,
-     RELAY = 682,
-     RELAYLOG_SYM = 683,
-     RELAY_LOG_FILE_SYM = 684,
-     RELAY_LOG_POS_SYM = 685,
-     RELAY_THREAD = 686,
-     RELEASE_SYM = 687,
-     RELOAD = 688,
-     REMOVE_SYM = 689,
-     RENAME = 690,
-     REORGANIZE_SYM = 691,
-     REPAIR = 692,
-     REPEATABLE_SYM = 693,
-     REPEAT_SYM = 694,
-     REPLACE = 695,
-     REPLICATION = 696,
-     REQUIRE_SYM = 697,
-     RESET_SYM = 698,
-     RESIGNAL_SYM = 699,
-     RESOURCES = 700,
-     RESTORE_SYM = 701,
-     RESTRICT = 702,
-     RESUME_SYM = 703,
-     RETURNS_SYM = 704,
-     RETURN_SYM = 705,
-     REVOKE = 706,
-     RIGHT = 707,
-     ROLLBACK_SYM = 708,
-     ROLLUP_SYM = 709,
-     ROUTINE_SYM = 710,
-     ROWS_SYM = 711,
-     ROW_FORMAT_SYM = 712,
-     ROW_SYM = 713,
-     RTREE_SYM = 714,
-     SAVEPOINT_SYM = 715,
-     SCHEDULE_SYM = 716,
-     SCHEMA_NAME_SYM = 717,
-     SECOND_MICROSECOND_SYM = 718,
-     SECOND_SYM = 719,
-     SECURITY_SYM = 720,
-     SELECT_SYM = 721,
-     SENSITIVE_SYM = 722,
-     SEPARATOR_SYM = 723,
-     SERIALIZABLE_SYM = 724,
-     SERIAL_SYM = 725,
-     SESSION_SYM = 726,
-     SERVER_SYM = 727,
-     SERVER_OPTIONS = 728,
-     SET = 729,
-     SET_VAR = 730,
-     SHARE_SYM = 731,
-     SHIFT_LEFT = 732,
-     SHIFT_RIGHT = 733,
-     SHOW = 734,
-     SHUTDOWN = 735,
-     SIGNAL_SYM = 736,
-     SIGNED_SYM = 737,
-     SIMPLE_SYM = 738,
-     SLAVE = 739,
-     SLOW = 740,
-     SMALLINT = 741,
-     SNAPSHOT_SYM = 742,
-     SOCKET_SYM = 743,
-     SOFT_SYM = 744,
-     SONAME_SYM = 745,
-     SOUNDS_SYM = 746,
-     SOURCE_SYM = 747,
-     SPATIAL_SYM = 748,
-     SPECIFIC_SYM = 749,
-     SQLEXCEPTION_SYM = 750,
-     SQLSTATE_SYM = 751,
-     SQLWARNING_SYM = 752,
-     SQL_BIG_RESULT = 753,
-     SQL_BUFFER_RESULT = 754,
-     SQL_CACHE_SYM = 755,
-     SQL_CALC_FOUND_ROWS = 756,
-     SQL_NO_CACHE_SYM = 757,
-     SQL_SMALL_RESULT = 758,
-     SQL_SYM = 759,
-     SQL_THREAD = 760,
-     SSL_SYM = 761,
-     STARTING = 762,
-     STARTS_SYM = 763,
-     START_SYM = 764,
-     STATUS_SYM = 765,
-     STDDEV_SAMP_SYM = 766,
-     STD_SYM = 767,
-     STOP_SYM = 768,
-     STORAGE_SYM = 769,
-     STRAIGHT_JOIN = 770,
-     STRING_SYM = 771,
-     SUBCLASS_ORIGIN_SYM = 772,
-     SUBDATE_SYM = 773,
-     SUBJECT_SYM = 774,
-     SUBPARTITIONS_SYM = 775,
-     SUBPARTITION_SYM = 776,
-     SUBSTRING = 777,
-     SUM_SYM = 778,
-     SUPER_SYM = 779,
-     SUSPEND_SYM = 780,
-     SWAPS_SYM = 781,
-     SWITCHES_SYM = 782,
-     SYSDATE = 783,
-     TABLES = 784,
-     TABLESPACE = 785,
-     TABLE_REF_PRIORITY = 786,
-     TABLE_STATS_SYM = 787,
-     TABLE_SYM = 788,
-     TABLE_CHECKSUM_SYM = 789,
-     TABLE_NAME_SYM = 790,
-     TEMPORARY = 791,
-     TEMPTABLE_SYM = 792,
-     TERMINATED = 793,
-     TEXT_STRING = 794,
-     TEXT_SYM = 795,
-     THAN_SYM = 796,
-     THEN_SYM = 797,
-     TIMESTAMP = 798,
-     TIMESTAMP_ADD = 799,
-     TIMESTAMP_DIFF = 800,
-     TIME_SYM = 801,
-     TINYBLOB = 802,
-     TINYINT = 803,
-     TINYTEXT = 804,
-     TO_SYM = 805,
-     TRAILING = 806,
-     TRANSACTION_SYM = 807,
-     TRANSACTIONAL_SYM = 808,
-     TRIGGERS_SYM = 809,
-     TRIGGER_SYM = 810,
-     TRIM = 811,
-     TRUE_SYM = 812,
-     TRUNCATE_SYM = 813,
-     TYPES_SYM = 814,
-     TYPE_SYM = 815,
-     UDF_RETURNS_SYM = 816,
-     ULONGLONG_NUM = 817,
-     UNCOMMITTED_SYM = 818,
-     UNDEFINED_SYM = 819,
-     UNDERSCORE_CHARSET = 820,
-     UNDOFILE_SYM = 821,
-     UNDO_BUFFER_SIZE_SYM = 822,
-     UNDO_SYM = 823,
-     UNICODE_SYM = 824,
-     UNINSTALL_SYM = 825,
-     UNION_SYM = 826,
-     UNIQUE_SYM = 827,
-     UNKNOWN_SYM = 828,
-     UNLOCK_SYM = 829,
-     UNSIGNED = 830,
-     UNTIL_SYM = 831,
-     UPDATE_SYM = 832,
-     UPGRADE_SYM = 833,
-     USAGE = 834,
-     USER = 835,
-     USER_STATS_SYM = 836,
-     USE_FRM = 837,
-     USE_SYM = 838,
-     USING = 839,
-     UTC_DATE_SYM = 840,
-     UTC_TIMESTAMP_SYM = 841,
-     UTC_TIME_SYM = 842,
-     VALUES = 843,
-     VALUE_SYM = 844,
-     VARBINARY = 845,
-     VARCHAR = 846,
-     VARIABLES = 847,
-     VARIANCE_SYM = 848,
-     VARYING = 849,
-     VAR_SAMP_SYM = 850,
-     VIA_SYM = 851,
-     VIEW_SYM = 852,
-     VIRTUAL_SYM = 853,
-     WAIT_SYM = 854,
-     WARNINGS = 855,
-     WEEK_SYM = 856,
-     WHEN_SYM = 857,
-     WHERE = 858,
-     WHILE_SYM = 859,
-     WITH = 860,
-     WITH_CUBE_SYM = 861,
-     WITH_ROLLUP_SYM = 862,
-     WORK_SYM = 863,
-     WRAPPER_SYM = 864,
-     WRITE_SYM = 865,
-     X509_SYM = 866,
-     XA_SYM = 867,
-     XML_SYM = 868,
-     XOR = 869,
-     YEAR_MONTH_SYM = 870,
-     YEAR_SYM = 871,
-     ZEROFILL = 872,
-     IMPOSSIBLE_ACTION = 873
+     MYSQL_SYM = 591,
+     MYSQL_ERRNO_SYM = 592,
+     NAMES_SYM = 593,
+     NAME_SYM = 594,
+     NATIONAL_SYM = 595,
+     NATURAL = 596,
+     NCHAR_STRING = 597,
+     NCHAR_SYM = 598,
+     NDBCLUSTER_SYM = 599,
+     NE = 600,
+     NEG = 601,
+     NEW_SYM = 602,
+     NEXT_SYM = 603,
+     NODEGROUP_SYM = 604,
+     NONE_SYM = 605,
+     NOT2_SYM = 606,
+     NOT_SYM = 607,
+     NOW_SYM = 608,
+     NO_SYM = 609,
+     NO_WAIT_SYM = 610,
+     NO_WRITE_TO_BINLOG = 611,
+     NULL_SYM = 612,
+     NUM = 613,
+     NUMERIC_SYM = 614,
+     NVARCHAR_SYM = 615,
+     OFFSET_SYM = 616,
+     OLD_PASSWORD = 617,
+     ON = 618,
+     ONE_SHOT_SYM = 619,
+     ONE_SYM = 620,
+     ONLINE_SYM = 621,
+     OPEN_SYM = 622,
+     OPTIMIZE = 623,
+     OPTIONS_SYM = 624,
+     OPTION = 625,
+     OPTIONALLY = 626,
+     OR2_SYM = 627,
+     ORDER_SYM = 628,
+     OR_OR_SYM = 629,
+     OR_SYM = 630,
+     OUTER = 631,
+     OUTFILE = 632,
+     OUT_SYM = 633,
+     OWNER_SYM = 634,
+     PACK_KEYS_SYM = 635,
+     PAGE_SYM = 636,
+     PAGE_CHECKSUM_SYM = 637,
+     PARAM_MARKER = 638,
+     PARSER_SYM = 639,
+     PARSE_VCOL_EXPR_SYM = 640,
+     PARTIAL = 641,
+     PARTITIONING_SYM = 642,
+     PARTITIONS_SYM = 643,
+     PARTITION_SYM = 644,
+     PASSWORD = 645,
+     PERSISTENT_SYM = 646,
+     PHASE_SYM = 647,
+     PLUGINS_SYM = 648,
+     PLUGIN_SYM = 649,
+     POINT_SYM = 650,
+     POLYGON = 651,
+     PORT_SYM = 652,
+     POSITION_SYM = 653,
+     PRECISION = 654,
+     PREPARE_SYM = 655,
+     PRESERVE_SYM = 656,
+     PREV_SYM = 657,
+     PRIMARY_SYM = 658,
+     PRIVILEGES = 659,
+     PROCEDURE_SYM = 660,
+     PROCESS = 661,
+     PROCESSLIST_SYM = 662,
+     PROFILE_SYM = 663,
+     PROFILES_SYM = 664,
+     PROXY_SYM = 665,
+     PURGE = 666,
+     QUARTER_SYM = 667,
+     QUERY_SYM = 668,
+     QUICK = 669,
+     RANGE_SYM = 670,
+     READS_SYM = 671,
+     READ_ONLY_SYM = 672,
+     READ_SYM = 673,
+     READ_WRITE_SYM = 674,
+     REAL = 675,
+     REBUILD_SYM = 676,
+     RECOVER_SYM = 677,
+     REDOFILE_SYM = 678,
+     REDO_BUFFER_SIZE_SYM = 679,
+     REDUNDANT_SYM = 680,
+     REFERENCES = 681,
+     REGEXP = 682,
+     RELAY = 683,
+     RELAYLOG_SYM = 684,
+     RELAY_LOG_FILE_SYM = 685,
+     RELAY_LOG_POS_SYM = 686,
+     RELAY_THREAD = 687,
+     RELEASE_SYM = 688,
+     RELOAD = 689,
+     REMOVE_SYM = 690,
+     RENAME = 691,
+     REORGANIZE_SYM = 692,
+     REPAIR = 693,
+     REPEATABLE_SYM = 694,
+     REPEAT_SYM = 695,
+     REPLACE = 696,
+     REPLICATION = 697,
+     REQUIRE_SYM = 698,
+     RESET_SYM = 699,
+     RESIGNAL_SYM = 700,
+     RESOURCES = 701,
+     RESTORE_SYM = 702,
+     RESTRICT = 703,
+     RESUME_SYM = 704,
+     RETURNS_SYM = 705,
+     RETURN_SYM = 706,
+     REVOKE = 707,
+     RIGHT = 708,
+     ROLLBACK_SYM = 709,
+     ROLLUP_SYM = 710,
+     ROUTINE_SYM = 711,
+     ROWS_SYM = 712,
+     ROW_FORMAT_SYM = 713,
+     ROW_SYM = 714,
+     RTREE_SYM = 715,
+     SAVEPOINT_SYM = 716,
+     SCHEDULE_SYM = 717,
+     SCHEMA_NAME_SYM = 718,
+     SECOND_MICROSECOND_SYM = 719,
+     SECOND_SYM = 720,
+     SECURITY_SYM = 721,
+     SELECT_SYM = 722,
+     SENSITIVE_SYM = 723,
+     SEPARATOR_SYM = 724,
+     SERIALIZABLE_SYM = 725,
+     SERIAL_SYM = 726,
+     SESSION_SYM = 727,
+     SERVER_SYM = 728,
+     SERVER_OPTIONS = 729,
+     SET = 730,
+     SET_VAR = 731,
+     SHARE_SYM = 732,
+     SHIFT_LEFT = 733,
+     SHIFT_RIGHT = 734,
+     SHOW = 735,
+     SHUTDOWN = 736,
+     SIGNAL_SYM = 737,
+     SIGNED_SYM = 738,
+     SIMPLE_SYM = 739,
+     SLAVE = 740,
+     SLOW = 741,
+     SMALLINT = 742,
+     SNAPSHOT_SYM = 743,
+     SOCKET_SYM = 744,
+     SOFT_SYM = 745,
+     SONAME_SYM = 746,
+     SOUNDS_SYM = 747,
+     SOURCE_SYM = 748,
+     SPATIAL_SYM = 749,
+     SPECIFIC_SYM = 750,
+     SQLEXCEPTION_SYM = 751,
+     SQLSTATE_SYM = 752,
+     SQLWARNING_SYM = 753,
+     SQL_BIG_RESULT = 754,
+     SQL_BUFFER_RESULT = 755,
+     SQL_CACHE_SYM = 756,
+     SQL_CALC_FOUND_ROWS = 757,
+     SQL_NO_CACHE_SYM = 758,
+     SQL_SMALL_RESULT = 759,
+     SQL_SYM = 760,
+     SQL_THREAD = 761,
+     SSL_SYM = 762,
+     STARTING = 763,
+     STARTS_SYM = 764,
+     START_SYM = 765,
+     STATUS_SYM = 766,
+     STDDEV_SAMP_SYM = 767,
+     STD_SYM = 768,
+     STOP_SYM = 769,
+     STORAGE_SYM = 770,
+     STRAIGHT_JOIN = 771,
+     STRING_SYM = 772,
+     SUBCLASS_ORIGIN_SYM = 773,
+     SUBDATE_SYM = 774,
+     SUBJECT_SYM = 775,
+     SUBPARTITIONS_SYM = 776,
+     SUBPARTITION_SYM = 777,
+     SUBSTRING = 778,
+     SUM_SYM = 779,
+     SUPER_SYM = 780,
+     SUSPEND_SYM = 781,
+     SWAPS_SYM = 782,
+     SWITCHES_SYM = 783,
+     SYSDATE = 784,
+     TABLES = 785,
+     TABLESPACE = 786,
+     TABLE_REF_PRIORITY = 787,
+     TABLE_STATS_SYM = 788,
+     TABLE_SYM = 789,
+     TABLE_CHECKSUM_SYM = 790,
+     TABLE_NAME_SYM = 791,
+     TEMPORARY = 792,
+     TEMPTABLE_SYM = 793,
+     TERMINATED = 794,
+     TEXT_STRING = 795,
+     TEXT_SYM = 796,
+     THAN_SYM = 797,
+     THEN_SYM = 798,
+     TIMESTAMP = 799,
+     TIMESTAMP_ADD = 800,
+     TIMESTAMP_DIFF = 801,
+     TIME_SYM = 802,
+     TINYBLOB = 803,
+     TINYINT = 804,
+     TINYTEXT = 805,
+     TO_SYM = 806,
+     TRAILING = 807,
+     TRANSACTION_SYM = 808,
+     TRANSACTIONAL_SYM = 809,
+     TRIGGERS_SYM = 810,
+     TRIGGER_SYM = 811,
+     TRIM = 812,
+     TRUE_SYM = 813,
+     TRUNCATE_SYM = 814,
+     TYPES_SYM = 815,
+     TYPE_SYM = 816,
+     UDF_RETURNS_SYM = 817,
+     ULONGLONG_NUM = 818,
+     UNCOMMITTED_SYM = 819,
+     UNDEFINED_SYM = 820,
+     UNDERSCORE_CHARSET = 821,
+     UNDOFILE_SYM = 822,
+     UNDO_BUFFER_SIZE_SYM = 823,
+     UNDO_SYM = 824,
+     UNICODE_SYM = 825,
+     UNINSTALL_SYM = 826,
+     UNION_SYM = 827,
+     UNIQUE_SYM = 828,
+     UNKNOWN_SYM = 829,
+     UNLOCK_SYM = 830,
+     UNSIGNED = 831,
+     UNTIL_SYM = 832,
+     UPDATE_SYM = 833,
+     UPGRADE_SYM = 834,
+     USAGE = 835,
+     USER = 836,
+     USER_STATS_SYM = 837,
+     USE_FRM = 838,
+     USE_SYM = 839,
+     USING = 840,
+     UTC_DATE_SYM = 841,
+     UTC_TIMESTAMP_SYM = 842,
+     UTC_TIME_SYM = 843,
+     VALUES = 844,
+     VALUE_SYM = 845,
+     VARBINARY = 846,
+     VARCHAR = 847,
+     VARIABLES = 848,
+     VARIANCE_SYM = 849,
+     VARYING = 850,
+     VAR_SAMP_SYM = 851,
+     VIA_SYM = 852,
+     VIEW_SYM = 853,
+     VIRTUAL_SYM = 854,
+     WAIT_SYM = 855,
+     WARNINGS = 856,
+     WEEK_SYM = 857,
+     WHEN_SYM = 858,
+     WHERE = 859,
+     WHILE_SYM = 860,
+     WITH = 861,
+     WITH_CUBE_SYM = 862,
+     WITH_ROLLUP_SYM = 863,
+     WORK_SYM = 864,
+     WRAPPER_SYM = 865,
+     WRITE_SYM = 866,
+     X509_SYM = 867,
+     XA_SYM = 868,
+     XML_SYM = 869,
+     XOR = 870,
+     YEAR_MONTH_SYM = 871,
+     YEAR_SYM = 872,
+     ZEROFILL = 873,
+     IMPOSSIBLE_ACTION = 874
    };
 #endif
 /* Tokens.  */
@@ -1765,289 +1766,290 @@ static bool add_create_index (LEX *lex, Key::Keytype type,
 #define MULTIPOINT 588
 #define MULTIPOLYGON 589
 #define MUTEX_SYM 590
-#define MYSQL_ERRNO_SYM 591
-#define NAMES_SYM 592
-#define NAME_SYM 593
-#define NATIONAL_SYM 594
-#define NATURAL 595
-#define NCHAR_STRING 596
-#define NCHAR_SYM 597
-#define NDBCLUSTER_SYM 598
-#define NE 599
-#define NEG 600
-#define NEW_SYM 601
-#define NEXT_SYM 602
-#define NODEGROUP_SYM 603
-#define NONE_SYM 604
-#define NOT2_SYM 605
-#define NOT_SYM 606
-#define NOW_SYM 607
-#define NO_SYM 608
-#define NO_WAIT_SYM 609
-#define NO_WRITE_TO_BINLOG 610
-#define NULL_SYM 611
-#define NUM 612
-#define NUMERIC_SYM 613
-#define NVARCHAR_SYM 614
-#define OFFSET_SYM 615
-#define OLD_PASSWORD 616
-#define ON 617
-#define ONE_SHOT_SYM 618
-#define ONE_SYM 619
-#define ONLINE_SYM 620
-#define OPEN_SYM 621
-#define OPTIMIZE 622
-#define OPTIONS_SYM 623
-#define OPTION 624
-#define OPTIONALLY 625
-#define OR2_SYM 626
-#define ORDER_SYM 627
-#define OR_OR_SYM 628
-#define OR_SYM 629
-#define OUTER 630
-#define OUTFILE 631
-#define OUT_SYM 632
-#define OWNER_SYM 633
-#define PACK_KEYS_SYM 634
-#define PAGE_SYM 635
-#define PAGE_CHECKSUM_SYM 636
-#define PARAM_MARKER 637
-#define PARSER_SYM 638
-#define PARSE_VCOL_EXPR_SYM 639
-#define PARTIAL 640
-#define PARTITIONING_SYM 641
-#define PARTITIONS_SYM 642
-#define PARTITION_SYM 643
-#define PASSWORD 644
-#define PERSISTENT_SYM 645
-#define PHASE_SYM 646
-#define PLUGINS_SYM 647
-#define PLUGIN_SYM 648
-#define POINT_SYM 649
-#define POLYGON 650
-#define PORT_SYM 651
-#define POSITION_SYM 652
-#define PRECISION 653
-#define PREPARE_SYM 654
-#define PRESERVE_SYM 655
-#define PREV_SYM 656
-#define PRIMARY_SYM 657
-#define PRIVILEGES 658
-#define PROCEDURE_SYM 659
-#define PROCESS 660
-#define PROCESSLIST_SYM 661
-#define PROFILE_SYM 662
-#define PROFILES_SYM 663
-#define PROXY_SYM 664
-#define PURGE 665
-#define QUARTER_SYM 666
-#define QUERY_SYM 667
-#define QUICK 668
-#define RANGE_SYM 669
-#define READS_SYM 670
-#define READ_ONLY_SYM 671
-#define READ_SYM 672
-#define READ_WRITE_SYM 673
-#define REAL 674
-#define REBUILD_SYM 675
-#define RECOVER_SYM 676
-#define REDOFILE_SYM 677
-#define REDO_BUFFER_SIZE_SYM 678
-#define REDUNDANT_SYM 679
-#define REFERENCES 680
-#define REGEXP 681
-#define RELAY 682
-#define RELAYLOG_SYM 683
-#define RELAY_LOG_FILE_SYM 684
-#define RELAY_LOG_POS_SYM 685
-#define RELAY_THREAD 686
-#define RELEASE_SYM 687
-#define RELOAD 688
-#define REMOVE_SYM 689
-#define RENAME 690
-#define REORGANIZE_SYM 691
-#define REPAIR 692
-#define REPEATABLE_SYM 693
-#define REPEAT_SYM 694
-#define REPLACE 695
-#define REPLICATION 696
-#define REQUIRE_SYM 697
-#define RESET_SYM 698
-#define RESIGNAL_SYM 699
-#define RESOURCES 700
-#define RESTORE_SYM 701
-#define RESTRICT 702
-#define RESUME_SYM 703
-#define RETURNS_SYM 704
-#define RETURN_SYM 705
-#define REVOKE 706
-#define RIGHT 707
-#define ROLLBACK_SYM 708
-#define ROLLUP_SYM 709
-#define ROUTINE_SYM 710
-#define ROWS_SYM 711
-#define ROW_FORMAT_SYM 712
-#define ROW_SYM 713
-#define RTREE_SYM 714
-#define SAVEPOINT_SYM 715
-#define SCHEDULE_SYM 716
-#define SCHEMA_NAME_SYM 717
-#define SECOND_MICROSECOND_SYM 718
-#define SECOND_SYM 719
-#define SECURITY_SYM 720
-#define SELECT_SYM 721
-#define SENSITIVE_SYM 722
-#define SEPARATOR_SYM 723
-#define SERIALIZABLE_SYM 724
-#define SERIAL_SYM 725
-#define SESSION_SYM 726
-#define SERVER_SYM 727
-#define SERVER_OPTIONS 728
-#define SET 729
-#define SET_VAR 730
-#define SHARE_SYM 731
-#define SHIFT_LEFT 732
-#define SHIFT_RIGHT 733
-#define SHOW 734
-#define SHUTDOWN 735
-#define SIGNAL_SYM 736
-#define SIGNED_SYM 737
-#define SIMPLE_SYM 738
-#define SLAVE 739
-#define SLOW 740
-#define SMALLINT 741
-#define SNAPSHOT_SYM 742
-#define SOCKET_SYM 743
-#define SOFT_SYM 744
-#define SONAME_SYM 745
-#define SOUNDS_SYM 746
-#define SOURCE_SYM 747
-#define SPATIAL_SYM 748
-#define SPECIFIC_SYM 749
-#define SQLEXCEPTION_SYM 750
-#define SQLSTATE_SYM 751
-#define SQLWARNING_SYM 752
-#define SQL_BIG_RESULT 753
-#define SQL_BUFFER_RESULT 754
-#define SQL_CACHE_SYM 755
-#define SQL_CALC_FOUND_ROWS 756
-#define SQL_NO_CACHE_SYM 757
-#define SQL_SMALL_RESULT 758
-#define SQL_SYM 759
-#define SQL_THREAD 760
-#define SSL_SYM 761
-#define STARTING 762
-#define STARTS_SYM 763
-#define START_SYM 764
-#define STATUS_SYM 765
-#define STDDEV_SAMP_SYM 766
-#define STD_SYM 767
-#define STOP_SYM 768
-#define STORAGE_SYM 769
-#define STRAIGHT_JOIN 770
-#define STRING_SYM 771
-#define SUBCLASS_ORIGIN_SYM 772
-#define SUBDATE_SYM 773
-#define SUBJECT_SYM 774
-#define SUBPARTITIONS_SYM 775
-#define SUBPARTITION_SYM 776
-#define SUBSTRING 777
-#define SUM_SYM 778
-#define SUPER_SYM 779
-#define SUSPEND_SYM 780
-#define SWAPS_SYM 781
-#define SWITCHES_SYM 782
-#define SYSDATE 783
-#define TABLES 784
-#define TABLESPACE 785
-#define TABLE_REF_PRIORITY 786
-#define TABLE_STATS_SYM 787
-#define TABLE_SYM 788
-#define TABLE_CHECKSUM_SYM 789
-#define TABLE_NAME_SYM 790
-#define TEMPORARY 791
-#define TEMPTABLE_SYM 792
-#define TERMINATED 793
-#define TEXT_STRING 794
-#define TEXT_SYM 795
-#define THAN_SYM 796
-#define THEN_SYM 797
-#define TIMESTAMP 798
-#define TIMESTAMP_ADD 799
-#define TIMESTAMP_DIFF 800
-#define TIME_SYM 801
-#define TINYBLOB 802
-#define TINYINT 803
-#define TINYTEXT 804
-#define TO_SYM 805
-#define TRAILING 806
-#define TRANSACTION_SYM 807
-#define TRANSACTIONAL_SYM 808
-#define TRIGGERS_SYM 809
-#define TRIGGER_SYM 810
-#define TRIM 811
-#define TRUE_SYM 812
-#define TRUNCATE_SYM 813
-#define TYPES_SYM 814
-#define TYPE_SYM 815
-#define UDF_RETURNS_SYM 816
-#define ULONGLONG_NUM 817
-#define UNCOMMITTED_SYM 818
-#define UNDEFINED_SYM 819
-#define UNDERSCORE_CHARSET 820
-#define UNDOFILE_SYM 821
-#define UNDO_BUFFER_SIZE_SYM 822
-#define UNDO_SYM 823
-#define UNICODE_SYM 824
-#define UNINSTALL_SYM 825
-#define UNION_SYM 826
-#define UNIQUE_SYM 827
-#define UNKNOWN_SYM 828
-#define UNLOCK_SYM 829
-#define UNSIGNED 830
-#define UNTIL_SYM 831
-#define UPDATE_SYM 832
-#define UPGRADE_SYM 833
-#define USAGE 834
-#define USER 835
-#define USER_STATS_SYM 836
-#define USE_FRM 837
-#define USE_SYM 838
-#define USING 839
-#define UTC_DATE_SYM 840
-#define UTC_TIMESTAMP_SYM 841
-#define UTC_TIME_SYM 842
-#define VALUES 843
-#define VALUE_SYM 844
-#define VARBINARY 845
-#define VARCHAR 846
-#define VARIABLES 847
-#define VARIANCE_SYM 848
-#define VARYING 849
-#define VAR_SAMP_SYM 850
-#define VIA_SYM 851
-#define VIEW_SYM 852
-#define VIRTUAL_SYM 853
-#define WAIT_SYM 854
-#define WARNINGS 855
-#define WEEK_SYM 856
-#define WHEN_SYM 857
-#define WHERE 858
-#define WHILE_SYM 859
-#define WITH 860
-#define WITH_CUBE_SYM 861
-#define WITH_ROLLUP_SYM 862
-#define WORK_SYM 863
-#define WRAPPER_SYM 864
-#define WRITE_SYM 865
-#define X509_SYM 866
-#define XA_SYM 867
-#define XML_SYM 868
-#define XOR 869
-#define YEAR_MONTH_SYM 870
-#define YEAR_SYM 871
-#define ZEROFILL 872
-#define IMPOSSIBLE_ACTION 873
+#define MYSQL_SYM 591
+#define MYSQL_ERRNO_SYM 592
+#define NAMES_SYM 593
+#define NAME_SYM 594
+#define NATIONAL_SYM 595
+#define NATURAL 596
+#define NCHAR_STRING 597
+#define NCHAR_SYM 598
+#define NDBCLUSTER_SYM 599
+#define NE 600
+#define NEG 601
+#define NEW_SYM 602
+#define NEXT_SYM 603
+#define NODEGROUP_SYM 604
+#define NONE_SYM 605
+#define NOT2_SYM 606
+#define NOT_SYM 607
+#define NOW_SYM 608
+#define NO_SYM 609
+#define NO_WAIT_SYM 610
+#define NO_WRITE_TO_BINLOG 611
+#define NULL_SYM 612
+#define NUM 613
+#define NUMERIC_SYM 614
+#define NVARCHAR_SYM 615
+#define OFFSET_SYM 616
+#define OLD_PASSWORD 617
+#define ON 618
+#define ONE_SHOT_SYM 619
+#define ONE_SYM 620
+#define ONLINE_SYM 621
+#define OPEN_SYM 622
+#define OPTIMIZE 623
+#define OPTIONS_SYM 624
+#define OPTION 625
+#define OPTIONALLY 626
+#define OR2_SYM 627
+#define ORDER_SYM 628
+#define OR_OR_SYM 629
+#define OR_SYM 630
+#define OUTER 631
+#define OUTFILE 632
+#define OUT_SYM 633
+#define OWNER_SYM 634
+#define PACK_KEYS_SYM 635
+#define PAGE_SYM 636
+#define PAGE_CHECKSUM_SYM 637
+#define PARAM_MARKER 638
+#define PARSER_SYM 639
+#define PARSE_VCOL_EXPR_SYM 640
+#define PARTIAL 641
+#define PARTITIONING_SYM 642
+#define PARTITIONS_SYM 643
+#define PARTITION_SYM 644
+#define PASSWORD 645
+#define PERSISTENT_SYM 646
+#define PHASE_SYM 647
+#define PLUGINS_SYM 648
+#define PLUGIN_SYM 649
+#define POINT_SYM 650
+#define POLYGON 651
+#define PORT_SYM 652
+#define POSITION_SYM 653
+#define PRECISION 654
+#define PREPARE_SYM 655
+#define PRESERVE_SYM 656
+#define PREV_SYM 657
+#define PRIMARY_SYM 658
+#define PRIVILEGES 659
+#define PROCEDURE_SYM 660
+#define PROCESS 661
+#define PROCESSLIST_SYM 662
+#define PROFILE_SYM 663
+#define PROFILES_SYM 664
+#define PROXY_SYM 665
+#define PURGE 666
+#define QUARTER_SYM 667
+#define QUERY_SYM 668
+#define QUICK 669
+#define RANGE_SYM 670
+#define READS_SYM 671
+#define READ_ONLY_SYM 672
+#define READ_SYM 673
+#define READ_WRITE_SYM 674
+#define REAL 675
+#define REBUILD_SYM 676
+#define RECOVER_SYM 677
+#define REDOFILE_SYM 678
+#define REDO_BUFFER_SIZE_SYM 679
+#define REDUNDANT_SYM 680
+#define REFERENCES 681
+#define REGEXP 682
+#define RELAY 683
+#define RELAYLOG_SYM 684
+#define RELAY_LOG_FILE_SYM 685
+#define RELAY_LOG_POS_SYM 686
+#define RELAY_THREAD 687
+#define RELEASE_SYM 688
+#define RELOAD 689
+#define REMOVE_SYM 690
+#define RENAME 691
+#define REORGANIZE_SYM 692
+#define REPAIR 693
+#define REPEATABLE_SYM 694
+#define REPEAT_SYM 695
+#define REPLACE 696
+#define REPLICATION 697
+#define REQUIRE_SYM 698
+#define RESET_SYM 699
+#define RESIGNAL_SYM 700
+#define RESOURCES 701
+#define RESTORE_SYM 702
+#define RESTRICT 703
+#define RESUME_SYM 704
+#define RETURNS_SYM 705
+#define RETURN_SYM 706
+#define REVOKE 707
+#define RIGHT 708
+#define ROLLBACK_SYM 709
+#define ROLLUP_SYM 710
+#define ROUTINE_SYM 711
+#define ROWS_SYM 712
+#define ROW_FORMAT_SYM 713
+#define ROW_SYM 714
+#define RTREE_SYM 715
+#define SAVEPOINT_SYM 716
+#define SCHEDULE_SYM 717
+#define SCHEMA_NAME_SYM 718
+#define SECOND_MICROSECOND_SYM 719
+#define SECOND_SYM 720
+#define SECURITY_SYM 721
+#define SELECT_SYM 722
+#define SENSITIVE_SYM 723
+#define SEPARATOR_SYM 724
+#define SERIALIZABLE_SYM 725
+#define SERIAL_SYM 726
+#define SESSION_SYM 727
+#define SERVER_SYM 728
+#define SERVER_OPTIONS 729
+#define SET 730
+#define SET_VAR 731
+#define SHARE_SYM 732
+#define SHIFT_LEFT 733
+#define SHIFT_RIGHT 734
+#define SHOW 735
+#define SHUTDOWN 736
+#define SIGNAL_SYM 737
+#define SIGNED_SYM 738
+#define SIMPLE_SYM 739
+#define SLAVE 740
+#define SLOW 741
+#define SMALLINT 742
+#define SNAPSHOT_SYM 743
+#define SOCKET_SYM 744
+#define SOFT_SYM 745
+#define SONAME_SYM 746
+#define SOUNDS_SYM 747
+#define SOURCE_SYM 748
+#define SPATIAL_SYM 749
+#define SPECIFIC_SYM 750
+#define SQLEXCEPTION_SYM 751
+#define SQLSTATE_SYM 752
+#define SQLWARNING_SYM 753
+#define SQL_BIG_RESULT 754
+#define SQL_BUFFER_RESULT 755
+#define SQL_CACHE_SYM 756
+#define SQL_CALC_FOUND_ROWS 757
+#define SQL_NO_CACHE_SYM 758
+#define SQL_SMALL_RESULT 759
+#define SQL_SYM 760
+#define SQL_THREAD 761
+#define SSL_SYM 762
+#define STARTING 763
+#define STARTS_SYM 764
+#define START_SYM 765
+#define STATUS_SYM 766
+#define STDDEV_SAMP_SYM 767
+#define STD_SYM 768
+#define STOP_SYM 769
+#define STORAGE_SYM 770
+#define STRAIGHT_JOIN 771
+#define STRING_SYM 772
+#define SUBCLASS_ORIGIN_SYM 773
+#define SUBDATE_SYM 774
+#define SUBJECT_SYM 775
+#define SUBPARTITIONS_SYM 776
+#define SUBPARTITION_SYM 777
+#define SUBSTRING 778
+#define SUM_SYM 779
+#define SUPER_SYM 780
+#define SUSPEND_SYM 781
+#define SWAPS_SYM 782
+#define SWITCHES_SYM 783
+#define SYSDATE 784
+#define TABLES 785
+#define TABLESPACE 786
+#define TABLE_REF_PRIORITY 787
+#define TABLE_STATS_SYM 788
+#define TABLE_SYM 789
+#define TABLE_CHECKSUM_SYM 790
+#define TABLE_NAME_SYM 791
+#define TEMPORARY 792
+#define TEMPTABLE_SYM 793
+#define TERMINATED 794
+#define TEXT_STRING 795
+#define TEXT_SYM 796
+#define THAN_SYM 797
+#define THEN_SYM 798
+#define TIMESTAMP 799
+#define TIMESTAMP_ADD 800
+#define TIMESTAMP_DIFF 801
+#define TIME_SYM 802
+#define TINYBLOB 803
+#define TINYINT 804
+#define TINYTEXT 805
+#define TO_SYM 806
+#define TRAILING 807
+#define TRANSACTION_SYM 808
+#define TRANSACTIONAL_SYM 809
+#define TRIGGERS_SYM 810
+#define TRIGGER_SYM 811
+#define TRIM 812
+#define TRUE_SYM 813
+#define TRUNCATE_SYM 814
+#define TYPES_SYM 815
+#define TYPE_SYM 816
+#define UDF_RETURNS_SYM 817
+#define ULONGLONG_NUM 818
+#define UNCOMMITTED_SYM 819
+#define UNDEFINED_SYM 820
+#define UNDERSCORE_CHARSET 821
+#define UNDOFILE_SYM 822
+#define UNDO_BUFFER_SIZE_SYM 823
+#define UNDO_SYM 824
+#define UNICODE_SYM 825
+#define UNINSTALL_SYM 826
+#define UNION_SYM 827
+#define UNIQUE_SYM 828
+#define UNKNOWN_SYM 829
+#define UNLOCK_SYM 830
+#define UNSIGNED 831
+#define UNTIL_SYM 832
+#define UPDATE_SYM 833
+#define UPGRADE_SYM 834
+#define USAGE 835
+#define USER 836
+#define USER_STATS_SYM 837
+#define USE_FRM 838
+#define USE_SYM 839
+#define USING 840
+#define UTC_DATE_SYM 841
+#define UTC_TIMESTAMP_SYM 842
+#define UTC_TIME_SYM 843
+#define VALUES 844
+#define VALUE_SYM 845
+#define VARBINARY 846
+#define VARCHAR 847
+#define VARIABLES 848
+#define VARIANCE_SYM 849
+#define VARYING 850
+#define VAR_SAMP_SYM 851
+#define VIA_SYM 852
+#define VIEW_SYM 853
+#define VIRTUAL_SYM 854
+#define WAIT_SYM 855
+#define WARNINGS 856
+#define WEEK_SYM 857
+#define WHEN_SYM 858
+#define WHERE 859
+#define WHILE_SYM 860
+#define WITH 861
+#define WITH_CUBE_SYM 862
+#define WITH_ROLLUP_SYM 863
+#define WORK_SYM 864
+#define WRAPPER_SYM 865
+#define WRITE_SYM 866
+#define X509_SYM 867
+#define XA_SYM 868
+#define XML_SYM 869
+#define XOR 870
+#define YEAR_MONTH_SYM 871
+#define YEAR_SYM 872
+#define ZEROFILL 873
+#define IMPOSSIBLE_ACTION 874
 
 
 
@@ -2057,7 +2059,7 @@ typedef union YYSTYPE
 {
 
 /* Line 214 of yacc.c  */
-#line 732 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 732 "/home/buildbot/git/sql/sql_yacc.yy"
 
   int  num;
   ulong ulong_num;
@@ -2113,7 +2115,7 @@ typedef union YYSTYPE
 
 
 /* Line 214 of yacc.c  */
-#line 2117 "/home/buildbot/bzr/build/mkdist/sql/sql_yacc.cc"
+#line 2119 "/home/buildbot/git/mkdist/sql/sql_yacc.cc"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -2124,13 +2126,13 @@ typedef union YYSTYPE
 /* Copy the second part of user declarations.  */
 
 /* Line 264 of yacc.c  */
-#line 785 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 785 "/home/buildbot/git/sql/sql_yacc.yy"
 
 bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
 
 
 /* Line 264 of yacc.c  */
-#line 2134 "/home/buildbot/bzr/build/mkdist/sql/sql_yacc.cc"
+#line 2136 "/home/buildbot/git/mkdist/sql/sql_yacc.cc"
 
 #ifdef short
 # undef short
@@ -2343,22 +2345,22 @@ union yyalloc
 #endif
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  601
+#define YYFINAL  604
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   56382
+#define YYLAST   56493
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  638
+#define YYNTOKENS  639
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  924
+#define YYNNTS  925
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  2632
+#define YYNRULES  2636
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  4459
+#define YYNSTATES  4464
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   873
+#define YYMAXUTOK   874
 
 #define YYTRANSLATE(YYX)						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -2369,16 +2371,16 @@ static const yytype_uint16 yytranslate[] =
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   631,     2,     2,     2,   625,   620,     2,
-     628,   629,   623,   622,   630,   621,   636,   624,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,   637,   634,
-       2,     2,     2,     2,   635,     2,     2,     2,     2,     2,
+       2,     2,     2,   632,     2,     2,     2,   626,   621,     2,
+     629,   630,   624,   623,   631,   622,   637,   625,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,   638,   635,
+       2,     2,     2,     2,   636,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,   626,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,   627,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,   632,   619,   633,   627,     2,     2,     2,
+       2,     2,     2,   633,   620,   634,   628,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -2453,7 +2455,7 @@ static const yytype_uint16 yytranslate[] =
      585,   586,   587,   588,   589,   590,   591,   592,   593,   594,
      595,   596,   597,   598,   599,   600,   601,   602,   603,   604,
      605,   606,   607,   608,   609,   610,   611,   612,   613,   614,
-     615,   616,   617,   618
+     615,   616,   617,   618,   619
 };
 
 #if YYDEBUG
@@ -2561,1148 +2563,1147 @@ static const yytype_uint16 yyprhs[] =
     2765,  2766,  2768,  2770,  2772,  2773,  2779,  2783,  2784,  2790,
     2794,  2798,  2799,  2803,  2804,  2807,  2809,  2813,  2814,  2816,
     2818,  2819,  2822,  2824,  2828,  2829,  2835,  2836,  2838,  2840,
-    2841,  2848,  2849,  2851,  2853,  2856,  2858,  2860,  2862,  2863,
-    2869,  2872,  2873,  2879,  2880,  2882,  2884,  2887,  2889,  2891,
-    2893,  2895,  2897,  2900,  2901,  2907,  2908,  2910,  2912,  2913,
-    2918,  2923,  2927,  2933,  2935,  2939,  2943,  2944,  2951,  2953,
-    2955,  2957,  2961,  2964,  2968,  2970,  2972,  2973,  2980,  2982,
-    2984,  2986,  2990,  2994,  2999,  3000,  3007,  3008,  3011,  3012,
-    3017,  3018,  3021,  3023,  3026,  3031,  3034,  3038,  3041,  3045,
-    3046,  3050,  3051,  3052,  3059,  3062,  3064,  3066,  3069,  3072,
-    3081,  3086,  3087,  3089,  3092,  3094,  3096,  3098,  3100,  3101,
-    3104,  3109,  3113,  3115,  3117,  3121,  3126,  3127,  3128,  3129,
-    3132,  3135,  3137,  3139,  3140,  3143,  3147,  3148,  3151,  3155,
-    3159,  3163,  3166,  3170,  3175,  3179,  3184,  3188,  3193,  3195,
-    3199,  3204,  3208,  3212,  3219,  3221,  3227,  3234,  3240,  3248,
-    3255,  3264,  3270,  3277,  3282,  3287,  3293,  3297,  3302,  3304,
-    3308,  3312,  3316,  3320,  3324,  3328,  3334,  3340,  3344,  3348,
-    3352,  3356,  3360,  3364,  3366,  3368,  3370,  3372,  3374,  3376,
-    3378,  3380,  3382,  3384,  3386,  3388,  3390,  3392,  3394,  3396,
-    3398,  3399,  3402,  3404,  3407,  3409,  3411,  3413,  3416,  3419,
-    3421,  3423,  3426,  3429,  3434,  3436,  3440,  3442,  3444,  3446,
-    3448,  3450,  3454,  3456,  3458,  3460,  3462,  3466,  3469,  3472,
-    3475,  3478,  3482,  3486,  3492,  3499,  3504,  3509,  3517,  3520,
-    3527,  3533,  3540,  3547,  3552,  3557,  3563,  3568,  3575,  3578,
-    3583,  3588,  3593,  3604,  3611,  3620,  3627,  3632,  3637,  3644,
-    3649,  3654,  3659,  3666,  3671,  3679,  3687,  3695,  3702,  3709,
-    3716,  3723,  3727,  3732,  3739,  3748,  3751,  3754,  3763,  3772,
-    3779,  3786,  3789,  3796,  3803,  3812,  3821,  3828,  3837,  3844,
-    3847,  3856,  3865,  3868,  3871,  3874,  3881,  3888,  3895,  3900,
-    3905,  3914,  3919,  3924,  3929,  3934,  3938,  3947,  3952,  3957,
-    3964,  3969,  3974,  3979,  3986,  3995,  4002,  4007,  4014,  4016,
-    4023,  4028,  4033,  4038,  4043,  4048,  4055,  4060,  4061,  4067,
-    4074,  4077,  4081,  4082,  4087,  4088,  4092,  4093,  4095,  4097,
-    4101,  4106,  4111,  4117,  4122,  4127,  4132,  4138,  4143,  4144,
-    4145,  4153,  4158,  4164,  4169,  4175,  4180,  4185,  4190,  4195,
-    4200,  4206,  4207,  4216,  4217,  4221,  4225,  4227,  4232,  4233,
-    4235,  4236,  4239,  4240,  4241,  4246,  4251,  4254,  4255,  4259,
-    4262,  4266,  4269,  4271,  4273,  4276,  4278,  4281,  4283,  4286,
-    4289,  4292,  4293,  4297,  4298,  4300,  4302,  4306,  4308,  4312,
-    4314,  4318,  4319,  4321,  4322,  4325,  4330,  4336,  4338,  4340,
-    4342,  4344,  4349,  4351,  4355,  4359,  4363,  4364,  4371,  4372,
-    4379,  4380,  4389,  4394,  4395,  4404,  4405,  4416,  4423,  4424,
-    4433,  4434,  4445,  4452,  4454,  4457,  4460,  4461,  4466,  4470,
-    4476,  4479,  4480,  4481,  4489,  4491,  4492,  4493,  4500,  4501,
-    4505,  4506,  4507,  4513,  4514,  4516,  4517,  4519,  4520,  4523,
-    4527,  4531,  4533,  4535,  4536,  4544,  4545,  4553,  4555,  4558,
-    4559,  4560,  4563,  4564,  4567,  4568,  4570,  4572,  4574,  4576,
-    4580,  4582,  4586,  4588,  4590,  4592,  4594,  4596,  4598,  4600,
-    4602,  4604,  4606,  4608,  4610,  4612,  4614,  4616,  4618,  4620,
-    4622,  4624,  4626,  4628,  4630,  4632,  4634,  4636,  4637,  4639,
-    4641,  4642,  4645,  4646,  4648,  4649,  4650,  4654,  4655,  4656,
-    4660,  4663,  4664,  4665,  4670,  4675,  4678,  4679,  4681,  4683,
-    4687,  4691,  4693,  4696,  4697,  4699,  4700,  4705,  4710,  4713,
-    4714,  4716,  4718,  4719,  4721,  4722,  4724,  4727,  4733,  4738,
-    4740,  4744,  4748,  4750,  4752,  4754,  4756,  4758,  4760,  4761,
-    4764,  4768,  4773,  4775,  4778,  4781,  4783,  4785,  4787,  4789,
-    4791,  4793,  4795,  4797,  4799,  4801,  4803,  4805,  4807,  4809,
-    4811,  4813,  4815,  4817,  4819,  4821,  4823,  4825,  4827,  4829,
-    4831,  4833,  4834,  4835,  4842,  4843,  4845,  4849,  4851,  4855,
-    4856,  4859,  4863,  4865,  4868,  4870,  4871,  4875,  4876,  4877,
-    4885,  4888,  4890,  4891,  4895,  4896,  4904,  4905,  4912,  4917,
-    4924,  4929,  4934,  4939,  4940,  4947,  4952,  4957,  4963,  4970,
-    4975,  4977,  4981,  4983,  4985,  4989,  4991,  4992,  4995,  4996,
-    4998,  4999,  5000,  5009,  5010,  5011,  5018,  5019,  5021,  5023,
-    5025,  5027,  5029,  5032,  5034,  5036,  5038,  5042,  5047,  5048,
-    5052,  5056,  5058,  5061,  5064,  5065,  5069,  5070,  5076,  5080,
-    5082,  5086,  5088,  5092,  5094,  5096,  5097,  5099,  5100,  5105,
-    5106,  5108,  5112,  5114,  5116,  5118,  5119,  5120,  5127,  5128,
-    5129,  5141,  5145,  5147,  5151,  5155,  5157,  5161,  5162,  5164,
-    5165,  5170,  5171,  5178,  5179,  5185,  5186,  5193,  5195,  5199,
-    5202,  5207,  5208,  5211,  5212,  5215,  5217,  5219,  5221,  5222,
-    5227,  5228,  5230,  5231,  5233,  5235,  5239,  5241,  5243,  5246,
-    5249,  5252,  5254,  5256,  5258,  5260,  5261,  5265,  5266,  5270,
-    5273,  5278,  5283,  5287,  5292,  5297,  5299,  5303,  5307,  5314,
-    5317,  5320,  5321,  5328,  5329,  5336,  5342,  5345,  5347,  5349,
-    5351,  5357,  5363,  5366,  5369,  5371,  5376,  5380,  5383,  5387,
-    5390,  5393,  5395,  5399,  5404,  5408,  5412,  5415,  5418,  5420,
-    5422,  5424,  5426,  5430,  5434,  5438,  5442,  5446,  5450,  5454,
-    5458,  5460,  5462,  5464,  5466,  5468,  5469,  5471,  5472,  5475,
-    5476,  5478,  5480,  5482,  5483,  5486,  5487,  5490,  5491,  5494,
-    5497,  5498,  5503,  5504,  5509,  5511,  5513,  5514,  5516,  5518,
-    5519,  5521,  5523,  5524,  5529,  5530,  5531,  5537,  5539,  5540,
-    5545,  5549,  5551,  5554,  5557,  5560,  5563,  5566,  5569,  5572,
-    5574,  5576,  5578,  5580,  5582,  5584,  5586,  5588,  5590,  5592,
-    5594,  5596,  5597,  5599,  5600,  5604,  5605,  5609,  5613,  5615,
-    5616,  5620,  5622,  5625,  5626,  5628,  5629,  5633,  5637,  5640,
-    5643,  5644,  5650,  5651,  5653,  5655,  5656,  5658,  5660,  5662,
-    5665,  5668,  5669,  5670,  5671,  5672,  5694,  5696,  5698,  5699,
-    5701,  5702,  5704,  5706,  5707,  5709,  5711,  5712,  5715,  5718,
-    5720,  5724,  5729,  5733,  5737,  5738,  5741,  5744,  5746,  5750,
-    5754,  5755,  5760,  5761,  5765,  5767,  5769,  5770,  5774,  5777,
-    5781,  5783,  5785,  5788,  5789,  5792,  5796,  5798,  5804,  5806,
-    5808,  5811,  5814,  5816,  5818,  5820,  5822,  5824,  5826,  5829,
-    5832,  5834,  5836,  5838,  5840,  5842,  5844,  5846,  5848,  5851,
-    5854,  5857,  5860,  5863,  5865,  5867,  5869,  5871,  5873,  5875,
-    5877,  5881,  5887,  5889,  5891,  5893,  5895,  5897,  5901,  5906,
-    5912,  5914,  5920,  5924,  5927,  5929,  5933,  5936,  5939,  5944,
-    5946,  5948,  5950,  5952,  5954,  5956,  5958,  5960,  5962,  5964,
-    5966,  5968,  5970,  5972,  5976,  5979,  5981,  5983,  5985,  5987,
-    5989,  5991,  5993,  5995,  5997,  5999,  6001,  6003,  6005,  6007,
-    6009,  6011,  6013,  6015,  6017,  6019,  6021,  6023,  6025,  6027,
-    6029,  6031,  6033,  6035,  6037,  6039,  6041,  6043,  6045,  6047,
-    6049,  6051,  6053,  6055,  6057,  6059,  6061,  6063,  6065,  6067,
-    6069,  6071,  6073,  6075,  6077,  6079,  6081,  6083,  6085,  6087,
-    6089,  6091,  6093,  6095,  6097,  6099,  6101,  6103,  6105,  6107,
-    6109,  6111,  6113,  6115,  6117,  6119,  6121,  6123,  6125,  6127,
-    6129,  6131,  6133,  6135,  6137,  6139,  6141,  6143,  6145,  6147,
-    6149,  6151,  6153,  6155,  6157,  6159,  6161,  6163,  6165,  6167,
-    6169,  6171,  6173,  6175,  6177,  6179,  6181,  6183,  6185,  6187,
-    6189,  6191,  6193,  6195,  6197,  6199,  6201,  6203,  6205,  6207,
-    6209,  6211,  6213,  6215,  6217,  6219,  6221,  6223,  6225,  6227,
-    6229,  6231,  6233,  6235,  6237,  6239,  6241,  6243,  6245,  6247,
-    6249,  6251,  6253,  6255,  6257,  6259,  6261,  6263,  6265,  6267,
-    6269,  6271,  6273,  6275,  6277,  6279,  6281,  6283,  6285,  6287,
-    6289,  6291,  6293,  6295,  6297,  6299,  6301,  6303,  6305,  6307,
-    6309,  6311,  6313,  6315,  6317,  6319,  6321,  6323,  6325,  6327,
-    6329,  6331,  6333,  6335,  6337,  6339,  6341,  6343,  6345,  6347,
-    6349,  6351,  6353,  6355,  6357,  6359,  6361,  6363,  6365,  6367,
-    6369,  6371,  6373,  6375,  6377,  6379,  6381,  6383,  6385,  6387,
-    6389,  6391,  6393,  6395,  6397,  6399,  6401,  6403,  6405,  6407,
-    6409,  6411,  6413,  6415,  6417,  6419,  6421,  6423,  6425,  6427,
-    6429,  6431,  6433,  6435,  6437,  6439,  6441,  6443,  6445,  6447,
-    6449,  6451,  6453,  6455,  6457,  6459,  6461,  6463,  6465,  6467,
-    6469,  6471,  6473,  6475,  6477,  6479,  6481,  6483,  6485,  6487,
-    6489,  6491,  6493,  6495,  6497,  6499,  6501,  6503,  6505,  6507,
-    6509,  6511,  6513,  6515,  6517,  6519,  6521,  6523,  6525,  6527,
-    6529,  6531,  6533,  6535,  6537,  6539,  6541,  6543,  6545,  6547,
-    6549,  6551,  6553,  6555,  6557,  6559,  6561,  6563,  6565,  6567,
-    6569,  6571,  6573,  6575,  6577,  6579,  6581,  6583,  6585,  6587,
-    6589,  6591,  6593,  6595,  6597,  6599,  6601,  6603,  6605,  6607,
-    6609,  6611,  6613,  6615,  6617,  6619,  6621,  6623,  6625,  6627,
-    6629,  6631,  6633,  6635,  6637,  6639,  6641,  6643,  6645,  6647,
-    6649,  6651,  6653,  6655,  6657,  6659,  6661,  6663,  6665,  6667,
-    6669,  6671,  6673,  6675,  6677,  6679,  6681,  6682,  6687,  6688,
-    6690,  6692,  6696,  6697,  6700,  6702,  6704,  6706,  6708,  6709,
-    6711,  6712,  6714,  6716,  6718,  6719,  6722,  6725,  6728,  6730,
-    6733,  6738,  6744,  6749,  6756,  6759,  6763,  6767,  6771,  6777,
-    6779,  6783,  6787,  6790,  6793,  6796,  6798,  6800,  6805,  6810,
-    6812,  6814,  6816,  6818,  6820,  6821,  6826,  6828,  6830,  6832,
-    6836,  6840,  6842,  6844,  6847,  6850,  6853,  6854,  6858,  6863,
-    6867,  6868,  6876,  6878,  6881,  6883,  6885,  6887,  6889,  6891,
-    6893,  6894,  6900,  6902,  6904,  6906,  6908,  6910,  6914,  6921,
-    6928,  6935,  6943,  6949,  6953,  6962,  6971,  6980,  6987,  6988,
-    6990,  6992,  6995,  6996,  6998,  7000,  7004,  7005,  7009,  7010,
-    7014,  7015,  7019,  7020,  7024,  7026,  7028,  7030,  7032,  7034,
-    7036,  7038,  7040,  7042,  7044,  7046,  7049,  7052,  7054,  7058,
-    7061,  7064,  7067,  7070,  7073,  7076,  7079,  7082,  7084,  7086,
-    7089,  7090,  7092,  7096,  7098,  7101,  7104,  7107,  7109,  7113,
-    7117,  7119,  7121,  7125,  7127,  7131,  7133,  7135,  7137,  7139,
-    7144,  7150,  7155,  7162,  7164,  7165,  7169,  7173,  7175,  7177,
-    7178,  7181,  7184,  7187,  7190,  7191,  7194,  7195,  7199,  7202,
-    7204,  7207,  7210,  7213,  7216,  7219,  7220,  7224,  7225,  7227,
-    7228,  7232,  7235,  7236,  7238,  7241,  7242,  7244,  7249,  7254,
-    7260,  7263,  7267,  7268,  7270,  7271,  7276,  7277,  7279,  7281,
-    7282,  7284,  7285,  7288,  7291,  7293,  7294,  7296,  7298,  7301,
-    7305,  7308,  7309,  7316,  7320,  7321,  7322,  7323,  7325,  7328,
-    7330,  7332,  7334,  7336,  7338,  7340,  7342,  7344,  7346,  7349,
-    7352,  7356,  7358,  7360,  7362,  7364,  7366,  7368,  7370,  7372,
-    7374,  7376,  7378,  7380,  7382,  7383,  7387,  7389,  7392,  7394,
-    7397,  7401,  7405,  7409,  7410,  7414,  7418,  7419,  7427,  7428,
-    7432,  7434,  7438,  7439,  7443,  7446,  7451,  7452,  7456,  7461,
-    7466,  7467,  7468,  7469,  7486,  7495,  7503,  7504,  7505,  7506,
-    7507,  7508,  7524,  7525,  7526,  7527,  7528,  7541,  7546,  7551,
-    7555,  7560,  7564,  7567,  7569,  7573,  7579,  7581,  7583,  7584,
-    7586,  7588,  7589,  7592,  7593,  7594,  7598,  7599,  7602,  7608,
-    7612,  7616,  7620
+    2841,  2848,  2849,  2851,  2853,  2856,  2858,  2860,  2862,  2865,
+    2866,  2872,  2875,  2876,  2882,  2883,  2885,  2887,  2890,  2892,
+    2894,  2896,  2898,  2900,  2903,  2904,  2910,  2911,  2913,  2915,
+    2916,  2921,  2926,  2930,  2936,  2938,  2942,  2946,  2947,  2954,
+    2956,  2958,  2960,  2964,  2967,  2971,  2973,  2975,  2976,  2983,
+    2985,  2987,  2989,  2993,  2997,  3002,  3003,  3010,  3011,  3014,
+    3015,  3020,  3021,  3024,  3026,  3029,  3034,  3037,  3041,  3044,
+    3048,  3049,  3053,  3054,  3055,  3062,  3065,  3067,  3069,  3072,
+    3075,  3084,  3089,  3090,  3092,  3095,  3097,  3099,  3101,  3103,
+    3104,  3107,  3112,  3116,  3118,  3120,  3124,  3129,  3130,  3131,
+    3132,  3135,  3138,  3140,  3142,  3143,  3146,  3150,  3151,  3154,
+    3158,  3162,  3166,  3169,  3173,  3178,  3182,  3187,  3191,  3196,
+    3198,  3202,  3207,  3211,  3215,  3222,  3224,  3230,  3237,  3243,
+    3251,  3258,  3267,  3273,  3280,  3285,  3290,  3296,  3300,  3305,
+    3307,  3311,  3315,  3319,  3323,  3327,  3331,  3337,  3343,  3347,
+    3351,  3355,  3359,  3363,  3367,  3369,  3371,  3373,  3375,  3377,
+    3379,  3381,  3383,  3385,  3387,  3389,  3391,  3393,  3395,  3397,
+    3399,  3401,  3402,  3405,  3407,  3410,  3412,  3414,  3416,  3419,
+    3422,  3424,  3426,  3429,  3432,  3437,  3439,  3443,  3445,  3447,
+    3449,  3451,  3453,  3457,  3459,  3461,  3463,  3465,  3469,  3472,
+    3475,  3478,  3481,  3485,  3489,  3495,  3502,  3507,  3512,  3520,
+    3523,  3530,  3536,  3543,  3550,  3555,  3560,  3566,  3571,  3578,
+    3581,  3586,  3591,  3596,  3607,  3614,  3623,  3630,  3635,  3640,
+    3647,  3652,  3657,  3662,  3669,  3674,  3682,  3690,  3698,  3705,
+    3712,  3719,  3726,  3730,  3735,  3742,  3751,  3754,  3757,  3766,
+    3775,  3782,  3789,  3792,  3799,  3806,  3815,  3824,  3831,  3840,
+    3847,  3850,  3859,  3868,  3871,  3874,  3877,  3884,  3891,  3898,
+    3903,  3908,  3917,  3922,  3927,  3932,  3937,  3941,  3950,  3955,
+    3960,  3967,  3972,  3977,  3982,  3989,  3998,  4005,  4010,  4017,
+    4019,  4026,  4031,  4036,  4041,  4046,  4051,  4058,  4063,  4064,
+    4070,  4077,  4080,  4084,  4085,  4090,  4091,  4095,  4096,  4098,
+    4100,  4104,  4109,  4114,  4120,  4125,  4130,  4135,  4141,  4146,
+    4147,  4148,  4156,  4161,  4167,  4172,  4178,  4183,  4188,  4193,
+    4198,  4203,  4209,  4210,  4219,  4220,  4224,  4228,  4230,  4235,
+    4236,  4238,  4239,  4242,  4243,  4244,  4249,  4254,  4257,  4258,
+    4262,  4265,  4269,  4272,  4274,  4276,  4279,  4281,  4284,  4286,
+    4289,  4292,  4295,  4296,  4300,  4301,  4303,  4305,  4309,  4311,
+    4315,  4317,  4321,  4322,  4324,  4325,  4328,  4333,  4339,  4341,
+    4343,  4345,  4347,  4352,  4354,  4358,  4362,  4366,  4367,  4374,
+    4375,  4382,  4383,  4392,  4397,  4398,  4407,  4408,  4419,  4426,
+    4427,  4436,  4437,  4448,  4455,  4457,  4460,  4463,  4464,  4469,
+    4473,  4479,  4482,  4483,  4484,  4492,  4494,  4495,  4496,  4503,
+    4504,  4508,  4509,  4510,  4516,  4517,  4519,  4520,  4522,  4523,
+    4526,  4530,  4534,  4536,  4538,  4539,  4547,  4548,  4556,  4558,
+    4561,  4562,  4563,  4566,  4567,  4570,  4571,  4573,  4575,  4577,
+    4579,  4583,  4585,  4589,  4591,  4593,  4595,  4597,  4599,  4601,
+    4603,  4605,  4607,  4609,  4611,  4613,  4615,  4617,  4619,  4621,
+    4623,  4625,  4627,  4629,  4631,  4633,  4635,  4637,  4639,  4640,
+    4642,  4644,  4645,  4648,  4649,  4651,  4652,  4653,  4657,  4658,
+    4659,  4663,  4666,  4667,  4668,  4673,  4678,  4681,  4682,  4684,
+    4686,  4690,  4694,  4696,  4699,  4700,  4702,  4703,  4708,  4713,
+    4716,  4717,  4719,  4721,  4722,  4724,  4725,  4727,  4730,  4736,
+    4741,  4743,  4747,  4751,  4753,  4755,  4757,  4759,  4761,  4763,
+    4764,  4767,  4771,  4776,  4778,  4781,  4784,  4786,  4788,  4790,
+    4792,  4794,  4796,  4798,  4800,  4802,  4804,  4806,  4808,  4810,
+    4812,  4814,  4816,  4818,  4820,  4822,  4824,  4826,  4828,  4830,
+    4832,  4834,  4836,  4837,  4838,  4845,  4846,  4848,  4852,  4854,
+    4858,  4859,  4862,  4866,  4868,  4871,  4873,  4874,  4878,  4879,
+    4880,  4888,  4891,  4893,  4894,  4898,  4899,  4907,  4908,  4915,
+    4920,  4927,  4932,  4937,  4942,  4943,  4950,  4955,  4960,  4966,
+    4973,  4978,  4980,  4984,  4986,  4988,  4992,  4994,  4995,  4998,
+    4999,  5001,  5002,  5003,  5012,  5013,  5014,  5021,  5022,  5024,
+    5026,  5028,  5030,  5032,  5035,  5037,  5039,  5041,  5045,  5050,
+    5051,  5055,  5059,  5061,  5064,  5067,  5068,  5072,  5073,  5079,
+    5083,  5085,  5089,  5091,  5095,  5097,  5099,  5100,  5102,  5103,
+    5108,  5109,  5111,  5115,  5117,  5119,  5121,  5122,  5123,  5130,
+    5131,  5132,  5144,  5148,  5150,  5154,  5158,  5160,  5164,  5165,
+    5167,  5168,  5173,  5174,  5181,  5182,  5188,  5189,  5196,  5198,
+    5202,  5205,  5210,  5211,  5214,  5215,  5218,  5220,  5222,  5224,
+    5225,  5230,  5231,  5233,  5234,  5236,  5238,  5242,  5244,  5246,
+    5249,  5252,  5255,  5257,  5259,  5261,  5263,  5264,  5268,  5269,
+    5273,  5276,  5281,  5286,  5290,  5295,  5300,  5302,  5306,  5310,
+    5317,  5320,  5323,  5324,  5331,  5332,  5339,  5345,  5348,  5350,
+    5352,  5354,  5360,  5366,  5369,  5372,  5374,  5379,  5383,  5386,
+    5390,  5393,  5396,  5398,  5402,  5407,  5411,  5415,  5418,  5421,
+    5423,  5425,  5427,  5429,  5433,  5437,  5441,  5445,  5449,  5453,
+    5457,  5461,  5463,  5465,  5467,  5469,  5471,  5472,  5474,  5475,
+    5478,  5479,  5481,  5483,  5485,  5486,  5489,  5490,  5493,  5494,
+    5497,  5500,  5501,  5506,  5507,  5512,  5514,  5516,  5517,  5519,
+    5521,  5522,  5524,  5526,  5527,  5532,  5533,  5534,  5540,  5542,
+    5543,  5548,  5552,  5554,  5557,  5560,  5563,  5566,  5569,  5572,
+    5575,  5577,  5579,  5581,  5583,  5585,  5587,  5589,  5591,  5593,
+    5595,  5597,  5599,  5600,  5602,  5603,  5607,  5608,  5612,  5616,
+    5618,  5619,  5623,  5625,  5628,  5629,  5631,  5632,  5636,  5640,
+    5643,  5646,  5647,  5653,  5654,  5656,  5658,  5659,  5661,  5663,
+    5665,  5668,  5671,  5672,  5673,  5674,  5675,  5697,  5699,  5701,
+    5702,  5704,  5705,  5707,  5709,  5710,  5712,  5714,  5715,  5718,
+    5721,  5723,  5727,  5732,  5736,  5740,  5741,  5744,  5747,  5749,
+    5753,  5757,  5758,  5763,  5764,  5768,  5770,  5772,  5773,  5777,
+    5780,  5784,  5786,  5788,  5791,  5792,  5795,  5799,  5801,  5807,
+    5809,  5811,  5814,  5817,  5819,  5821,  5823,  5825,  5827,  5829,
+    5832,  5835,  5837,  5839,  5841,  5843,  5845,  5847,  5849,  5851,
+    5854,  5857,  5860,  5863,  5866,  5868,  5870,  5872,  5874,  5876,
+    5878,  5880,  5884,  5890,  5892,  5894,  5896,  5898,  5900,  5904,
+    5909,  5915,  5917,  5923,  5927,  5930,  5932,  5936,  5939,  5942,
+    5947,  5949,  5951,  5953,  5955,  5957,  5959,  5961,  5963,  5965,
+    5967,  5969,  5971,  5973,  5975,  5979,  5982,  5984,  5986,  5988,
+    5990,  5992,  5994,  5996,  5998,  6000,  6002,  6004,  6006,  6008,
+    6010,  6012,  6014,  6016,  6018,  6020,  6022,  6024,  6026,  6028,
+    6030,  6032,  6034,  6036,  6038,  6040,  6042,  6044,  6046,  6048,
+    6050,  6052,  6054,  6056,  6058,  6060,  6062,  6064,  6066,  6068,
+    6070,  6072,  6074,  6076,  6078,  6080,  6082,  6084,  6086,  6088,
+    6090,  6092,  6094,  6096,  6098,  6100,  6102,  6104,  6106,  6108,
+    6110,  6112,  6114,  6116,  6118,  6120,  6122,  6124,  6126,  6128,
+    6130,  6132,  6134,  6136,  6138,  6140,  6142,  6144,  6146,  6148,
+    6150,  6152,  6154,  6156,  6158,  6160,  6162,  6164,  6166,  6168,
+    6170,  6172,  6174,  6176,  6178,  6180,  6182,  6184,  6186,  6188,
+    6190,  6192,  6194,  6196,  6198,  6200,  6202,  6204,  6206,  6208,
+    6210,  6212,  6214,  6216,  6218,  6220,  6222,  6224,  6226,  6228,
+    6230,  6232,  6234,  6236,  6238,  6240,  6242,  6244,  6246,  6248,
+    6250,  6252,  6254,  6256,  6258,  6260,  6262,  6264,  6266,  6268,
+    6270,  6272,  6274,  6276,  6278,  6280,  6282,  6284,  6286,  6288,
+    6290,  6292,  6294,  6296,  6298,  6300,  6302,  6304,  6306,  6308,
+    6310,  6312,  6314,  6316,  6318,  6320,  6322,  6324,  6326,  6328,
+    6330,  6332,  6334,  6336,  6338,  6340,  6342,  6344,  6346,  6348,
+    6350,  6352,  6354,  6356,  6358,  6360,  6362,  6364,  6366,  6368,
+    6370,  6372,  6374,  6376,  6378,  6380,  6382,  6384,  6386,  6388,
+    6390,  6392,  6394,  6396,  6398,  6400,  6402,  6404,  6406,  6408,
+    6410,  6412,  6414,  6416,  6418,  6420,  6422,  6424,  6426,  6428,
+    6430,  6432,  6434,  6436,  6438,  6440,  6442,  6444,  6446,  6448,
+    6450,  6452,  6454,  6456,  6458,  6460,  6462,  6464,  6466,  6468,
+    6470,  6472,  6474,  6476,  6478,  6480,  6482,  6484,  6486,  6488,
+    6490,  6492,  6494,  6496,  6498,  6500,  6502,  6504,  6506,  6508,
+    6510,  6512,  6514,  6516,  6518,  6520,  6522,  6524,  6526,  6528,
+    6530,  6532,  6534,  6536,  6538,  6540,  6542,  6544,  6546,  6548,
+    6550,  6552,  6554,  6556,  6558,  6560,  6562,  6564,  6566,  6568,
+    6570,  6572,  6574,  6576,  6578,  6580,  6582,  6584,  6586,  6588,
+    6590,  6592,  6594,  6596,  6598,  6600,  6602,  6604,  6606,  6608,
+    6610,  6612,  6614,  6616,  6618,  6620,  6622,  6624,  6626,  6628,
+    6630,  6632,  6634,  6636,  6638,  6640,  6642,  6644,  6646,  6648,
+    6650,  6652,  6654,  6656,  6658,  6660,  6662,  6664,  6666,  6668,
+    6670,  6672,  6674,  6676,  6678,  6680,  6682,  6684,  6686,  6687,
+    6692,  6693,  6695,  6697,  6701,  6702,  6705,  6707,  6709,  6711,
+    6713,  6714,  6716,  6717,  6719,  6721,  6723,  6724,  6727,  6730,
+    6733,  6735,  6738,  6743,  6749,  6754,  6761,  6764,  6768,  6772,
+    6776,  6782,  6784,  6788,  6792,  6795,  6798,  6801,  6803,  6805,
+    6810,  6815,  6817,  6819,  6821,  6823,  6825,  6826,  6831,  6833,
+    6835,  6837,  6839,  6841,  6845,  6849,  6851,  6853,  6856,  6859,
+    6862,  6863,  6867,  6872,  6876,  6877,  6885,  6887,  6890,  6892,
+    6894,  6896,  6898,  6900,  6902,  6903,  6909,  6911,  6913,  6915,
+    6917,  6919,  6923,  6930,  6937,  6944,  6952,  6958,  6962,  6971,
+    6980,  6989,  6996,  6997,  6999,  7001,  7004,  7005,  7007,  7009,
+    7013,  7014,  7018,  7019,  7023,  7024,  7028,  7029,  7033,  7035,
+    7037,  7039,  7041,  7043,  7045,  7047,  7049,  7051,  7053,  7055,
+    7058,  7061,  7063,  7067,  7070,  7073,  7076,  7079,  7082,  7085,
+    7088,  7091,  7093,  7095,  7098,  7099,  7101,  7105,  7107,  7110,
+    7113,  7116,  7118,  7122,  7126,  7128,  7130,  7134,  7136,  7140,
+    7142,  7144,  7146,  7148,  7153,  7159,  7164,  7171,  7173,  7174,
+    7178,  7182,  7184,  7186,  7187,  7190,  7193,  7196,  7199,  7200,
+    7203,  7204,  7208,  7211,  7213,  7216,  7219,  7222,  7225,  7228,
+    7229,  7233,  7234,  7236,  7237,  7241,  7244,  7245,  7247,  7250,
+    7251,  7253,  7258,  7263,  7269,  7272,  7276,  7277,  7279,  7280,
+    7285,  7286,  7288,  7290,  7291,  7293,  7294,  7297,  7300,  7302,
+    7303,  7305,  7307,  7310,  7314,  7317,  7318,  7325,  7329,  7330,
+    7331,  7332,  7334,  7337,  7339,  7341,  7343,  7345,  7347,  7349,
+    7351,  7353,  7355,  7358,  7361,  7365,  7367,  7369,  7371,  7373,
+    7375,  7377,  7379,  7381,  7383,  7385,  7387,  7389,  7391,  7392,
+    7396,  7398,  7401,  7403,  7406,  7410,  7414,  7418,  7419,  7423,
+    7427,  7428,  7436,  7437,  7441,  7443,  7447,  7448,  7452,  7455,
+    7460,  7461,  7465,  7470,  7475,  7476,  7477,  7478,  7495,  7504,
+    7512,  7513,  7514,  7515,  7516,  7517,  7533,  7534,  7535,  7536,
+    7537,  7550,  7555,  7560,  7564,  7569,  7573,  7576,  7578,  7582,
+    7588,  7590,  7592,  7593,  7595,  7597,  7598,  7601,  7602,  7603,
+    7607,  7608,  7611,  7617,  7621,  7625,  7629
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int16 yyrhs[] =
 {
-     639,     0,    -1,   157,    -1,    -1,   642,   640,   634,   641,
-      -1,   642,   157,    -1,    -1,   157,    -1,   643,    -1,  1489,
-      -1,  1001,    -1,  1063,    -1,  1065,    -1,   692,    -1,   655,
-      -1,  1066,    -1,  1055,    -1,  1495,    -1,   662,    -1,   644,
-      -1,  1313,    -1,  1345,    -1,  1265,    -1,  1267,    -1,   648,
-      -1,  1351,    -1,  1461,    -1,  1452,    -1,   653,    -1,  1277,
-      -1,  1559,    -1,  1561,    -1,  1079,    -1,  1371,    -1,  1377,
-      -1,  1444,    -1,  1071,    -1,   927,    -1,   836,    -1,  1086,
-      -1,   646,    -1,  1367,    -1,  1498,    -1,  1074,    -1,  1058,
-      -1,  1280,    -1,  1361,    -1,   727,    -1,  1459,    -1,  1496,
-      -1,  1497,    -1,  1098,    -1,  1427,    -1,   720,    -1,  1331,
-      -1,  1044,    -1,  1047,    -1,  1324,    -1,  1560,    -1,  1450,
-      -1,  1305,    -1,  1376,    -1,  1551,    -1,   645,   399,  1421,
-      -1,   124,    -1,   145,    -1,   399,  1421,   192,   647,    -1,
-    1418,    -1,   635,  1423,    -1,    -1,   171,  1421,   649,   650,
-      -1,    -1,   584,   651,    -1,   651,   630,   652,    -1,   652,
-      -1,   635,  1423,    -1,    -1,   212,   654,  1423,    -1,    -1,
-      57,   301,   550,   656,   657,    -1,   658,    -1,   657,   630,
-     658,    -1,   288,   161,  1418,    -1,   302,   161,  1418,    -1,
-     291,   161,  1418,    -1,   292,   161,  1244,    -1,   287,   161,
-    1244,    -1,   299,   161,  1244,    -1,   295,   161,  1418,    -1,
-     294,   161,  1418,    -1,   296,   161,  1418,    -1,   297,   161,
-    1418,    -1,   298,   161,  1418,    -1,   300,   161,  1244,    -1,
-     303,   161,  1406,    -1,   227,   161,   628,   659,   629,    -1,
-     661,    -1,    -1,   660,    -1,   659,   630,   660,    -1,  1244,
-      -1,   289,   161,  1418,    -1,   290,   161,  1246,    -1,   429,
-     161,  1418,    -1,   430,   161,  1244,    -1,    -1,   103,   888,
-     533,   891,  1414,   663,   824,    -1,    -1,   103,   979,   230,
-    1421,   983,   362,  1414,   664,   628,   996,   629,   984,    -1,
-      -1,   103,   980,   230,  1421,   982,   362,  1414,   665,   628,
-     996,   629,   985,    -1,    -1,   103,   981,   230,  1421,   982,
-     362,  1414,   666,   628,   996,   629,   986,    -1,    -1,   103,
-     111,   891,  1421,   667,   885,    -1,    -1,   103,   668,  1517,
-      -1,   103,   580,   685,  1477,    -1,   103,   278,   205,   787,
-      -1,   103,   530,   784,    -1,   103,   669,    -1,   472,  1423,
-     189,   114,   609,  1423,   368,   628,   670,   629,    -1,   671,
-      -1,   670,   630,   671,    -1,   580,  1418,    -1,   216,  1418,
-      -1,   111,  1418,    -1,   378,  1418,    -1,   389,  1418,    -1,
-     488,  1418,    -1,   396,  1244,    -1,    -1,  1115,   168,   891,
-     686,   673,   362,   461,   674,   679,   676,   681,   144,   682,
-      -1,    -1,   169,  1120,  1214,   675,   677,   678,    -1,    23,
-    1120,    -1,    -1,   153,    -1,   138,   362,   484,    -1,   138,
-      -1,    -1,   508,  1120,    -1,    -1,   156,  1120,    -1,    -1,
-     680,    -1,   362,    86,   400,    -1,   362,    86,   351,   400,
-      -1,    -1,    82,  1418,    -1,    -1,   683,   684,    -1,   733,
-      -1,   735,    -1,   731,    -1,   752,    -1,   770,    -1,   772,
-      -1,   767,    -1,   737,    -1,   739,    -1,   740,    -1,   741,
-      -1,   742,    -1,   744,    -1,    -1,  1421,   636,  1421,    -1,
-    1421,    -1,    -1,   687,   689,    -1,    -1,   688,   690,    -1,
-      82,  1418,    -1,   256,   504,    -1,   353,   504,    -1,    96,
-     504,    -1,   415,   504,   114,    -1,   328,   504,   114,    -1,
-     691,    -1,   689,    -1,   136,    -1,  1126,   136,    -1,   504,
-     465,   129,    -1,   504,   465,   243,    -1,    -1,    50,   686,
-     693,   694,    -1,    -1,   628,   695,   629,    -1,    -1,   696,
-      -1,   696,   630,  1120,    -1,  1120,    -1,    -1,   698,    -1,
-     698,   630,   700,    -1,   700,    -1,    -1,  1421,   699,   950,
-      -1,    -1,   702,    -1,   702,   630,   703,    -1,   703,    -1,
-     704,   699,  1421,   950,    -1,    -1,   244,    -1,   377,    -1,
-     235,    -1,    -1,   705,   730,   634,    -1,   730,   634,    -1,
-     706,   730,   634,    -1,    -1,   707,   708,   634,    -1,    -1,
-     127,   728,   709,   950,   729,    -1,   127,  1421,    89,   190,
-     716,    -1,    -1,   127,   713,   208,   190,   710,   714,   730,
-      -1,   127,  1421,   108,   190,   711,    -1,    -1,   712,  1098,
-      -1,   173,    -1,    98,    -1,   715,    -1,   714,   630,   715,
-      -1,   719,    -1,  1244,    -1,   717,    -1,   496,   718,  1419,
-      -1,    -1,   589,    -1,   716,    -1,  1421,    -1,   497,    -1,
-    1126,   191,    -1,   495,    -1,   481,   721,   723,    -1,  1421,
-      -1,   717,    -1,    -1,   721,    -1,    -1,   474,   724,    -1,
-     726,   161,   725,    -1,   724,   630,   726,   161,   725,    -1,
-    1405,    -1,  1151,    -1,  1410,    -1,    65,    -1,   517,    -1,
-      93,    -1,    95,    -1,    94,    -1,    55,    -1,   462,    -1,
-     535,    -1,    81,    -1,   109,    -1,   319,    -1,   336,    -1,
-     444,   722,   723,    -1,  1421,    -1,   728,   630,  1421,    -1,
-      -1,   128,  1120,    -1,   733,    -1,   735,    -1,   731,    -1,
-     752,    -1,   770,    -1,   772,    -1,   767,    -1,   737,    -1,
-     739,    -1,   740,    -1,   741,    -1,   742,    -1,   744,    -1,
-      -1,   225,   732,   747,   155,   225,    -1,    -1,   734,   643,
-      -1,    -1,   450,   736,  1120,    -1,    -1,   738,   776,    -1,
-     262,  1422,    -1,   250,  1422,    -1,   366,  1421,    -1,    -1,
-     181,   745,  1421,   241,   743,   746,    -1,    68,  1421,    -1,
-      -1,   347,   192,    -1,   192,    -1,  1421,    -1,   746,   630,
-    1421,    -1,    -1,    -1,    -1,   748,  1120,   542,   749,   706,
-     750,   751,    -1,    -1,   152,   747,    -1,   151,   706,    -1,
-     753,    -1,   756,    -1,    -1,    -1,    53,   754,  1120,   755,
-     758,   766,   155,    53,    -1,    -1,    53,   757,   759,   766,
-     155,    53,    -1,   760,    -1,   758,   760,    -1,   763,    -1,
-     759,   763,    -1,    -1,    -1,   602,   761,  1120,   762,   542,
-     706,    -1,    -1,    -1,   602,   764,  1120,   765,   542,   706,
-      -1,    -1,   151,   706,    -1,    -1,  1422,   637,   768,   776,
-     769,    -1,    -1,  1422,    -1,    -1,  1422,   637,   771,   774,
-     769,    -1,    -1,   773,   774,    -1,    -1,    31,   775,   707,
-     705,   155,    -1,   284,   706,   155,   284,    -1,    -1,    -1,
-     604,   777,  1120,   144,   778,   706,   155,   604,    -1,    -1,
-     439,   706,   576,   779,  1120,   155,   439,    -1,    30,    -1,
-       8,    -1,   237,    -1,   577,    -1,   132,    -1,   809,   811,
-      -1,   809,    57,   806,   790,    -1,   809,     6,   806,   785,
-     794,    -1,    -1,   583,   278,   205,  1421,    -1,   809,     6,
-     806,   797,    -1,   809,   145,   806,   797,    -1,   810,   789,
-     800,    -1,   810,   789,   803,    -1,     6,   807,    -1,     6,
-     808,    -1,    -1,   791,   792,    -1,   793,    -1,   792,   793,
-      -1,   792,   630,   793,    -1,   812,    -1,   813,    -1,   814,
-      -1,   795,    -1,   796,    -1,   795,   796,    -1,   795,   630,
-     796,    -1,   812,    -1,   813,    -1,   814,    -1,   815,    -1,
-     818,    -1,   820,    -1,   822,    -1,   819,    -1,   798,    -1,
-     799,    -1,   798,   799,    -1,   798,   630,   799,    -1,   812,
-      -1,   813,    -1,   814,    -1,   820,    -1,   822,    -1,   801,
-      -1,   802,    -1,   801,   802,    -1,   801,   630,   802,    -1,
-     812,    -1,   816,    -1,   817,    -1,   818,    -1,   820,    -1,
-     822,    -1,   819,    -1,   804,    -1,   805,    -1,   804,   805,
-      -1,   804,   630,   805,    -1,   812,    -1,   820,    -1,   822,
-      -1,   113,  1418,    -1,   566,  1418,    -1,   422,  1418,    -1,
-    1421,    -1,  1421,    -1,   416,    -1,   418,    -1,   351,     4,
-      -1,   233,  1297,   823,    -1,    25,  1297,   823,    -1,   308,
-    1297,   823,    -1,   176,  1297,   823,    -1,   567,  1297,   823,
-      -1,   423,  1297,   823,    -1,   348,  1297,  1245,    -1,    82,
-    1297,  1418,    -1,  1338,   159,  1297,   899,    -1,    -1,   822,
-      -1,   599,    -1,   354,    -1,  1247,    -1,  1417,    -1,   628,
-     825,    -1,   892,   831,   828,    -1,   267,  1414,    -1,   628,
-     267,  1414,   629,    -1,    -1,   905,   629,   826,   892,   831,
-     828,    -1,    -1,   831,   881,   629,   827,  1502,    -1,    -1,
-      -1,  1385,   884,   881,   829,  1499,    -1,    -1,  1385,   884,
-     628,   881,   629,   830,  1502,    -1,   832,    -1,    -1,   833,
-      -1,    -1,   388,   835,   834,   838,    -1,    -1,    -1,   388,
-     837,   838,    -1,    47,   839,   849,   850,   857,    -1,   841,
-     254,   842,   628,   843,   629,    -1,    -1,   841,   210,   840,
-     847,    -1,   414,   847,    -1,   414,   846,    -1,   272,   847,
-      -1,   272,   846,    -1,    -1,   269,    -1,    -1,    11,   161,
-    1245,    -1,    -1,   844,    -1,   845,    -1,   844,   630,   845,
-      -1,  1421,    -1,    73,   628,   843,   629,    -1,   628,  1115,
-     855,  1116,   629,    -1,   628,  1115,   855,  1116,   629,    -1,
-      -1,   387,  1245,    -1,    -1,    -1,   521,    47,   841,   210,
-     848,   851,   856,    -1,    -1,   521,    47,   841,   254,   842,
-     628,   853,   629,   852,   856,    -1,   854,    -1,   853,   630,
-     854,    -1,  1421,    -1,  1123,    -1,    -1,   520,  1245,    -1,
-      -1,   628,   858,   629,    -1,   859,    -1,   858,   630,   859,
-      -1,    -1,   388,   860,   861,   862,   878,   873,    -1,  1421,
-      -1,    -1,    -1,   588,   264,   541,   863,   865,    -1,    -1,
-     588,   244,   864,   866,    -1,   312,    -1,   868,    -1,   868,
-      -1,   628,   867,   629,    -1,   868,    -1,   867,   630,   868,
-      -1,    -1,    -1,   628,   869,   871,   870,   629,    -1,   872,
-      -1,   871,   630,   872,    -1,   312,    -1,  1123,    -1,    -1,
-     628,   874,   629,    -1,   875,    -1,   874,   630,   875,    -1,
-      -1,   521,   876,   877,   878,    -1,  1423,    -1,    -1,   879,
-      -1,   879,   880,    -1,   880,    -1,   530,  1297,  1423,    -1,
-    1338,   159,  1297,   899,    -1,    90,  1297,  1418,    -1,   348,
-    1297,  1245,    -1,   307,  1297,  1247,    -1,   325,  1297,  1247,
-      -1,   114,   137,  1297,  1418,    -1,   230,   137,  1297,  1418,
-      -1,    82,  1297,  1418,    -1,    -1,    -1,   466,   882,  1109,
-    1113,   883,   903,    -1,    -1,    19,    -1,    -1,   886,    -1,
-     887,    -1,   886,   887,    -1,   898,    -1,   897,    -1,    -1,
-     889,    -1,   890,    -1,   890,   889,    -1,   536,    -1,    -1,
-     225,  1126,   172,    -1,    -1,   894,    -1,   895,    -1,   895,
-     893,    -1,   895,    -1,   895,   894,    -1,   895,   630,   894,
-      -1,   159,  1297,   899,    -1,   307,  1297,  1246,    -1,   325,
-    1297,  1246,    -1,    27,  1297,  1244,    -1,   389,  1297,  1418,
-      -1,    82,  1297,  1418,    -1,    26,  1297,  1246,    -1,   379,
-    1297,  1244,    -1,   379,  1297,   128,    -1,    62,  1297,  1244,
-      -1,   534,  1297,  1244,    -1,   381,  1297,  1250,    -1,   131,
-    1297,  1244,    -1,   457,  1297,   901,    -1,    -1,   571,  1297,
-     896,   628,  1359,   629,    -1,   897,    -1,   898,    -1,   238,
-    1297,   902,    -1,   114,   137,  1297,  1418,    -1,   230,   137,
-    1297,  1418,    -1,   530,  1421,    -1,   514,   140,    -1,   514,
-     317,    -1,    90,  1297,  1418,    -1,   253,  1297,  1244,    -1,
-     553,  1297,  1250,    -1,  1417,  1296,  1418,    -1,  1417,  1296,
-    1421,    -1,  1417,  1296,  1247,    -1,  1417,  1296,   128,    -1,
-     962,   953,  1297,   955,    -1,   962,    71,  1297,   961,    -1,
-    1423,    -1,  1423,    -1,   128,    -1,   184,    -1,   149,    -1,
-      87,    -1,   424,    -1,    85,    -1,   380,    -1,   353,    -1,
-     183,    -1,   257,    -1,  1237,    -1,  1108,  1112,    -1,   516,
-      -1,   419,    -1,   126,    -1,   242,    -1,   906,    -1,   907,
-      -1,   906,   630,   907,    -1,   908,    -1,   909,    -1,   918,
-     914,    -1,   918,   968,    -1,    -1,   974,   998,   983,   628,
-     996,   629,   910,   984,    -1,    -1,   980,   977,   998,   982,
-     628,   996,   629,   911,   985,    -1,    -1,   981,   977,   998,
-     982,   628,   996,   629,   912,   986,    -1,    -1,   916,   975,
-     998,   983,   628,   996,   629,   913,   984,    -1,   916,   189,
-     254,   998,   628,   996,   629,   968,    -1,   916,   915,    -1,
-      -1,   915,    -1,    63,   628,  1120,   629,    -1,    -1,   917,
-      -1,    92,   998,    -1,    -1,  1413,   919,   920,    -1,   929,
-     947,    -1,    -1,   929,   922,    19,   921,   628,   928,   629,
-     923,   924,    -1,    -1,   198,    14,    -1,    -1,   598,    -1,
-     390,    -1,    -1,   925,    -1,   925,   926,    -1,   926,    -1,
-     572,    -1,   572,   254,    -1,    82,  1418,    -1,   384,   628,
-     928,   629,    -1,  1115,  1120,  1116,    -1,   937,   945,   941,
-      -1,   938,   946,   941,    -1,   186,   939,   941,    -1,    39,
-      -1,    39,   944,    -1,    44,    -1,    43,    -1,   933,   944,
-     965,    -1,   933,   965,    -1,   934,   944,   966,    -1,   934,
-     966,    -1,    34,   944,    -1,    34,    -1,   935,   944,   965,
-      -1,   936,   944,   966,    -1,   590,   944,    -1,   616,   945,
-     941,    -1,   118,    -1,   546,   945,    -1,   543,   945,    -1,
-     115,   945,    -1,   547,    -1,    41,   945,    -1,   932,    -1,
-     313,    -1,   280,    -1,   283,   590,    -1,   283,   935,   965,
-      -1,   549,   965,    -1,   540,   945,   965,    -1,   315,   965,
-      -1,   281,   965,    -1,   126,   939,   941,    -1,   358,   939,
-     941,    -1,   184,   939,   941,    -1,    -1,   160,   930,   628,
-    1000,   629,   965,    -1,    -1,   474,   931,   628,  1000,   629,
-     965,    -1,   283,   965,    -1,   470,    -1,   200,    -1,   199,
-      -1,   394,    -1,   333,    -1,   271,    -1,   332,    -1,   395,
-      -1,   334,    -1,    60,    -1,   342,    -1,   339,    60,    -1,
-     933,   594,    -1,   591,    -1,   339,   591,    -1,   359,    -1,
-     342,   591,    -1,   339,    60,   594,    -1,   342,   594,    -1,
-     242,    -1,   548,    -1,   486,    -1,   314,    -1,    33,    -1,
-     419,    -1,   143,    -1,   143,   398,    -1,    -1,   944,    -1,
-     940,    -1,   628,   357,   630,   357,   629,    -1,    -1,   942,
-      -1,   942,   943,    -1,   943,    -1,   482,    -1,   575,    -1,
-     617,    -1,   628,   282,   629,    -1,   628,   562,   629,    -1,
-     628,   125,   629,    -1,   628,   357,   629,    -1,    -1,   944,
-      -1,    -1,   940,    -1,    -1,   948,    -1,   948,   949,    -1,
-     949,    -1,   356,    -1,  1126,   356,    -1,   128,   951,    -1,
-     362,   577,   352,  1119,    -1,    26,    -1,   470,   128,   589,
-      -1,   967,   254,    -1,   572,    -1,   572,   254,    -1,    82,
-    1418,    -1,    71,   959,    -1,  1417,  1296,  1418,    -1,  1417,
-    1296,  1421,    -1,  1417,  1296,  1247,    -1,  1417,  1296,   128,
-      -1,   929,   960,    -1,   352,  1119,    -1,  1404,    -1,   213,
-      -1,   214,    -1,    60,   474,    -1,    59,    -1,  1423,    -1,
-      34,    -1,   954,    -1,   128,    -1,    -1,   953,   955,    -1,
-    1423,    -1,    34,    -1,   957,    -1,   128,    -1,  1423,    -1,
-      -1,    71,   961,    -1,   959,    -1,   128,    -1,    -1,   128,
-      -1,    21,    -1,    34,    21,    -1,    21,    34,    -1,   569,
-      -1,   569,    34,    -1,    34,   569,    -1,    -1,   963,    -1,
-     964,    -1,    48,    -1,   953,   954,   966,    -1,    34,    -1,
-      34,   953,   954,    -1,    -1,    34,    -1,    -1,   402,    -1,
-     425,  1414,   969,   971,   972,    -1,    -1,   628,   970,   629,
-      -1,   970,   630,  1421,    -1,  1421,    -1,    -1,   304,   193,
-      -1,   304,   385,    -1,   304,   483,    -1,    -1,   362,   577,
-     973,    -1,   362,   132,   973,    -1,   362,   577,   973,   362,
-     132,   973,    -1,   362,   132,   973,   362,   577,   973,    -1,
-     447,    -1,    51,    -1,   474,   356,    -1,   353,     5,    -1,
-     474,   128,    -1,   976,    -1,   402,   254,    -1,   572,   977,
-      -1,   254,    -1,   230,    -1,    -1,   976,    -1,   252,    -1,
-     230,    -1,   229,    -1,    -1,   572,    -1,   194,    -1,   493,
-      -1,    -1,   982,    -1,   982,   990,    -1,    -1,   987,    -1,
-      -1,   989,    -1,    -1,   988,    -1,   992,    -1,   987,   992,
-      -1,   993,    -1,   988,   993,    -1,   994,    -1,   989,   994,
-      -1,   584,   995,    -1,   560,   995,    -1,   253,  1297,  1244,
-      -1,    82,  1418,    -1,  1417,  1296,  1418,    -1,  1417,  1296,
-    1421,    -1,  1417,  1296,  1247,    -1,  1417,  1296,   128,    -1,
-     991,    -1,   990,    -1,   991,    -1,   991,    -1,   605,   383,
-    1417,    -1,    46,    -1,   459,    -1,   210,    -1,   996,   630,
-     997,  1235,    -1,   997,  1235,    -1,  1421,    -1,  1421,   628,
-     357,   629,    -1,    -1,  1413,    -1,    -1,   636,  1421,    -1,
-    1402,    -1,  1000,   630,  1402,    -1,    -1,    13,  1036,   533,
-    1414,  1002,  1013,    -1,    -1,    13,   111,  1012,  1003,   886,
-      -1,    13,   111,  1421,   578,   114,   137,   338,    -1,    -1,
-      13,   404,   686,  1004,   687,    -1,    -1,    13,   195,   686,
-    1005,   687,    -1,    -1,    13,  1525,  1520,  1006,  1527,    -1,
-      -1,    13,  1520,  1007,  1527,    -1,    -1,    13,  1520,   168,
-     686,  1008,  1009,  1010,   676,   681,  1011,    -1,    13,   530,
-     786,    -1,    13,   278,   205,   788,    -1,    13,   530,   783,
-      -1,    13,   530,   782,    -1,    13,   472,  1423,   368,   628,
-     670,   629,    -1,    -1,   362,   461,   674,    -1,   680,    -1,
-     362,   461,   674,   680,    -1,    -1,   435,   550,   686,    -1,
-      -1,   144,   682,    -1,    -1,  1421,    -1,    -1,   139,   530,
-      -1,   228,   530,    -1,  1028,   832,    -1,  1028,  1017,    -1,
-    1017,    -1,   833,    -1,  1019,    -1,   145,   388,  1026,    -1,
-     420,   388,  1073,  1018,    -1,    -1,   367,   388,  1073,  1018,
-    1014,  1073,    -1,    15,   388,  1073,  1018,    -1,    -1,    63,
-     388,  1018,  1015,  1068,    -1,    -1,   437,   388,  1073,  1018,
-    1016,  1060,    -1,    69,   388,  1073,  1245,    -1,   558,   388,
-    1018,    -1,  1022,    -1,   434,   386,    -1,    12,    -1,  1026,
-      -1,    -1,     6,   388,  1073,  1020,  1021,    -1,    -1,   628,
-     858,   629,    -1,   387,  1245,    -1,    -1,   436,   388,  1073,
-    1023,  1024,    -1,    -1,    -1,  1026,  1025,   241,   628,   858,
-     629,    -1,  1027,    -1,  1026,   630,  1027,    -1,  1421,    -1,
-    1030,    -1,  1028,   630,  1030,    -1,     6,  1034,    -1,  1029,
-     908,  1042,    -1,     6,   909,    -1,  1029,   628,   905,   629,
-      -1,    -1,    57,  1034,  1413,  1031,   918,  1042,    -1,    -1,
-      -1,   329,  1034,  1413,  1032,   920,  1033,  1042,    -1,   145,
-    1034,  1413,  1041,    -1,   145,   189,   254,   998,    -1,   145,
-     402,   254,    -1,   145,   976,  1413,    -1,   138,   252,    -1,
-     153,   252,    -1,    13,  1034,  1413,   474,   128,  1404,    -1,
-      13,  1034,  1413,   145,   128,    -1,   435,  1043,  1414,    -1,
-     100,   550,   953,   955,   960,    -1,   893,    -1,   188,    -1,
-    1228,    -1,    -1,    80,    -1,    -1,   226,    -1,    -1,  1037,
-    1038,    -1,    -1,  1039,    -1,  1039,  1040,    -1,  1040,    -1,
-     226,    -1,   365,    -1,    -1,   447,    -1,    51,    -1,    -1,
-       8,  1421,    -1,   183,    -1,    -1,   550,    -1,   161,    -1,
-      19,    -1,    -1,   509,   484,  1049,  1045,  1053,    -1,   513,
-     484,  1049,    -1,    -1,   484,   509,  1049,  1046,  1053,    -1,
-     484,   513,  1049,    -1,   509,   552,  1048,    -1,    -1,   605,
-      91,   487,    -1,    -1,  1050,  1051,    -1,  1052,    -1,  1051,
-     630,  1052,    -1,    -1,   505,    -1,   431,    -1,    -1,   576,
-    1054,    -1,   661,    -1,  1054,   630,   661,    -1,    -1,    62,
-    1446,  1056,  1271,  1057,    -1,    -1,   413,    -1,   175,    -1,
-      -1,   437,  1073,  1446,  1059,  1271,  1060,    -1,    -1,  1061,
-      -1,  1062,    -1,  1062,  1061,    -1,   413,    -1,   175,    -1,
-     582,    -1,    -1,    15,  1073,  1446,  1064,  1271,    -1,    35,
-    1418,    -1,    -1,    63,  1446,  1067,  1271,  1068,    -1,    -1,
-    1069,    -1,  1070,    -1,  1070,  1069,    -1,   413,    -1,   179,
-      -1,   316,    -1,   175,    -1,    58,    -1,   190,   578,    -1,
-      -1,   367,  1073,  1446,  1072,  1271,    -1,    -1,   355,    -1,
-     274,    -1,    -1,   435,  1446,  1075,  1077,    -1,   435,   580,
-     685,  1076,    -1,  1424,   550,  1424,    -1,  1076,   630,  1424,
-     550,  1424,    -1,  1078,    -1,  1077,   630,  1078,    -1,  1414,
-     550,  1414,    -1,    -1,    49,   230,  1080,  1081,   244,  1085,
-      -1,  1082,    -1,  1084,    -1,  1083,    -1,  1082,   630,  1083,
-      -1,  1414,  1094,    -1,  1414,  1092,  1094,    -1,  1421,    -1,
-     128,    -1,    -1,   273,   230,   241,    49,  1087,  1088,    -1,
-    1091,    -1,  1089,    -1,  1090,    -1,  1089,   630,  1090,    -1,
-    1414,  1094,  1097,    -1,  1414,  1092,  1094,  1097,    -1,    -1,
-     388,   835,  1093,   628,  1018,   629,    -1,    -1,  1095,  1096,
-      -1,    -1,   976,   628,  1210,   629,    -1,    -1,   226,   261,
-      -1,  1099,    -1,   466,  1102,    -1,   628,  1100,   629,  1502,
-      -1,   466,  1104,    -1,   628,  1100,   629,    -1,   466,  1189,
-      -1,   628,  1101,   629,    -1,    -1,  1104,  1103,  1499,    -1,
-      -1,    -1,  1105,  1109,  1113,  1106,  1107,  1112,    -1,  1231,
-    1237,    -1,  1260,    -1,  1108,    -1,  1260,  1108,    -1,  1108,
-    1260,    -1,   192,  1171,  1220,  1225,  1222,  1231,  1237,  1251,
-      -1,   192,   146,  1220,  1237,    -1,    -1,  1110,    -1,  1110,
-    1111,    -1,  1111,    -1,  1516,    -1,   502,    -1,   500,    -1,
-      -1,   190,   577,    -1,   277,   244,   476,   327,    -1,  1113,
-     630,  1114,    -1,  1114,    -1,   623,    -1,  1115,  1408,  1116,
-      -1,  1115,  1120,  1116,  1117,    -1,    -1,    -1,    -1,    19,
-    1421,    -1,    19,  1418,    -1,  1421,    -1,  1418,    -1,    -1,
-     628,   629,    -1,   628,  1245,   629,    -1,    -1,   628,   629,
-      -1,  1120,  1124,  1120,    -1,  1120,   614,  1120,    -1,  1120,
-    1125,  1120,    -1,   351,  1120,    -1,  1121,   247,   557,    -1,
-    1121,   247,  1126,   557,    -1,  1121,   247,   178,    -1,  1121,
-     247,  1126,   178,    -1,  1121,   247,   573,    -1,  1121,   247,
-    1126,   573,    -1,  1121,    -1,  1121,   247,   356,    -1,  1121,
-     247,  1126,   356,    -1,  1121,   162,  1122,    -1,  1121,  1128,
-    1122,    -1,  1121,  1128,  1129,   628,  1511,   629,    -1,  1122,
-      -1,  1123,   244,   628,  1511,   629,    -1,  1123,  1126,   244,
-     628,  1511,   629,    -1,  1123,   244,   628,  1120,   629,    -1,
-    1123,   244,   628,  1120,   630,  1164,   629,    -1,  1123,  1126,
-     244,   628,  1120,   629,    -1,  1123,  1126,   244,   628,  1120,
-     630,  1164,   629,    -1,  1123,    32,  1123,    17,  1122,    -1,
-    1123,  1126,    32,  1123,    17,  1122,    -1,  1123,   491,   267,
-    1123,    -1,  1123,   267,  1134,  1224,    -1,  1123,  1126,   267,
-    1134,  1224,    -1,  1123,   426,  1123,    -1,  1123,  1126,   426,
-    1123,    -1,  1123,    -1,  1123,   619,  1123,    -1,  1123,   620,
-    1123,    -1,  1123,   477,  1123,    -1,  1123,   478,  1123,    -1,
-    1123,   622,  1123,    -1,  1123,   621,  1123,    -1,  1123,   622,
-     240,  1120,  1214,    -1,  1123,   621,   240,  1120,  1214,    -1,
-    1123,   623,  1123,    -1,  1123,   624,  1123,    -1,  1123,   625,
-    1123,    -1,  1123,   142,  1123,    -1,  1123,   330,  1123,    -1,
-    1123,   626,  1123,    -1,  1134,    -1,   374,    -1,   371,    -1,
-      17,    -1,    16,    -1,   351,    -1,   350,    -1,   631,    -1,
-     350,    -1,   161,    -1,   196,    -1,   207,    -1,   259,    -1,
-     286,    -1,   344,    -1,    12,    -1,    18,    -1,    -1,    19,
-    1131,    -1,   242,    -1,   575,   242,    -1,   143,    -1,   419,
-      -1,   186,    -1,   126,   939,    -1,   933,   965,    -1,   934,
-      -1,   118,    -1,   546,   945,    -1,   115,   945,    -1,  1120,
-     630,  1120,  1130,    -1,  1132,    -1,  1133,   630,  1132,    -1,
-    1410,    -1,  1135,    -1,  1136,    -1,  1139,    -1,  1137,    -1,
-    1134,    71,  1423,    -1,  1405,    -1,  1403,    -1,  1151,    -1,
-    1147,    -1,  1134,   373,  1134,    -1,   622,  1134,    -1,   621,
-    1134,    -1,   627,  1134,    -1,  1127,  1134,    -1,   628,  1511,
-     629,    -1,   628,  1120,   629,    -1,   628,  1120,   630,  1164,
-     629,    -1,   458,   628,  1120,   630,  1164,   629,    -1,   172,
-     628,  1511,   629,    -1,   632,  1421,  1120,   633,    -1,   304,
-    1165,     9,   628,  1123,  1141,   629,    -1,    34,  1134,    -1,
-      54,   628,  1120,    19,  1161,   629,    -1,    53,  1167,  1169,
-    1168,   155,    -1,   100,   628,  1120,   630,  1161,   629,    -1,
-     100,   628,  1120,   584,   954,   629,    -1,   128,   628,  1410,
-     629,    -1,   588,   628,  1411,   629,    -1,   240,  1120,  1214,
-     622,  1120,    -1,    60,   628,  1164,   629,    -1,    60,   628,
-    1164,   584,   954,   629,    -1,   107,  1119,    -1,   118,   628,
-    1120,   629,    -1,   123,   628,  1120,   629,    -1,   221,   628,
-    1120,   629,    -1,   237,   628,  1120,   630,  1120,   630,  1120,
-     630,  1120,   629,    -1,   240,   628,  1120,   630,  1120,   629,
-      -1,   240,   628,  1120,   630,  1120,   630,  1164,   629,    -1,
-     263,   628,  1120,   630,  1120,   629,    -1,   324,   628,  1120,
-     629,    -1,   331,   628,  1120,   629,    -1,   452,   628,  1120,
-     630,  1120,   629,    -1,   464,   628,  1120,   629,    -1,   546,
-     628,  1120,   629,    -1,   543,   628,  1120,   629,    -1,   543,
-     628,  1120,   630,  1120,   629,    -1,   556,   628,  1120,   629,
-      -1,   556,   628,   260,  1120,   192,  1120,   629,    -1,   556,
-     628,   551,  1120,   192,  1120,   629,    -1,   556,   628,    45,
-    1120,   192,  1120,   629,    -1,   556,   628,   260,   192,  1120,
-     629,    -1,   556,   628,   551,   192,  1120,   629,    -1,   556,
-     628,    45,   192,  1120,   629,    -1,   556,   628,  1120,   192,
-    1120,   629,    -1,   580,   628,   629,    -1,   616,   628,  1120,
-     629,    -1,     7,   628,  1120,   630,  1120,   629,    -1,     7,
-     628,  1120,   630,   240,  1120,  1214,   629,    -1,   106,  1119,
-      -1,   110,  1118,    -1,   116,   628,  1120,   630,   240,  1120,
-    1214,   629,    -1,   117,   628,  1120,   630,   240,  1120,  1214,
-     629,    -1,   177,   628,  1214,   192,  1120,   629,    -1,   201,
-     628,  1216,   630,  1120,   629,    -1,   352,  1118,    -1,   397,
-     628,  1123,   244,  1120,   629,    -1,   518,   628,  1120,   630,
-    1120,   629,    -1,   518,   628,  1120,   630,   240,  1120,  1214,
-     629,    -1,   522,   628,  1120,   630,  1120,   630,  1120,   629,
-      -1,   522,   628,  1120,   630,  1120,   629,    -1,   522,   628,
-    1120,   192,  1120,   190,  1120,   629,    -1,   522,   628,  1120,
-     192,  1120,   629,    -1,   528,  1118,    -1,   544,   628,  1215,
-     630,  1120,   630,  1120,   629,    -1,   545,   628,  1215,   630,
-    1120,   630,  1120,   629,    -1,   585,  1119,    -1,   587,  1118,
-      -1,   586,  1118,    -1,    74,   628,  1120,   630,  1133,   629,
-      -1,    76,   628,  1120,   630,  1164,   629,    -1,    77,   628,
-    1120,   630,  1120,   629,    -1,    79,   628,  1120,   629,    -1,
-      75,   628,  1133,   629,    -1,    78,   628,  1120,   630,  1120,
-      19,  1161,   629,    -1,    21,   628,  1120,   629,    -1,    59,
-     628,  1120,   629,    -1,    69,   628,  1164,   629,    -1,    72,
-     628,  1120,   629,    -1,   111,   628,   629,    -1,   225,   628,
-    1120,   630,  1120,   630,  1120,   629,    -1,   258,   628,  1164,
-     629,    -1,   320,   628,  1120,   629,    -1,   330,   628,  1120,
-     630,  1120,   629,    -1,   361,   628,  1120,   629,    -1,   389,
-     628,  1120,   629,    -1,   411,   628,  1120,   629,    -1,   439,
-     628,  1120,   630,  1120,   629,    -1,   440,   628,  1120,   630,
-    1120,   630,  1120,   629,    -1,   558,   628,  1120,   630,  1120,
-     629,    -1,   601,   628,  1120,   629,    -1,   601,   628,  1120,
-     630,  1120,   629,    -1,  1138,    -1,    96,   628,  1120,   630,
-    1120,   629,    -1,   199,   628,  1164,   629,    -1,   271,   628,
-    1164,   629,    -1,   332,   628,  1164,   629,    -1,   333,   628,
-    1164,   629,    -1,   334,   628,  1164,   629,    -1,   394,   628,
-    1120,   630,  1120,   629,    -1,   395,   628,  1164,   629,    -1,
-      -1,  1417,   628,  1140,  1144,   629,    -1,  1421,   636,  1421,
-     628,  1163,   629,    -1,  1142,  1143,    -1,   244,    43,   327,
-      -1,    -1,   244,   340,   256,   327,    -1,    -1,   605,   412,
-     174,    -1,    -1,  1145,    -1,  1146,    -1,  1145,   630,  1146,
-      -1,  1115,  1120,  1116,  1117,    -1,    28,   628,  1159,   629,
-      -1,    28,   628,   141,  1159,   629,    -1,    37,   628,  1159,
-     629,    -1,    38,   628,  1159,   629,    -1,    40,   628,  1159,
-     629,    -1,   101,   628,  1219,   623,   629,    -1,   101,   628,
-    1159,   629,    -1,    -1,    -1,   101,   628,   141,  1148,  1164,
-    1149,   629,    -1,   326,   628,  1159,   629,    -1,   326,   628,
-     141,  1159,   629,    -1,   309,   628,  1159,   629,    -1,   309,
-     628,   141,  1159,   629,    -1,   512,   628,  1159,   629,    -1,
-     593,   628,  1159,   629,    -1,   511,   628,  1159,   629,    -1,
-     595,   628,  1159,   629,    -1,   523,   628,  1159,   629,    -1,
-     523,   628,   141,  1159,   629,    -1,    -1,   206,   628,  1154,
-    1150,  1164,  1156,  1155,   629,    -1,    -1,   635,  1152,  1153,
-      -1,  1423,   475,  1120,    -1,  1423,    -1,   635,  1436,  1423,
-     999,    -1,    -1,   141,    -1,    -1,   468,  1402,    -1,    -1,
-      -1,   372,    47,  1157,  1158,    -1,  1158,   630,  1409,  1235,
-      -1,  1409,  1235,    -1,    -1,  1219,  1160,  1120,    -1,    34,
-     945,    -1,    60,   945,   965,    -1,   342,   945,    -1,   242,
-      -1,   482,    -1,   482,   242,    -1,   575,    -1,   575,   242,
-      -1,   118,    -1,   546,   945,    -1,   115,   945,    -1,   126,
-     939,    -1,    -1,   143,  1162,   946,    -1,    -1,  1164,    -1,
-    1120,    -1,  1164,   630,  1120,    -1,  1166,    -1,   628,  1166,
-     629,    -1,  1410,    -1,  1166,   630,  1410,    -1,    -1,  1120,
-      -1,    -1,   151,  1120,    -1,   602,  1120,   542,  1120,    -1,
-    1169,   602,  1120,   542,  1120,    -1,  1183,    -1,  1174,    -1,
-    1173,    -1,  1170,    -1,   632,  1421,  1170,   633,    -1,  1172,
-      -1,  1173,   630,  1172,    -1,  1170,  1182,  1170,    -1,  1170,
-     515,  1183,    -1,    -1,  1170,  1182,  1170,   362,  1175,  1120,
-      -1,    -1,  1170,   515,  1183,   362,  1176,  1120,    -1,    -1,
-    1170,  1182,  1170,   584,  1177,   628,  1213,   629,    -1,  1170,
-     340,   251,  1183,    -1,    -1,  1170,   263,  1199,   251,  1170,
-     362,  1178,  1120,    -1,    -1,  1170,   263,  1199,   251,  1183,
-    1179,   584,   628,  1213,   629,    -1,  1170,   340,   263,  1199,
-     251,  1183,    -1,    -1,  1170,   452,  1199,   251,  1170,   362,
-    1180,  1120,    -1,    -1,  1170,   452,  1199,   251,  1183,  1181,
-     584,   628,  1213,   629,    -1,  1170,   340,   452,  1199,   251,
-    1183,    -1,   251,    -1,   234,   251,    -1,   104,   251,    -1,
-      -1,  1184,  1414,  1218,  1208,    -1,  1198,  1197,  1194,    -1,
-     628,  1197,  1185,   629,  1218,    -1,  1192,  1503,    -1,    -1,
-      -1,  1185,   571,  1507,  1186,  1508,  1187,  1503,    -1,  1189,
-      -1,    -1,    -1,  1190,  1514,  1113,  1191,   903,  1112,    -1,
-      -1,  1197,  1193,  1173,    -1,    -1,    -1,  1195,  1109,  1113,
-    1196,   903,    -1,    -1,   466,    -1,    -1,   375,    -1,    -1,
-     190,   251,    -1,   190,   372,    47,    -1,   190,   205,    47,
-      -1,   188,    -1,   226,    -1,    -1,  1201,   976,  1200,  1203,
-     628,  1212,   629,    -1,    -1,   583,   976,  1200,  1204,   628,
-    1210,   629,    -1,  1202,    -1,  1205,  1202,    -1,    -1,    -1,
-    1207,  1205,    -1,    -1,  1209,  1206,    -1,    -1,  1212,    -1,
-    1421,    -1,   402,    -1,  1211,    -1,  1212,   630,  1211,    -1,
-    1421,    -1,  1213,   630,  1421,    -1,  1215,    -1,   119,    -1,
-     120,    -1,   121,    -1,   122,    -1,   218,    -1,   219,    -1,
-     220,    -1,   322,    -1,   323,    -1,   463,    -1,   615,    -1,
-     123,    -1,   601,    -1,   221,    -1,   324,    -1,   331,    -1,
-     411,    -1,   464,    -1,   320,    -1,   616,    -1,   118,    -1,
-     546,    -1,   115,    -1,   543,    -1,    -1,    19,    -1,   161,
-      -1,    -1,  1217,  1421,    -1,    -1,    12,    -1,    -1,    -1,
-     603,  1221,  1120,    -1,    -1,    -1,   211,  1223,  1120,    -1,
-     166,  1134,    -1,    -1,    -1,   205,    47,  1226,  1227,    -1,
-    1226,   630,  1409,  1235,    -1,  1409,  1235,    -1,    -1,   606,
-      -1,   607,    -1,   372,    47,  1229,    -1,  1229,   630,  1230,
-      -1,  1230,    -1,  1411,  1235,    -1,    -1,  1232,    -1,    -1,
-     372,    47,  1233,  1234,    -1,  1234,   630,  1409,  1235,    -1,
-    1409,  1235,    -1,    -1,    20,    -1,   133,    -1,    -1,  1238,
-      -1,    -1,  1238,    -1,   268,  1239,    -1,   268,  1239,   456,
-     170,  1241,    -1,   268,   456,   170,  1241,    -1,  1240,    -1,
-    1240,   630,  1240,    -1,  1240,   360,  1240,    -1,  1421,    -1,
-    1403,    -1,   562,    -1,   282,    -1,   357,    -1,  1240,    -1,
-      -1,   268,  1240,    -1,   268,   456,   170,    -1,   268,  1240,
-     456,   170,    -1,   357,    -1,   621,   357,    -1,   621,   282,
-      -1,   357,    -1,   213,    -1,   282,    -1,   562,    -1,   125,
-      -1,   185,    -1,   357,    -1,   213,    -1,   282,    -1,   562,
-      -1,  1248,    -1,   357,    -1,   562,    -1,   282,    -1,   125,
-      -1,   185,    -1,   357,    -1,   562,    -1,   213,    -1,   282,
-      -1,  1248,    -1,  1249,    -1,   125,    -1,   185,    -1,  1244,
-      -1,   128,    -1,    -1,    -1,   404,  1421,  1252,   628,  1253,
-     629,    -1,    -1,  1254,    -1,  1254,   630,  1255,    -1,  1255,
-      -1,  1115,  1120,  1116,    -1,    -1,  1257,  1258,    -1,  1258,
-     630,  1259,    -1,  1259,    -1,   635,  1423,    -1,  1423,    -1,
-      -1,   241,  1261,  1262,    -1,    -1,    -1,   376,  1420,  1263,
-     956,  1264,  1386,  1389,    -1,   147,  1420,    -1,  1256,    -1,
-      -1,   144,  1266,  1164,    -1,    -1,   145,  1276,  1446,  1275,
-    1268,  1271,  1041,    -1,    -1,   145,   230,  1421,   362,  1414,
-    1269,    -1,   145,   111,  1275,  1421,    -1,   145,   195,  1275,
-    1421,   636,  1421,    -1,   145,   195,  1275,  1421,    -1,   145,
-     404,  1275,   686,    -1,   145,   580,   685,  1476,    -1,    -1,
-     145,   597,  1275,  1270,  1271,  1041,    -1,   145,   168,  1275,
-     686,    -1,   145,   555,  1275,   686,    -1,   145,   530,   809,
-     820,   821,    -1,   145,   278,   205,   810,   820,   821,    -1,
-     145,   472,  1275,  1423,    -1,  1272,    -1,  1271,   630,  1272,
-      -1,  1414,    -1,  1274,    -1,  1273,   630,  1274,    -1,  1415,
-      -1,    -1,   225,   172,    -1,    -1,   536,    -1,    -1,    -1,
-     237,  1278,  1283,  1035,  1285,  1279,  1287,  1303,    -1,    -1,
-      -1,   440,  1281,  1284,  1285,  1282,  1287,    -1,    -1,   285,
-      -1,   130,    -1,   215,    -1,  1312,    -1,   130,    -1,   241,
-    1286,    -1,  1286,    -1,  1272,    -1,  1290,    -1,   628,   629,
-    1290,    -1,   628,  1289,   629,  1290,    -1,    -1,   474,  1288,
-    1294,    -1,  1289,   630,  1407,    -1,  1407,    -1,   588,  1293,
-      -1,   589,  1293,    -1,    -1,   881,  1291,  1499,    -1,    -1,
-     628,   881,   629,  1292,  1502,    -1,  1293,   630,  1298,    -1,
-    1298,    -1,  1294,   630,  1295,    -1,  1295,    -1,  1411,  1296,
-    1302,    -1,   161,    -1,   475,    -1,    -1,  1296,    -1,    -1,
-     628,  1299,  1300,   629,    -1,    -1,  1301,    -1,  1301,   630,
-    1302,    -1,  1302,    -1,  1120,    -1,   128,    -1,    -1,    -1,
-     362,   148,  1304,   254,   577,  1310,    -1,    -1,    -1,   577,
-    1306,  1312,  1035,  1171,   474,  1308,  1307,  1220,  1231,  1242,
-      -1,  1308,   630,  1309,    -1,  1309,    -1,  1411,  1296,  1302,
-      -1,  1310,   630,  1311,    -1,  1311,    -1,  1411,  1296,  1302,
-      -1,    -1,   285,    -1,    -1,   132,  1314,  1322,  1315,    -1,
-      -1,   192,  1414,  1316,  1220,  1231,  1242,    -1,    -1,  1319,
-    1317,   192,  1171,  1220,    -1,    -1,   192,  1273,  1318,   584,
-    1171,  1220,    -1,  1320,    -1,  1319,   630,  1320,    -1,  1421,
-    1321,    -1,  1421,   636,  1421,  1321,    -1,    -1,   636,   623,
-      -1,    -1,  1323,  1322,    -1,   413,    -1,   285,    -1,   226,
-      -1,    -1,   558,  1326,  1325,  1272,    -1,    -1,   533,    -1,
-      -1,  1328,    -1,  1329,    -1,  1328,   630,  1329,    -1,   102,
-      -1,   317,    -1,    42,   245,    -1,    97,   527,    -1,   380,
-     180,    -1,   246,    -1,   526,    -1,   492,    -1,    12,    -1,
-      -1,   190,   412,   357,    -1,    -1,   479,  1332,  1333,    -1,
-     112,  1344,    -1,  1340,   529,  1339,  1344,    -1,  1340,   554,
-    1339,  1344,    -1,   167,  1339,  1344,    -1,   533,   510,  1339,
-    1344,    -1,   366,   529,  1339,  1344,    -1,   392,    -1,   159,
-     900,  1336,    -1,   159,    12,  1336,    -1,  1340,    73,  1341,
-    1414,  1339,  1344,    -1,  1337,   279,    -1,   484,   217,    -1,
-      -1,    35,   167,  1342,  1343,  1334,  1236,    -1,    -1,   428,
-     167,  1342,  1343,  1335,  1236,    -1,   978,  1341,  1414,  1339,
-    1220,    -1,  1338,   158,    -1,    24,    -1,    99,    -1,   403,
-      -1,   101,   628,   623,   629,   600,    -1,   101,   628,   623,
-     629,   164,    -1,   600,  1236,    -1,   164,  1236,    -1,   408,
-      -1,   407,  1327,  1330,  1236,    -1,  1435,   510,  1344,    -1,
-    1340,   406,    -1,  1435,   592,  1344,    -1,   953,  1344,    -1,
-      72,  1344,    -1,   204,    -1,   204,   190,  1424,    -1,   103,
-     111,   891,  1421,    -1,   103,   533,  1414,    -1,   103,   597,
-    1414,    -1,   301,   510,    -1,   484,   510,    -1,    67,    -1,
-     581,    -1,   532,    -1,   231,    -1,   103,   404,   686,    -1,
-     103,   195,   686,    -1,   103,   555,   686,    -1,   404,   510,
-    1344,    -1,   195,   510,  1344,    -1,   404,    70,   686,    -1,
-     195,    70,   686,    -1,   103,   168,   686,    -1,   510,    -1,
-     335,    -1,   279,    -1,   301,    -1,    34,    -1,    -1,   514,
-      -1,    -1,  1341,  1421,    -1,    -1,   193,    -1,   192,    -1,
-     244,    -1,    -1,   244,  1418,    -1,    -1,   192,  1246,    -1,
-      -1,   267,  1418,    -1,   603,  1120,    -1,    -1,  1348,  1414,
-    1346,  1350,    -1,    -1,  1348,  1349,  1347,  1098,    -1,   133,
-      -1,   134,    -1,    -1,   175,    -1,   387,    -1,    -1,  1402,
-      -1,  1421,    -1,    -1,   187,  1073,  1352,  1353,    -1,    -1,
-      -1,  1446,  1354,  1359,  1355,  1356,    -1,  1357,    -1,    -1,
-     605,   417,   277,  1360,    -1,  1357,   630,  1358,    -1,  1358,
-      -1,   163,   279,    -1,   159,   279,    -1,   197,   279,    -1,
-     485,   279,    -1,    34,   279,    -1,   427,   279,    -1,   412,
-      49,    -1,   217,    -1,   403,    -1,   279,    -1,   510,    -1,
-     484,    -1,    67,    -1,   581,    -1,   532,    -1,   231,    -1,
-     301,    -1,   135,    -1,   445,    -1,    -1,  1271,    -1,    -1,
-      17,   138,    61,    -1,    -1,   443,  1362,  1363,    -1,  1363,
-     630,  1364,    -1,  1364,    -1,    -1,   484,  1365,  1366,    -1,
-     301,    -1,   412,    49,    -1,    -1,    12,    -1,    -1,   410,
-    1368,  1369,    -1,  1337,   279,  1370,    -1,   550,  1418,    -1,
-      30,  1120,    -1,    -1,   255,  1372,  1373,  1374,  1375,    -1,
-      -1,   209,    -1,   489,    -1,    -1,    90,    -1,   412,    -1,
-    1120,    -1,   580,  1424,    -1,   583,  1421,    -1,    -1,    -1,
-      -1,    -1,   273,  1382,  1378,  1384,  1383,   232,  1420,  1379,
-    1385,   241,   533,  1414,  1380,   956,  1381,  1392,  1386,  1389,
-    1393,  1395,  1398,    -1,   114,    -1,   613,    -1,    -1,   274,
-      -1,    -1,    88,    -1,   285,    -1,    -1,   440,    -1,   226,
-      -1,    -1,    73,  1387,    -1,  1387,  1388,    -1,  1388,    -1,
-     538,    47,  1402,    -1,   370,   154,    47,  1402,    -1,   154,
-      47,  1402,    -1,   165,    47,  1402,    -1,    -1,   270,  1390,
-      -1,  1390,  1391,    -1,  1391,    -1,   538,    47,  1402,    -1,
-     507,    47,  1402,    -1,    -1,   456,   223,    47,  1402,    -1,
-      -1,   226,   357,  1394,    -1,   270,    -1,   456,    -1,    -1,
-     628,  1396,   629,    -1,   628,   629,    -1,  1396,   630,  1397,
-      -1,  1397,    -1,  1411,    -1,   635,  1423,    -1,    -1,   474,
-    1399,    -1,  1399,   630,  1400,    -1,  1400,    -1,  1411,  1296,
-    1115,  1302,  1116,    -1,   539,    -1,   341,    -1,   565,   539,
-      -1,  1401,  1419,    -1,  1419,    -1,   213,    -1,   214,    -1,
-      36,    -1,   382,    -1,  1405,    -1,   622,  1406,    -1,   621,
-    1406,    -1,  1401,    -1,  1406,    -1,   356,    -1,   178,    -1,
-     557,    -1,   213,    -1,   214,    -1,    36,    -1,   565,   952,
-      -1,   565,    36,    -1,   118,  1401,    -1,   546,  1401,    -1,
-     543,  1401,    -1,   357,    -1,   282,    -1,   562,    -1,   125,
-      -1,   185,    -1,  1411,    -1,  1408,    -1,  1421,   636,   623,
-      -1,  1421,   636,  1421,   636,   623,    -1,  1120,    -1,  1421,
-      -1,  1412,    -1,  1421,    -1,  1412,    -1,  1421,   636,  1421,
-      -1,   636,  1421,   636,  1421,    -1,  1421,   636,  1421,   636,
-    1421,    -1,  1421,    -1,  1421,   636,  1421,   636,  1421,    -1,
-    1421,   636,  1421,    -1,   636,  1421,    -1,  1421,    -1,  1421,
-     636,  1421,    -1,   636,  1421,    -1,  1421,  1321,    -1,  1421,
-     636,  1421,  1321,    -1,  1421,    -1,   222,    -1,   224,    -1,
-     539,    -1,   539,    -1,   539,    -1,  1417,    -1,  1425,    -1,
-    1417,    -1,  1426,    -1,  1421,    -1,  1418,    -1,   266,    -1,
-    1423,    -1,  1423,   635,  1423,    -1,   107,  1119,    -1,  1426,
-      -1,    21,    -1,    29,    -1,    31,    -1,    48,    -1,    49,
-      -1,    59,    -1,    62,    -1,    61,    -1,    68,    -1,    74,
-      -1,    75,    -1,    76,    -1,    77,    -1,    78,    -1,    79,
-      -1,    82,    -1,    84,    -1,    96,    -1,   124,    -1,   144,
-      -1,   155,    -1,   170,    -1,   171,    -1,   187,    -1,   208,
-      -1,   212,    -1,   216,    -1,   239,    -1,   256,    -1,   353,
-      -1,   366,    -1,   369,    -1,   368,    -1,   378,    -1,   383,
-      -1,   388,    -1,   396,    -1,   399,    -1,   434,    -1,   437,
-      -1,   443,    -1,   446,    -1,   453,    -1,   460,    -1,   465,
-      -1,   472,    -1,   482,    -1,   488,    -1,   484,    -1,   490,
-      -1,   509,    -1,   513,    -1,   558,    -1,   569,    -1,   570,
-      -1,   609,    -1,   612,    -1,   578,    -1,     5,    -1,     7,
-      -1,     8,    -1,     9,    -1,    10,    -1,    11,    -1,    14,
-      -1,    18,    -1,    23,    -1,    24,    -1,    26,    -1,    25,
-      -1,    27,    -1,    28,    -1,    35,    -1,    39,    -1,    42,
-      -1,    44,    -1,    43,    -1,    46,    -1,    52,    -1,    55,
-      -1,    56,    -1,    58,    -1,    64,    -1,    67,    -1,    66,
-      -1,    65,    -1,    69,    -1,    70,    -1,    72,    -1,    81,
-      -1,    73,    -1,    83,    -1,    85,    -1,    86,    -1,    87,
-      -1,    88,    -1,    90,    -1,    91,    -1,    93,    -1,    95,
-      -1,    94,    -1,    97,    -1,    99,    -1,   102,    -1,   105,
-      -1,   109,    -1,   114,    -1,   113,    -1,   115,    -1,   118,
-      -1,   123,    -1,   129,    -1,   131,    -1,   135,    -1,   137,
-      -1,   138,    -1,   139,    -1,   140,    -1,   147,    -1,   148,
-      -1,   149,    -1,   156,    -1,   160,    -1,   159,    -1,   158,
-      -1,   163,    -1,   164,    -1,   166,    -1,   168,    -1,   167,
-      -1,   169,    -1,   174,    -1,   175,    -1,   176,    -1,   180,
-      -1,   179,    -1,   191,    -1,   153,    -1,   193,    -1,   182,
-      -1,   183,    -1,   184,    -1,   197,    -1,   198,    -1,   200,
-      -1,   199,    -1,   201,    -1,   204,    -1,   202,    -1,   210,
-      -1,   209,    -1,   217,    -1,   221,    -1,   223,    -1,   227,
-      -1,   231,    -1,   243,    -1,   228,    -1,   229,    -1,   233,
-      -1,   245,    -1,   246,    -1,   248,    -1,   249,    -1,   238,
-      -1,   253,    -1,   258,    -1,   257,    -1,   261,    -1,   264,
-      -1,   265,    -1,   271,    -1,   272,    -1,   274,    -1,   276,
-      -1,   278,    -1,   279,    -1,   307,    -1,   301,    -1,   303,
-      -1,   288,    -1,   292,    -1,   289,    -1,   290,    -1,   302,
-      -1,   291,    -1,   293,    -1,   287,    -1,   299,    -1,   295,
-      -1,   294,    -1,   296,    -1,   297,    -1,   298,    -1,   305,
-      -1,   306,    -1,   308,    -1,   310,    -1,   311,    -1,   316,
-      -1,   317,    -1,   318,    -1,   319,    -1,   320,    -1,   321,
-      -1,   324,    -1,   325,    -1,   329,    -1,   327,    -1,   331,
-      -1,   332,    -1,   333,    -1,   334,    -1,   335,    -1,   336,
-      -1,   338,    -1,   337,    -1,   339,    -1,   342,    -1,   343,
-      -1,   347,    -1,   346,    -1,   354,    -1,   348,    -1,   349,
-      -1,   359,    -1,   360,    -1,   361,    -1,   363,    -1,   364,
-      -1,   365,    -1,   379,    -1,   380,    -1,   385,    -1,   386,
-      -1,   387,    -1,   389,    -1,   390,    -1,   391,    -1,   393,
-      -1,   392,    -1,   394,    -1,   395,    -1,   400,    -1,   401,
-      -1,   403,    -1,   405,    -1,   406,    -1,   407,    -1,   408,
-      -1,   409,    -1,   411,    -1,   412,    -1,   413,    -1,   416,
-      -1,   420,    -1,   421,    -1,   423,    -1,   422,    -1,   424,
-      -1,   427,    -1,   428,    -1,   429,    -1,   430,    -1,   431,
-      -1,   433,    -1,   436,    -1,   438,    -1,   441,    -1,   445,
-      -1,   448,    -1,   449,    -1,   454,    -1,   455,    -1,   456,
-      -1,   457,    -1,   458,    -1,   459,    -1,   461,    -1,   462,
-      -1,   464,    -1,   470,    -1,   469,    -1,   471,    -1,   483,
-      -1,   476,    -1,   480,    -1,   485,    -1,   487,    -1,   489,
-      -1,   491,    -1,   492,    -1,   500,    -1,   499,    -1,   502,
-      -1,   505,    -1,   508,    -1,   510,    -1,   514,    -1,   516,
-      -1,   517,    -1,   518,    -1,   519,    -1,   521,    -1,   520,
-      -1,   524,    -1,   525,    -1,   526,    -1,   527,    -1,   535,
-      -1,   532,    -1,   529,    -1,   534,    -1,   530,    -1,   536,
-      -1,   537,    -1,   540,    -1,   541,    -1,   552,    -1,   553,
-      -1,   554,    -1,   543,    -1,   544,    -1,   545,    -1,   546,
-      -1,   559,    -1,   560,    -1,   561,    -1,   195,    -1,   563,
-      -1,   564,    -1,   567,    -1,   566,    -1,   573,    -1,   576,
-      -1,   580,    -1,   581,    -1,   582,    -1,   592,    -1,   597,
-      -1,   598,    -1,   589,    -1,   600,    -1,   599,    -1,   601,
-      -1,   608,    -1,   611,    -1,   613,    -1,   616,    -1,   596,
-      -1,    -1,   474,  1429,  1428,  1430,    -1,    -1,   369,    -1,
-    1431,    -1,  1430,   630,  1431,    -1,    -1,  1432,  1437,    -1,
-    1434,    -1,   202,    -1,   274,    -1,   471,    -1,    -1,   363,
-      -1,    -1,   202,    -1,   274,    -1,   471,    -1,    -1,   202,
-     636,    -1,   274,   636,    -1,   471,   636,    -1,  1438,    -1,
-    1434,  1439,    -1,  1433,  1440,  1296,  1443,    -1,  1433,   552,
-     248,   265,  1441,    -1,   635,  1423,  1296,  1120,    -1,   635,
-     635,  1436,  1440,  1296,  1443,    -1,   953,   958,    -1,   337,
-    1296,  1120,    -1,   337,   955,   960,    -1,   389,  1296,  1442,
-      -1,   389,   190,  1424,  1296,  1442,    -1,  1421,    -1,  1421,
-     636,  1421,    -1,   128,   636,  1421,    -1,   417,   563,    -1,
-     417,    83,    -1,   438,   417,    -1,   469,    -1,   539,    -1,
-     389,   628,   539,   629,    -1,   361,   628,   539,   629,    -1,
-    1120,    -1,   128,    -1,   362,    -1,    12,    -1,    34,    -1,
-      -1,   277,  1446,  1445,  1447,    -1,   533,    -1,   529,    -1,
-    1448,    -1,  1447,   630,  1448,    -1,  1414,  1218,  1449,    -1,
-     417,    -1,   610,    -1,   610,    88,    -1,   285,   610,    -1,
-     417,   274,    -1,    -1,   574,  1451,  1446,    -1,   208,  1414,
-     366,  1218,    -1,   208,  1416,    68,    -1,    -1,   208,  1416,
-     417,  1453,  1454,  1220,  1237,    -1,  1455,    -1,  1421,  1456,
-      -1,   183,    -1,   347,    -1,   183,    -1,   347,    -1,   401,
-      -1,   257,    -1,    -1,  1458,  1457,   628,  1301,   629,    -1,
-     161,    -1,   196,    -1,   259,    -1,   207,    -1,   286,    -1,
-     451,   685,  1460,    -1,  1464,   362,  1463,  1475,   192,  1476,
-      -1,  1464,   362,   195,  1475,   192,  1476,    -1,  1464,   362,
-     404,  1475,   192,  1476,    -1,    12,  1465,   630,   203,   369,
-     192,  1476,    -1,   409,   362,  1424,   192,  1476,    -1,   203,
-     685,  1462,    -1,  1464,   362,  1463,  1475,   550,  1477,  1484,
-    1485,    -1,  1464,   362,   195,  1475,   550,  1477,  1484,  1485,
-      -1,  1464,   362,   404,  1475,   550,  1477,  1484,  1485,    -1,
-     409,   362,  1424,   550,  1477,  1486,    -1,    -1,   533,    -1,
-    1466,    -1,    12,  1465,    -1,    -1,   403,    -1,  1467,    -1,
-    1466,   630,  1467,    -1,    -1,   466,  1468,  1481,    -1,    -1,
-     237,  1469,  1481,    -1,    -1,   577,  1470,  1481,    -1,    -1,
-     425,  1471,  1481,    -1,   132,    -1,   579,    -1,   230,    -1,
-      13,    -1,   103,    -1,   145,    -1,   171,    -1,   433,    -1,
-     480,    -1,   405,    -1,   182,    -1,   203,   369,    -1,   479,
-     112,    -1,   524,    -1,   103,   536,   529,    -1,   277,   529,
-      -1,   441,   484,    -1,   441,    66,    -1,   103,   597,    -1,
-     479,   597,    -1,   103,   455,    -1,    13,   455,    -1,   103,
-     580,    -1,   168,    -1,   555,    -1,   103,   530,    -1,    -1,
-      17,    -1,  1474,  1472,  1473,    -1,  1474,    -1,   519,   539,
-      -1,   249,   539,    -1,    64,   539,    -1,   623,    -1,  1421,
-     636,   623,    -1,   623,   636,   623,    -1,  1414,    -1,  1424,
-      -1,  1476,   630,  1424,    -1,  1480,    -1,  1477,   630,  1480,
-      -1,   596,    -1,   605,    -1,   584,    -1,    19,    -1,  1424,
-     223,    47,   539,    -1,  1424,   223,    47,   389,   539,    -1,
-    1424,   223,  1478,  1423,    -1,  1424,   223,  1478,  1423,  1479,
-    1418,    -1,  1424,    -1,    -1,   628,  1482,   629,    -1,  1482,
-     630,  1483,    -1,  1483,    -1,  1421,    -1,    -1,   442,  1473,
-      -1,   442,   506,    -1,   442,   611,    -1,   442,   349,    -1,
-      -1,   605,  1487,    -1,    -1,   605,   203,   369,    -1,  1487,
-    1488,    -1,  1488,    -1,   203,   369,    -1,   306,  1244,    -1,
-     310,  1244,    -1,   305,  1244,    -1,   311,  1243,    -1,    -1,
-      31,  1490,  1491,    -1,    -1,   608,    -1,    -1,    17,   353,
-      56,    -1,    17,    56,    -1,    -1,   432,    -1,   353,   432,
-      -1,    -1,   460,    -1,    84,  1491,  1492,  1493,    -1,   453,
-    1491,  1492,  1493,    -1,   453,  1491,   550,  1494,  1421,    -1,
-     460,  1421,    -1,   432,   460,  1421,    -1,    -1,  1500,    -1,
-      -1,   571,  1507,  1501,  1099,    -1,    -1,  1500,    -1,  1504,
-      -1,    -1,  1504,    -1,    -1,  1505,  1506,    -1,  1232,  1236,
-      -1,  1238,    -1,    -1,   141,    -1,    12,    -1,   466,  1188,
-      -1,   628,  1101,   629,    -1,  1508,  1503,    -1,    -1,  1509,
-     571,  1507,  1510,  1508,  1503,    -1,  1512,  1509,  1513,    -1,
-      -1,    -1,    -1,  1515,    -1,  1515,  1516,    -1,  1516,    -1,
-     515,    -1,   215,    -1,   141,    -1,   503,    -1,   498,    -1,
-     499,    -1,   501,    -1,    12,    -1,  1522,  1518,    -1,  1521,
-    1519,    -1,  1523,  1520,  1527,    -1,  1527,    -1,  1535,    -1,
-    1546,    -1,  1540,    -1,   672,    -1,  1527,    -1,  1535,    -1,
-    1546,    -1,  1540,    -1,  1539,    -1,   672,    -1,  1521,    -1,
-    1522,    -1,    -1,   129,   161,  1424,    -1,  1524,    -1,  1524,
-    1525,    -1,  1525,    -1,   374,   440,    -1,    11,   161,   564,
-      -1,    11,   161,   318,    -1,    11,   161,   537,    -1,    -1,
-     504,   465,   129,    -1,   504,   465,   243,    -1,    -1,  1526,
-     597,  1414,  1528,  1529,    19,  1531,    -1,    -1,   628,  1530,
-     629,    -1,  1421,    -1,  1530,   630,  1421,    -1,    -1,  1532,
-    1533,  1534,    -1,   466,  1102,    -1,   628,  1100,   629,  1502,
-      -1,    -1,   605,    63,   369,    -1,   605,    52,    63,   369,
-      -1,   605,   274,    63,   369,    -1,    -1,    -1,    -1,   555,
-    1115,   686,   780,   781,   362,  1115,  1536,  1414,   190,  1115,
-    1537,   150,   458,  1538,   730,    -1,    10,  1115,   195,  1421,
-     449,   904,   490,  1418,    -1,  1115,   195,  1421,   449,   904,
-     490,  1418,    -1,    -1,    -1,    -1,    -1,    -1,  1115,   195,
-     686,   628,  1541,   697,   629,  1542,   449,  1543,   950,  1544,
-     688,  1545,   730,    -1,    -1,    -1,    -1,    -1,   404,  1115,
-     686,  1547,   628,  1548,   701,   629,  1549,   688,  1550,   730,
-      -1,   612,  1553,  1552,  1554,    -1,   612,   155,  1552,  1556,
-      -1,   612,   399,  1552,    -1,   612,    84,  1552,  1555,    -1,
-     612,   453,  1552,    -1,   612,   421,    -1,  1402,    -1,  1402,
-     630,  1402,    -1,  1402,   630,  1402,   630,  1244,    -1,    31,
-      -1,   509,    -1,    -1,   251,    -1,   448,    -1,    -1,   364,
-     391,    -1,    -1,    -1,   525,  1557,  1558,    -1,    -1,   190,
-     321,    -1,   239,   393,  1421,   490,  1418,    -1,   239,   490,
-    1418,    -1,   570,   393,  1421,    -1,   570,   490,  1418,    -1,
-     618,    -1
+     640,     0,    -1,   157,    -1,    -1,   643,   641,   635,   642,
+      -1,   643,   157,    -1,    -1,   157,    -1,   644,    -1,  1491,
+      -1,  1002,    -1,  1064,    -1,  1066,    -1,   693,    -1,   656,
+      -1,  1067,    -1,  1056,    -1,  1497,    -1,   663,    -1,   645,
+      -1,  1314,    -1,  1346,    -1,  1266,    -1,  1268,    -1,   649,
+      -1,  1352,    -1,  1463,    -1,  1454,    -1,   654,    -1,  1278,
+      -1,  1561,    -1,  1563,    -1,  1080,    -1,  1372,    -1,  1378,
+      -1,  1445,    -1,  1072,    -1,   928,    -1,   837,    -1,  1087,
+      -1,   647,    -1,  1368,    -1,  1500,    -1,  1075,    -1,  1059,
+      -1,  1281,    -1,  1362,    -1,   728,    -1,  1461,    -1,  1498,
+      -1,  1499,    -1,  1099,    -1,  1428,    -1,   721,    -1,  1332,
+      -1,  1045,    -1,  1048,    -1,  1325,    -1,  1562,    -1,  1452,
+      -1,  1306,    -1,  1377,    -1,  1553,    -1,   646,   400,  1422,
+      -1,   124,    -1,   145,    -1,   400,  1422,   192,   648,    -1,
+    1419,    -1,   636,  1424,    -1,    -1,   171,  1422,   650,   651,
+      -1,    -1,   585,   652,    -1,   652,   631,   653,    -1,   653,
+      -1,   636,  1424,    -1,    -1,   212,   655,  1424,    -1,    -1,
+      57,   301,   551,   657,   658,    -1,   659,    -1,   658,   631,
+     659,    -1,   288,   161,  1419,    -1,   302,   161,  1419,    -1,
+     291,   161,  1419,    -1,   292,   161,  1245,    -1,   287,   161,
+    1245,    -1,   299,   161,  1245,    -1,   295,   161,  1419,    -1,
+     294,   161,  1419,    -1,   296,   161,  1419,    -1,   297,   161,
+    1419,    -1,   298,   161,  1419,    -1,   300,   161,  1245,    -1,
+     303,   161,  1407,    -1,   227,   161,   629,   660,   630,    -1,
+     662,    -1,    -1,   661,    -1,   660,   631,   661,    -1,  1245,
+      -1,   289,   161,  1419,    -1,   290,   161,  1247,    -1,   430,
+     161,  1419,    -1,   431,   161,  1245,    -1,    -1,   103,   889,
+     534,   892,  1415,   664,   825,    -1,    -1,   103,   980,   230,
+    1422,   984,   363,  1415,   665,   629,   997,   630,   985,    -1,
+      -1,   103,   981,   230,  1422,   983,   363,  1415,   666,   629,
+     997,   630,   986,    -1,    -1,   103,   982,   230,  1422,   983,
+     363,  1415,   667,   629,   997,   630,   987,    -1,    -1,   103,
+     111,   892,  1422,   668,   886,    -1,    -1,   103,   669,  1519,
+      -1,   103,   581,   686,  1479,    -1,   103,   278,   205,   788,
+      -1,   103,   531,   785,    -1,   103,   670,    -1,   473,  1424,
+     189,   114,   610,  1424,   369,   629,   671,   630,    -1,   672,
+      -1,   671,   631,   672,    -1,   581,  1419,    -1,   216,  1419,
+      -1,   111,  1419,    -1,   379,  1419,    -1,   390,  1419,    -1,
+     489,  1419,    -1,   397,  1245,    -1,    -1,  1116,   168,   892,
+     687,   674,   363,   462,   675,   680,   677,   682,   144,   683,
+      -1,    -1,   169,  1121,  1215,   676,   678,   679,    -1,    23,
+    1121,    -1,    -1,   153,    -1,   138,   363,   485,    -1,   138,
+      -1,    -1,   509,  1121,    -1,    -1,   156,  1121,    -1,    -1,
+     681,    -1,   363,    86,   401,    -1,   363,    86,   352,   401,
+      -1,    -1,    82,  1419,    -1,    -1,   684,   685,    -1,   734,
+      -1,   736,    -1,   732,    -1,   753,    -1,   771,    -1,   773,
+      -1,   768,    -1,   738,    -1,   740,    -1,   741,    -1,   742,
+      -1,   743,    -1,   745,    -1,    -1,  1422,   637,  1422,    -1,
+    1422,    -1,    -1,   688,   690,    -1,    -1,   689,   691,    -1,
+      82,  1419,    -1,   256,   505,    -1,   354,   505,    -1,    96,
+     505,    -1,   416,   505,   114,    -1,   328,   505,   114,    -1,
+     692,    -1,   690,    -1,   136,    -1,  1127,   136,    -1,   505,
+     466,   129,    -1,   505,   466,   243,    -1,    -1,    50,   687,
+     694,   695,    -1,    -1,   629,   696,   630,    -1,    -1,   697,
+      -1,   697,   631,  1121,    -1,  1121,    -1,    -1,   699,    -1,
+     699,   631,   701,    -1,   701,    -1,    -1,  1422,   700,   951,
+      -1,    -1,   703,    -1,   703,   631,   704,    -1,   704,    -1,
+     705,   700,  1422,   951,    -1,    -1,   244,    -1,   378,    -1,
+     235,    -1,    -1,   706,   731,   635,    -1,   731,   635,    -1,
+     707,   731,   635,    -1,    -1,   708,   709,   635,    -1,    -1,
+     127,   729,   710,   951,   730,    -1,   127,  1422,    89,   190,
+     717,    -1,    -1,   127,   714,   208,   190,   711,   715,   731,
+      -1,   127,  1422,   108,   190,   712,    -1,    -1,   713,  1099,
+      -1,   173,    -1,    98,    -1,   716,    -1,   715,   631,   716,
+      -1,   720,    -1,  1245,    -1,   718,    -1,   497,   719,  1420,
+      -1,    -1,   590,    -1,   717,    -1,  1422,    -1,   498,    -1,
+    1127,   191,    -1,   496,    -1,   482,   722,   724,    -1,  1422,
+      -1,   718,    -1,    -1,   722,    -1,    -1,   475,   725,    -1,
+     727,   161,   726,    -1,   725,   631,   727,   161,   726,    -1,
+    1406,    -1,  1152,    -1,  1411,    -1,    65,    -1,   518,    -1,
+      93,    -1,    95,    -1,    94,    -1,    55,    -1,   463,    -1,
+     536,    -1,    81,    -1,   109,    -1,   319,    -1,   337,    -1,
+     445,   723,   724,    -1,  1422,    -1,   729,   631,  1422,    -1,
+      -1,   128,  1121,    -1,   734,    -1,   736,    -1,   732,    -1,
+     753,    -1,   771,    -1,   773,    -1,   768,    -1,   738,    -1,
+     740,    -1,   741,    -1,   742,    -1,   743,    -1,   745,    -1,
+      -1,   225,   733,   748,   155,   225,    -1,    -1,   735,   644,
+      -1,    -1,   451,   737,  1121,    -1,    -1,   739,   777,    -1,
+     262,  1423,    -1,   250,  1423,    -1,   367,  1422,    -1,    -1,
+     181,   746,  1422,   241,   744,   747,    -1,    68,  1422,    -1,
+      -1,   348,   192,    -1,   192,    -1,  1422,    -1,   747,   631,
+    1422,    -1,    -1,    -1,    -1,   749,  1121,   543,   750,   707,
+     751,   752,    -1,    -1,   152,   748,    -1,   151,   707,    -1,
+     754,    -1,   757,    -1,    -1,    -1,    53,   755,  1121,   756,
+     759,   767,   155,    53,    -1,    -1,    53,   758,   760,   767,
+     155,    53,    -1,   761,    -1,   759,   761,    -1,   764,    -1,
+     760,   764,    -1,    -1,    -1,   603,   762,  1121,   763,   543,
+     707,    -1,    -1,    -1,   603,   765,  1121,   766,   543,   707,
+      -1,    -1,   151,   707,    -1,    -1,  1423,   638,   769,   777,
+     770,    -1,    -1,  1423,    -1,    -1,  1423,   638,   772,   775,
+     770,    -1,    -1,   774,   775,    -1,    -1,    31,   776,   708,
+     706,   155,    -1,   284,   707,   155,   284,    -1,    -1,    -1,
+     605,   778,  1121,   144,   779,   707,   155,   605,    -1,    -1,
+     440,   707,   577,   780,  1121,   155,   440,    -1,    30,    -1,
+       8,    -1,   237,    -1,   578,    -1,   132,    -1,   810,   812,
+      -1,   810,    57,   807,   791,    -1,   810,     6,   807,   786,
+     795,    -1,    -1,   584,   278,   205,  1422,    -1,   810,     6,
+     807,   798,    -1,   810,   145,   807,   798,    -1,   811,   790,
+     801,    -1,   811,   790,   804,    -1,     6,   808,    -1,     6,
+     809,    -1,    -1,   792,   793,    -1,   794,    -1,   793,   794,
+      -1,   793,   631,   794,    -1,   813,    -1,   814,    -1,   815,
+      -1,   796,    -1,   797,    -1,   796,   797,    -1,   796,   631,
+     797,    -1,   813,    -1,   814,    -1,   815,    -1,   816,    -1,
+     819,    -1,   821,    -1,   823,    -1,   820,    -1,   799,    -1,
+     800,    -1,   799,   800,    -1,   799,   631,   800,    -1,   813,
+      -1,   814,    -1,   815,    -1,   821,    -1,   823,    -1,   802,
+      -1,   803,    -1,   802,   803,    -1,   802,   631,   803,    -1,
+     813,    -1,   817,    -1,   818,    -1,   819,    -1,   821,    -1,
+     823,    -1,   820,    -1,   805,    -1,   806,    -1,   805,   806,
+      -1,   805,   631,   806,    -1,   813,    -1,   821,    -1,   823,
+      -1,   113,  1419,    -1,   567,  1419,    -1,   423,  1419,    -1,
+    1422,    -1,  1422,    -1,   417,    -1,   419,    -1,   352,     4,
+      -1,   233,  1298,   824,    -1,    25,  1298,   824,    -1,   308,
+    1298,   824,    -1,   176,  1298,   824,    -1,   568,  1298,   824,
+      -1,   424,  1298,   824,    -1,   349,  1298,  1246,    -1,    82,
+    1298,  1419,    -1,  1339,   159,  1298,   900,    -1,    -1,   823,
+      -1,   600,    -1,   355,    -1,  1248,    -1,  1418,    -1,   629,
+     826,    -1,   893,   832,   829,    -1,   267,  1415,    -1,   629,
+     267,  1415,   630,    -1,    -1,   906,   630,   827,   893,   832,
+     829,    -1,    -1,   832,   882,   630,   828,  1504,    -1,    -1,
+      -1,  1386,   885,   882,   830,  1501,    -1,    -1,  1386,   885,
+     629,   882,   630,   831,  1504,    -1,   833,    -1,    -1,   834,
+      -1,    -1,   389,   836,   835,   839,    -1,    -1,    -1,   389,
+     838,   839,    -1,    47,   840,   850,   851,   858,    -1,   842,
+     254,   843,   629,   844,   630,    -1,    -1,   842,   210,   841,
+     848,    -1,   415,   848,    -1,   415,   847,    -1,   272,   848,
+      -1,   272,   847,    -1,    -1,   269,    -1,    -1,    11,   161,
+    1246,    -1,    -1,   845,    -1,   846,    -1,   845,   631,   846,
+      -1,  1422,    -1,    73,   629,   844,   630,    -1,   629,  1116,
+     856,  1117,   630,    -1,   629,  1116,   856,  1117,   630,    -1,
+      -1,   388,  1246,    -1,    -1,    -1,   522,    47,   842,   210,
+     849,   852,   857,    -1,    -1,   522,    47,   842,   254,   843,
+     629,   854,   630,   853,   857,    -1,   855,    -1,   854,   631,
+     855,    -1,  1422,    -1,  1124,    -1,    -1,   521,  1246,    -1,
+      -1,   629,   859,   630,    -1,   860,    -1,   859,   631,   860,
+      -1,    -1,   389,   861,   862,   863,   879,   874,    -1,  1422,
+      -1,    -1,    -1,   589,   264,   542,   864,   866,    -1,    -1,
+     589,   244,   865,   867,    -1,   312,    -1,   869,    -1,   869,
+      -1,   629,   868,   630,    -1,   869,    -1,   868,   631,   869,
+      -1,    -1,    -1,   629,   870,   872,   871,   630,    -1,   873,
+      -1,   872,   631,   873,    -1,   312,    -1,  1124,    -1,    -1,
+     629,   875,   630,    -1,   876,    -1,   875,   631,   876,    -1,
+      -1,   522,   877,   878,   879,    -1,  1424,    -1,    -1,   880,
+      -1,   880,   881,    -1,   881,    -1,   531,  1298,  1424,    -1,
+    1339,   159,  1298,   900,    -1,    90,  1298,  1419,    -1,   349,
+    1298,  1246,    -1,   307,  1298,  1248,    -1,   325,  1298,  1248,
+      -1,   114,   137,  1298,  1419,    -1,   230,   137,  1298,  1419,
+      -1,    82,  1298,  1419,    -1,    -1,    -1,   467,   883,  1110,
+    1114,   884,   904,    -1,    -1,    19,    -1,    -1,   887,    -1,
+     888,    -1,   887,   888,    -1,   899,    -1,   898,    -1,    -1,
+     890,    -1,   891,    -1,   891,   890,    -1,   537,    -1,    -1,
+     225,  1127,   172,    -1,    -1,   895,    -1,   896,    -1,   896,
+     894,    -1,   896,    -1,   896,   895,    -1,   896,   631,   895,
+      -1,   159,  1298,   900,    -1,   307,  1298,  1247,    -1,   325,
+    1298,  1247,    -1,    27,  1298,  1245,    -1,   390,  1298,  1419,
+      -1,    82,  1298,  1419,    -1,    26,  1298,  1247,    -1,   380,
+    1298,  1245,    -1,   380,  1298,   128,    -1,    62,  1298,  1245,
+      -1,   535,  1298,  1245,    -1,   382,  1298,  1251,    -1,   131,
+    1298,  1245,    -1,   458,  1298,   902,    -1,    -1,   572,  1298,
+     897,   629,  1360,   630,    -1,   898,    -1,   899,    -1,   238,
+    1298,   903,    -1,   114,   137,  1298,  1419,    -1,   230,   137,
+    1298,  1419,    -1,   531,  1422,    -1,   515,   140,    -1,   515,
+     317,    -1,    90,  1298,  1419,    -1,   253,  1298,  1245,    -1,
+     554,  1298,  1251,    -1,  1418,  1297,  1419,    -1,  1418,  1297,
+    1422,    -1,  1418,  1297,  1248,    -1,  1418,  1297,   128,    -1,
+     963,   954,  1298,   956,    -1,   963,    71,  1298,   962,    -1,
+    1424,    -1,  1424,    -1,   128,    -1,   184,    -1,   149,    -1,
+      87,    -1,   425,    -1,    85,    -1,   381,    -1,   354,    -1,
+     183,    -1,   257,    -1,  1238,    -1,  1109,  1113,    -1,   517,
+      -1,   420,    -1,   126,    -1,   242,    -1,   907,    -1,   908,
+      -1,   907,   631,   908,    -1,   909,    -1,   910,    -1,   919,
+     915,    -1,   919,   969,    -1,    -1,   975,   999,   984,   629,
+     997,   630,   911,   985,    -1,    -1,   981,   978,   999,   983,
+     629,   997,   630,   912,   986,    -1,    -1,   982,   978,   999,
+     983,   629,   997,   630,   913,   987,    -1,    -1,   917,   976,
+     999,   984,   629,   997,   630,   914,   985,    -1,   917,   189,
+     254,   999,   629,   997,   630,   969,    -1,   917,   916,    -1,
+      -1,   916,    -1,    63,   629,  1121,   630,    -1,    -1,   918,
+      -1,    92,   999,    -1,    -1,  1414,   920,   921,    -1,   930,
+     948,    -1,    -1,   930,   923,    19,   922,   629,   929,   630,
+     924,   925,    -1,    -1,   198,    14,    -1,    -1,   599,    -1,
+     391,    -1,    -1,   926,    -1,   926,   927,    -1,   927,    -1,
+     573,    -1,   573,   254,    -1,    82,  1419,    -1,   385,   629,
+     929,   630,    -1,  1116,  1121,  1117,    -1,   938,   946,   942,
+      -1,   939,   947,   942,    -1,   186,   940,   942,    -1,    39,
+      -1,    39,   945,    -1,    44,    -1,    43,    -1,   934,   945,
+     966,    -1,   934,   966,    -1,   935,   945,   967,    -1,   935,
+     967,    -1,    34,   945,    -1,    34,    -1,   936,   945,   966,
+      -1,   937,   945,   967,    -1,   591,   945,    -1,   617,   946,
+     942,    -1,   118,    -1,   547,   946,    -1,   544,   946,    -1,
+     115,   946,    -1,   548,    -1,    41,   946,    -1,   933,    -1,
+     313,    -1,   280,    -1,   283,   591,    -1,   283,   936,   966,
+      -1,   550,   966,    -1,   541,   946,   966,    -1,   315,   966,
+      -1,   281,   966,    -1,   126,   940,   942,    -1,   359,   940,
+     942,    -1,   184,   940,   942,    -1,    -1,   160,   931,   629,
+    1001,   630,   966,    -1,    -1,   475,   932,   629,  1001,   630,
+     966,    -1,   283,   966,    -1,   471,    -1,   200,    -1,   199,
+      -1,   395,    -1,   333,    -1,   271,    -1,   332,    -1,   396,
+      -1,   334,    -1,    60,    -1,   343,    -1,   340,    60,    -1,
+     934,   595,    -1,   592,    -1,   340,   592,    -1,   360,    -1,
+     343,   592,    -1,   340,    60,   595,    -1,   343,   595,    -1,
+     242,    -1,   549,    -1,   487,    -1,   314,    -1,    33,    -1,
+     420,    -1,   143,    -1,   143,   399,    -1,    -1,   945,    -1,
+     941,    -1,   629,   358,   631,   358,   630,    -1,    -1,   943,
+      -1,   943,   944,    -1,   944,    -1,   483,    -1,   576,    -1,
+     618,    -1,   629,   282,   630,    -1,   629,   563,   630,    -1,
+     629,   125,   630,    -1,   629,   358,   630,    -1,    -1,   945,
+      -1,    -1,   941,    -1,    -1,   949,    -1,   949,   950,    -1,
+     950,    -1,   357,    -1,  1127,   357,    -1,   128,   952,    -1,
+     363,   578,   353,  1120,    -1,    26,    -1,   471,   128,   590,
+      -1,   968,   254,    -1,   573,    -1,   573,   254,    -1,    82,
+    1419,    -1,    71,   960,    -1,  1418,  1297,  1419,    -1,  1418,
+    1297,  1422,    -1,  1418,  1297,  1248,    -1,  1418,  1297,   128,
+      -1,   930,   961,    -1,   353,  1120,    -1,  1405,    -1,   213,
+      -1,   214,    -1,    60,   475,    -1,    59,    -1,  1424,    -1,
+      34,    -1,   955,    -1,   128,    -1,    -1,   954,   956,    -1,
+    1424,    -1,    34,    -1,   958,    -1,   128,    -1,  1424,    -1,
+      -1,    71,   962,    -1,   960,    -1,   128,    -1,    -1,   128,
+      -1,    21,    -1,    34,    21,    -1,    21,    34,    -1,   570,
+      -1,   570,    34,    -1,    34,   570,    -1,    -1,   964,    -1,
+     965,    -1,    48,    -1,   954,   955,   967,    -1,    34,    -1,
+      34,   954,   955,    -1,    -1,    34,    -1,    -1,   403,    -1,
+     426,  1415,   970,   972,   973,    -1,    -1,   629,   971,   630,
+      -1,   971,   631,  1422,    -1,  1422,    -1,    -1,   304,   193,
+      -1,   304,   386,    -1,   304,   484,    -1,    -1,   363,   578,
+     974,    -1,   363,   132,   974,    -1,   363,   578,   974,   363,
+     132,   974,    -1,   363,   132,   974,   363,   578,   974,    -1,
+     448,    -1,    51,    -1,   475,   357,    -1,   354,     5,    -1,
+     475,   128,    -1,   977,    -1,   403,   254,    -1,   573,   978,
+      -1,   254,    -1,   230,    -1,    -1,   977,    -1,   252,    -1,
+     230,    -1,   229,    -1,    -1,   573,    -1,   194,    -1,   494,
+      -1,    -1,   983,    -1,   983,   991,    -1,    -1,   988,    -1,
+      -1,   990,    -1,    -1,   989,    -1,   993,    -1,   988,   993,
+      -1,   994,    -1,   989,   994,    -1,   995,    -1,   990,   995,
+      -1,   585,   996,    -1,   561,   996,    -1,   253,  1298,  1245,
+      -1,    82,  1419,    -1,  1418,  1297,  1419,    -1,  1418,  1297,
+    1422,    -1,  1418,  1297,  1248,    -1,  1418,  1297,   128,    -1,
+     992,    -1,   991,    -1,   992,    -1,   992,    -1,   606,   384,
+    1418,    -1,    46,    -1,   460,    -1,   210,    -1,   997,   631,
+     998,  1236,    -1,   998,  1236,    -1,  1422,    -1,  1422,   629,
+     358,   630,    -1,    -1,  1414,    -1,    -1,   637,  1422,    -1,
+    1403,    -1,  1001,   631,  1403,    -1,    -1,    13,  1037,   534,
+    1415,  1003,  1014,    -1,    -1,    13,   111,  1013,  1004,   887,
+      -1,    13,   111,  1422,   579,   114,   137,   339,    -1,    -1,
+      13,   405,   687,  1005,   688,    -1,    -1,    13,   195,   687,
+    1006,   688,    -1,    -1,    13,  1527,  1522,  1007,  1529,    -1,
+      -1,    13,  1522,  1008,  1529,    -1,    -1,    13,  1522,   168,
+     687,  1009,  1010,  1011,   677,   682,  1012,    -1,    13,   531,
+     787,    -1,    13,   278,   205,   789,    -1,    13,   531,   784,
+      -1,    13,   531,   783,    -1,    13,   473,  1424,   369,   629,
+     671,   630,    -1,    -1,   363,   462,   675,    -1,   681,    -1,
+     363,   462,   675,   681,    -1,    -1,   436,   551,   687,    -1,
+      -1,   144,   683,    -1,    -1,  1422,    -1,    -1,   139,   531,
+      -1,   228,   531,    -1,  1029,   833,    -1,  1029,  1018,    -1,
+    1018,    -1,   834,    -1,  1020,    -1,   145,   389,  1027,    -1,
+     421,   389,  1074,  1019,    -1,    -1,   368,   389,  1074,  1019,
+    1015,  1074,    -1,    15,   389,  1074,  1019,    -1,    -1,    63,
+     389,  1019,  1016,  1069,    -1,    -1,   438,   389,  1074,  1019,
+    1017,  1061,    -1,    69,   389,  1074,  1246,    -1,   559,   389,
+    1019,    -1,  1023,    -1,   435,   387,    -1,    12,    -1,  1027,
+      -1,    -1,     6,   389,  1074,  1021,  1022,    -1,    -1,   629,
+     859,   630,    -1,   388,  1246,    -1,    -1,   437,   389,  1074,
+    1024,  1025,    -1,    -1,    -1,  1027,  1026,   241,   629,   859,
+     630,    -1,  1028,    -1,  1027,   631,  1028,    -1,  1422,    -1,
+    1031,    -1,  1029,   631,  1031,    -1,     6,  1035,    -1,  1030,
+     909,  1043,    -1,     6,   910,    -1,  1030,   629,   906,   630,
+      -1,    -1,    57,  1035,  1414,  1032,   919,  1043,    -1,    -1,
+      -1,   329,  1035,  1414,  1033,   921,  1034,  1043,    -1,   145,
+    1035,  1414,  1042,    -1,   145,   189,   254,   999,    -1,   145,
+     403,   254,    -1,   145,   977,  1414,    -1,   138,   252,    -1,
+     153,   252,    -1,    13,  1035,  1414,   475,   128,  1405,    -1,
+      13,  1035,  1414,   145,   128,    -1,   436,  1044,  1415,    -1,
+     100,   551,   954,   956,   961,    -1,   894,    -1,   188,    -1,
+    1229,    -1,    -1,    80,    -1,    -1,   226,    -1,    -1,  1038,
+    1039,    -1,    -1,  1040,    -1,  1040,  1041,    -1,  1041,    -1,
+     226,    -1,   366,    -1,    -1,   448,    -1,    51,    -1,    -1,
+       8,  1422,    -1,   183,    -1,    -1,   551,    -1,   161,    -1,
+      19,    -1,    -1,   510,   485,  1050,  1046,  1054,    -1,   514,
+     485,  1050,    -1,    -1,   485,   510,  1050,  1047,  1054,    -1,
+     485,   514,  1050,    -1,   510,   553,  1049,    -1,    -1,   606,
+      91,   488,    -1,    -1,  1051,  1052,    -1,  1053,    -1,  1052,
+     631,  1053,    -1,    -1,   506,    -1,   432,    -1,    -1,   577,
+    1055,    -1,   662,    -1,  1055,   631,   662,    -1,    -1,    62,
+    1447,  1057,  1272,  1058,    -1,    -1,   414,    -1,   175,    -1,
+      -1,   438,  1074,  1448,  1060,  1272,  1061,    -1,    -1,  1062,
+      -1,  1063,    -1,  1063,  1062,    -1,   414,    -1,   175,    -1,
+     583,    -1,   192,   336,    -1,    -1,    15,  1074,  1447,  1065,
+    1272,    -1,    35,  1419,    -1,    -1,    63,  1448,  1068,  1272,
+    1069,    -1,    -1,  1070,    -1,  1071,    -1,  1071,  1070,    -1,
+     414,    -1,   179,    -1,   316,    -1,   175,    -1,    58,    -1,
+     190,   579,    -1,    -1,   368,  1074,  1447,  1073,  1272,    -1,
+      -1,   356,    -1,   274,    -1,    -1,   436,  1447,  1076,  1078,
+      -1,   436,   581,   686,  1077,    -1,  1425,   551,  1425,    -1,
+    1077,   631,  1425,   551,  1425,    -1,  1079,    -1,  1078,   631,
+    1079,    -1,  1415,   551,  1415,    -1,    -1,    49,   230,  1081,
+    1082,   244,  1086,    -1,  1083,    -1,  1085,    -1,  1084,    -1,
+    1083,   631,  1084,    -1,  1415,  1095,    -1,  1415,  1093,  1095,
+      -1,  1422,    -1,   128,    -1,    -1,   273,   230,   241,    49,
+    1088,  1089,    -1,  1092,    -1,  1090,    -1,  1091,    -1,  1090,
+     631,  1091,    -1,  1415,  1095,  1098,    -1,  1415,  1093,  1095,
+    1098,    -1,    -1,   389,   836,  1094,   629,  1019,   630,    -1,
+      -1,  1096,  1097,    -1,    -1,   977,   629,  1211,   630,    -1,
+      -1,   226,   261,    -1,  1100,    -1,   467,  1103,    -1,   629,
+    1101,   630,  1504,    -1,   467,  1105,    -1,   629,  1101,   630,
+      -1,   467,  1190,    -1,   629,  1102,   630,    -1,    -1,  1105,
+    1104,  1501,    -1,    -1,    -1,  1106,  1110,  1114,  1107,  1108,
+    1113,    -1,  1232,  1238,    -1,  1261,    -1,  1109,    -1,  1261,
+    1109,    -1,  1109,  1261,    -1,   192,  1172,  1221,  1226,  1223,
+    1232,  1238,  1252,    -1,   192,   146,  1221,  1238,    -1,    -1,
+    1111,    -1,  1111,  1112,    -1,  1112,    -1,  1518,    -1,   503,
+      -1,   501,    -1,    -1,   190,   578,    -1,   277,   244,   477,
+     327,    -1,  1114,   631,  1115,    -1,  1115,    -1,   624,    -1,
+    1116,  1409,  1117,    -1,  1116,  1121,  1117,  1118,    -1,    -1,
+      -1,    -1,    19,  1422,    -1,    19,  1419,    -1,  1422,    -1,
+    1419,    -1,    -1,   629,   630,    -1,   629,  1246,   630,    -1,
+      -1,   629,   630,    -1,  1121,  1125,  1121,    -1,  1121,   615,
+    1121,    -1,  1121,  1126,  1121,    -1,   352,  1121,    -1,  1122,
+     247,   558,    -1,  1122,   247,  1127,   558,    -1,  1122,   247,
+     178,    -1,  1122,   247,  1127,   178,    -1,  1122,   247,   574,
+      -1,  1122,   247,  1127,   574,    -1,  1122,    -1,  1122,   247,
+     357,    -1,  1122,   247,  1127,   357,    -1,  1122,   162,  1123,
+      -1,  1122,  1129,  1123,    -1,  1122,  1129,  1130,   629,  1513,
+     630,    -1,  1123,    -1,  1124,   244,   629,  1513,   630,    -1,
+    1124,  1127,   244,   629,  1513,   630,    -1,  1124,   244,   629,
+    1121,   630,    -1,  1124,   244,   629,  1121,   631,  1165,   630,
+      -1,  1124,  1127,   244,   629,  1121,   630,    -1,  1124,  1127,
+     244,   629,  1121,   631,  1165,   630,    -1,  1124,    32,  1124,
+      17,  1123,    -1,  1124,  1127,    32,  1124,    17,  1123,    -1,
+    1124,   492,   267,  1124,    -1,  1124,   267,  1135,  1225,    -1,
+    1124,  1127,   267,  1135,  1225,    -1,  1124,   427,  1124,    -1,
+    1124,  1127,   427,  1124,    -1,  1124,    -1,  1124,   620,  1124,
+      -1,  1124,   621,  1124,    -1,  1124,   478,  1124,    -1,  1124,
+     479,  1124,    -1,  1124,   623,  1124,    -1,  1124,   622,  1124,
+      -1,  1124,   623,   240,  1121,  1215,    -1,  1124,   622,   240,
+    1121,  1215,    -1,  1124,   624,  1124,    -1,  1124,   625,  1124,
+      -1,  1124,   626,  1124,    -1,  1124,   142,  1124,    -1,  1124,
+     330,  1124,    -1,  1124,   627,  1124,    -1,  1135,    -1,   375,
+      -1,   372,    -1,    17,    -1,    16,    -1,   352,    -1,   351,
+      -1,   632,    -1,   351,    -1,   161,    -1,   196,    -1,   207,
+      -1,   259,    -1,   286,    -1,   345,    -1,    12,    -1,    18,
+      -1,    -1,    19,  1132,    -1,   242,    -1,   576,   242,    -1,
+     143,    -1,   420,    -1,   186,    -1,   126,   940,    -1,   934,
+     966,    -1,   935,    -1,   118,    -1,   547,   946,    -1,   115,
+     946,    -1,  1121,   631,  1121,  1131,    -1,  1133,    -1,  1134,
+     631,  1133,    -1,  1411,    -1,  1136,    -1,  1137,    -1,  1140,
+      -1,  1138,    -1,  1135,    71,  1424,    -1,  1406,    -1,  1404,
+      -1,  1152,    -1,  1148,    -1,  1135,   374,  1135,    -1,   623,
+    1135,    -1,   622,  1135,    -1,   628,  1135,    -1,  1128,  1135,
+      -1,   629,  1513,   630,    -1,   629,  1121,   630,    -1,   629,
+    1121,   631,  1165,   630,    -1,   459,   629,  1121,   631,  1165,
+     630,    -1,   172,   629,  1513,   630,    -1,   633,  1422,  1121,
+     634,    -1,   304,  1166,     9,   629,  1124,  1142,   630,    -1,
+      34,  1135,    -1,    54,   629,  1121,    19,  1162,   630,    -1,
+      53,  1168,  1170,  1169,   155,    -1,   100,   629,  1121,   631,
+    1162,   630,    -1,   100,   629,  1121,   585,   955,   630,    -1,
+     128,   629,  1411,   630,    -1,   589,   629,  1412,   630,    -1,
+     240,  1121,  1215,   623,  1121,    -1,    60,   629,  1165,   630,
+      -1,    60,   629,  1165,   585,   955,   630,    -1,   107,  1120,
+      -1,   118,   629,  1121,   630,    -1,   123,   629,  1121,   630,
+      -1,   221,   629,  1121,   630,    -1,   237,   629,  1121,   631,
+    1121,   631,  1121,   631,  1121,   630,    -1,   240,   629,  1121,
+     631,  1121,   630,    -1,   240,   629,  1121,   631,  1121,   631,
+    1165,   630,    -1,   263,   629,  1121,   631,  1121,   630,    -1,
+     324,   629,  1121,   630,    -1,   331,   629,  1121,   630,    -1,
+     453,   629,  1121,   631,  1121,   630,    -1,   465,   629,  1121,
+     630,    -1,   547,   629,  1121,   630,    -1,   544,   629,  1121,
+     630,    -1,   544,   629,  1121,   631,  1121,   630,    -1,   557,
+     629,  1121,   630,    -1,   557,   629,   260,  1121,   192,  1121,
+     630,    -1,   557,   629,   552,  1121,   192,  1121,   630,    -1,
+     557,   629,    45,  1121,   192,  1121,   630,    -1,   557,   629,
+     260,   192,  1121,   630,    -1,   557,   629,   552,   192,  1121,
+     630,    -1,   557,   629,    45,   192,  1121,   630,    -1,   557,
+     629,  1121,   192,  1121,   630,    -1,   581,   629,   630,    -1,
+     617,   629,  1121,   630,    -1,     7,   629,  1121,   631,  1121,
+     630,    -1,     7,   629,  1121,   631,   240,  1121,  1215,   630,
+      -1,   106,  1120,    -1,   110,  1119,    -1,   116,   629,  1121,
+     631,   240,  1121,  1215,   630,    -1,   117,   629,  1121,   631,
+     240,  1121,  1215,   630,    -1,   177,   629,  1215,   192,  1121,
+     630,    -1,   201,   629,  1217,   631,  1121,   630,    -1,   353,
+    1119,    -1,   398,   629,  1124,   244,  1121,   630,    -1,   519,
+     629,  1121,   631,  1121,   630,    -1,   519,   629,  1121,   631,
+     240,  1121,  1215,   630,    -1,   523,   629,  1121,   631,  1121,
+     631,  1121,   630,    -1,   523,   629,  1121,   631,  1121,   630,
+      -1,   523,   629,  1121,   192,  1121,   190,  1121,   630,    -1,
+     523,   629,  1121,   192,  1121,   630,    -1,   529,  1119,    -1,
+     545,   629,  1216,   631,  1121,   631,  1121,   630,    -1,   546,
+     629,  1216,   631,  1121,   631,  1121,   630,    -1,   586,  1120,
+      -1,   588,  1119,    -1,   587,  1119,    -1,    74,   629,  1121,
+     631,  1134,   630,    -1,    76,   629,  1121,   631,  1165,   630,
+      -1,    77,   629,  1121,   631,  1121,   630,    -1,    79,   629,
+    1121,   630,    -1,    75,   629,  1134,   630,    -1,    78,   629,
+    1121,   631,  1121,    19,  1162,   630,    -1,    21,   629,  1121,
+     630,    -1,    59,   629,  1121,   630,    -1,    69,   629,  1165,
+     630,    -1,    72,   629,  1121,   630,    -1,   111,   629,   630,
+      -1,   225,   629,  1121,   631,  1121,   631,  1121,   630,    -1,
+     258,   629,  1165,   630,    -1,   320,   629,  1121,   630,    -1,
+     330,   629,  1121,   631,  1121,   630,    -1,   362,   629,  1121,
+     630,    -1,   390,   629,  1121,   630,    -1,   412,   629,  1121,
+     630,    -1,   440,   629,  1121,   631,  1121,   630,    -1,   441,
+     629,  1121,   631,  1121,   631,  1121,   630,    -1,   559,   629,
+    1121,   631,  1121,   630,    -1,   602,   629,  1121,   630,    -1,
+     602,   629,  1121,   631,  1121,   630,    -1,  1139,    -1,    96,
+     629,  1121,   631,  1121,   630,    -1,   199,   629,  1165,   630,
+      -1,   271,   629,  1165,   630,    -1,   332,   629,  1165,   630,
+      -1,   333,   629,  1165,   630,    -1,   334,   629,  1165,   630,
+      -1,   395,   629,  1121,   631,  1121,   630,    -1,   396,   629,
+    1165,   630,    -1,    -1,  1418,   629,  1141,  1145,   630,    -1,
+    1422,   637,  1422,   629,  1164,   630,    -1,  1143,  1144,    -1,
+     244,    43,   327,    -1,    -1,   244,   341,   256,   327,    -1,
+      -1,   606,   413,   174,    -1,    -1,  1146,    -1,  1147,    -1,
+    1146,   631,  1147,    -1,  1116,  1121,  1117,  1118,    -1,    28,
+     629,  1160,   630,    -1,    28,   629,   141,  1160,   630,    -1,
+      37,   629,  1160,   630,    -1,    38,   629,  1160,   630,    -1,
+      40,   629,  1160,   630,    -1,   101,   629,  1220,   624,   630,
+      -1,   101,   629,  1160,   630,    -1,    -1,    -1,   101,   629,
+     141,  1149,  1165,  1150,   630,    -1,   326,   629,  1160,   630,
+      -1,   326,   629,   141,  1160,   630,    -1,   309,   629,  1160,
+     630,    -1,   309,   629,   141,  1160,   630,    -1,   513,   629,
+    1160,   630,    -1,   594,   629,  1160,   630,    -1,   512,   629,
+    1160,   630,    -1,   596,   629,  1160,   630,    -1,   524,   629,
+    1160,   630,    -1,   524,   629,   141,  1160,   630,    -1,    -1,
+     206,   629,  1155,  1151,  1165,  1157,  1156,   630,    -1,    -1,
+     636,  1153,  1154,    -1,  1424,   476,  1121,    -1,  1424,    -1,
+     636,  1437,  1424,  1000,    -1,    -1,   141,    -1,    -1,   469,
+    1403,    -1,    -1,    -1,   373,    47,  1158,  1159,    -1,  1159,
+     631,  1410,  1236,    -1,  1410,  1236,    -1,    -1,  1220,  1161,
+    1121,    -1,    34,   946,    -1,    60,   946,   966,    -1,   343,
+     946,    -1,   242,    -1,   483,    -1,   483,   242,    -1,   576,
+      -1,   576,   242,    -1,   118,    -1,   547,   946,    -1,   115,
+     946,    -1,   126,   940,    -1,    -1,   143,  1163,   947,    -1,
+      -1,  1165,    -1,  1121,    -1,  1165,   631,  1121,    -1,  1167,
+      -1,   629,  1167,   630,    -1,  1411,    -1,  1167,   631,  1411,
+      -1,    -1,  1121,    -1,    -1,   151,  1121,    -1,   603,  1121,
+     543,  1121,    -1,  1170,   603,  1121,   543,  1121,    -1,  1184,
+      -1,  1175,    -1,  1174,    -1,  1171,    -1,   633,  1422,  1171,
+     634,    -1,  1173,    -1,  1174,   631,  1173,    -1,  1171,  1183,
+    1171,    -1,  1171,   516,  1184,    -1,    -1,  1171,  1183,  1171,
+     363,  1176,  1121,    -1,    -1,  1171,   516,  1184,   363,  1177,
+    1121,    -1,    -1,  1171,  1183,  1171,   585,  1178,   629,  1214,
+     630,    -1,  1171,   341,   251,  1184,    -1,    -1,  1171,   263,
+    1200,   251,  1171,   363,  1179,  1121,    -1,    -1,  1171,   263,
+    1200,   251,  1184,  1180,   585,   629,  1214,   630,    -1,  1171,
+     341,   263,  1200,   251,  1184,    -1,    -1,  1171,   453,  1200,
+     251,  1171,   363,  1181,  1121,    -1,    -1,  1171,   453,  1200,
+     251,  1184,  1182,   585,   629,  1214,   630,    -1,  1171,   341,
+     453,  1200,   251,  1184,    -1,   251,    -1,   234,   251,    -1,
+     104,   251,    -1,    -1,  1185,  1415,  1219,  1209,    -1,  1199,
+    1198,  1195,    -1,   629,  1198,  1186,   630,  1219,    -1,  1193,
+    1505,    -1,    -1,    -1,  1186,   572,  1509,  1187,  1510,  1188,
+    1505,    -1,  1190,    -1,    -1,    -1,  1191,  1516,  1114,  1192,
+     904,  1113,    -1,    -1,  1198,  1194,  1174,    -1,    -1,    -1,
+    1196,  1110,  1114,  1197,   904,    -1,    -1,   467,    -1,    -1,
+     376,    -1,    -1,   190,   251,    -1,   190,   373,    47,    -1,
+     190,   205,    47,    -1,   188,    -1,   226,    -1,    -1,  1202,
+     977,  1201,  1204,   629,  1213,   630,    -1,    -1,   584,   977,
+    1201,  1205,   629,  1211,   630,    -1,  1203,    -1,  1206,  1203,
+      -1,    -1,    -1,  1208,  1206,    -1,    -1,  1210,  1207,    -1,
+      -1,  1213,    -1,  1422,    -1,   403,    -1,  1212,    -1,  1213,
+     631,  1212,    -1,  1422,    -1,  1214,   631,  1422,    -1,  1216,
+      -1,   119,    -1,   120,    -1,   121,    -1,   122,    -1,   218,
+      -1,   219,    -1,   220,    -1,   322,    -1,   323,    -1,   464,
+      -1,   616,    -1,   123,    -1,   602,    -1,   221,    -1,   324,
+      -1,   331,    -1,   412,    -1,   465,    -1,   320,    -1,   617,
+      -1,   118,    -1,   547,    -1,   115,    -1,   544,    -1,    -1,
+      19,    -1,   161,    -1,    -1,  1218,  1422,    -1,    -1,    12,
+      -1,    -1,    -1,   604,  1222,  1121,    -1,    -1,    -1,   211,
+    1224,  1121,    -1,   166,  1135,    -1,    -1,    -1,   205,    47,
+    1227,  1228,    -1,  1227,   631,  1410,  1236,    -1,  1410,  1236,
+      -1,    -1,   607,    -1,   608,    -1,   373,    47,  1230,    -1,
+    1230,   631,  1231,    -1,  1231,    -1,  1412,  1236,    -1,    -1,
+    1233,    -1,    -1,   373,    47,  1234,  1235,    -1,  1235,   631,
+    1410,  1236,    -1,  1410,  1236,    -1,    -1,    20,    -1,   133,
+      -1,    -1,  1239,    -1,    -1,  1239,    -1,   268,  1240,    -1,
+     268,  1240,   457,   170,  1242,    -1,   268,   457,   170,  1242,
+      -1,  1241,    -1,  1241,   631,  1241,    -1,  1241,   361,  1241,
+      -1,  1422,    -1,  1404,    -1,   563,    -1,   282,    -1,   358,
+      -1,  1241,    -1,    -1,   268,  1241,    -1,   268,   457,   170,
+      -1,   268,  1241,   457,   170,    -1,   358,    -1,   622,   358,
+      -1,   622,   282,    -1,   358,    -1,   213,    -1,   282,    -1,
+     563,    -1,   125,    -1,   185,    -1,   358,    -1,   213,    -1,
+     282,    -1,   563,    -1,  1249,    -1,   358,    -1,   563,    -1,
+     282,    -1,   125,    -1,   185,    -1,   358,    -1,   563,    -1,
+     213,    -1,   282,    -1,  1249,    -1,  1250,    -1,   125,    -1,
+     185,    -1,  1245,    -1,   128,    -1,    -1,    -1,   405,  1422,
+    1253,   629,  1254,   630,    -1,    -1,  1255,    -1,  1255,   631,
+    1256,    -1,  1256,    -1,  1116,  1121,  1117,    -1,    -1,  1258,
+    1259,    -1,  1259,   631,  1260,    -1,  1260,    -1,   636,  1424,
+      -1,  1424,    -1,    -1,   241,  1262,  1263,    -1,    -1,    -1,
+     377,  1421,  1264,   957,  1265,  1387,  1390,    -1,   147,  1421,
+      -1,  1257,    -1,    -1,   144,  1267,  1165,    -1,    -1,   145,
+    1277,  1447,  1276,  1269,  1272,  1042,    -1,    -1,   145,   230,
+    1422,   363,  1415,  1270,    -1,   145,   111,  1276,  1422,    -1,
+     145,   195,  1276,  1422,   637,  1422,    -1,   145,   195,  1276,
+    1422,    -1,   145,   405,  1276,   687,    -1,   145,   581,   686,
+    1478,    -1,    -1,   145,   598,  1276,  1271,  1272,  1042,    -1,
+     145,   168,  1276,   687,    -1,   145,   556,  1276,   687,    -1,
+     145,   531,   810,   821,   822,    -1,   145,   278,   205,   811,
+     821,   822,    -1,   145,   473,  1276,  1424,    -1,  1273,    -1,
+    1272,   631,  1273,    -1,  1415,    -1,  1275,    -1,  1274,   631,
+    1275,    -1,  1416,    -1,    -1,   225,   172,    -1,    -1,   537,
+      -1,    -1,    -1,   237,  1279,  1284,  1036,  1286,  1280,  1288,
+    1304,    -1,    -1,    -1,   441,  1282,  1285,  1286,  1283,  1288,
+      -1,    -1,   285,    -1,   130,    -1,   215,    -1,  1313,    -1,
+     130,    -1,   241,  1287,    -1,  1287,    -1,  1273,    -1,  1291,
+      -1,   629,   630,  1291,    -1,   629,  1290,   630,  1291,    -1,
+      -1,   475,  1289,  1295,    -1,  1290,   631,  1408,    -1,  1408,
+      -1,   589,  1294,    -1,   590,  1294,    -1,    -1,   882,  1292,
+    1501,    -1,    -1,   629,   882,   630,  1293,  1504,    -1,  1294,
+     631,  1299,    -1,  1299,    -1,  1295,   631,  1296,    -1,  1296,
+      -1,  1412,  1297,  1303,    -1,   161,    -1,   476,    -1,    -1,
+    1297,    -1,    -1,   629,  1300,  1301,   630,    -1,    -1,  1302,
+      -1,  1302,   631,  1303,    -1,  1303,    -1,  1121,    -1,   128,
+      -1,    -1,    -1,   363,   148,  1305,   254,   578,  1311,    -1,
+      -1,    -1,   578,  1307,  1313,  1036,  1172,   475,  1309,  1308,
+    1221,  1232,  1243,    -1,  1309,   631,  1310,    -1,  1310,    -1,
+    1412,  1297,  1303,    -1,  1311,   631,  1312,    -1,  1312,    -1,
+    1412,  1297,  1303,    -1,    -1,   285,    -1,    -1,   132,  1315,
+    1323,  1316,    -1,    -1,   192,  1415,  1317,  1221,  1232,  1243,
+      -1,    -1,  1320,  1318,   192,  1172,  1221,    -1,    -1,   192,
+    1274,  1319,   585,  1172,  1221,    -1,  1321,    -1,  1320,   631,
+    1321,    -1,  1422,  1322,    -1,  1422,   637,  1422,  1322,    -1,
+      -1,   637,   624,    -1,    -1,  1324,  1323,    -1,   414,    -1,
+     285,    -1,   226,    -1,    -1,   559,  1327,  1326,  1273,    -1,
+      -1,   534,    -1,    -1,  1329,    -1,  1330,    -1,  1329,   631,
+    1330,    -1,   102,    -1,   317,    -1,    42,   245,    -1,    97,
+     528,    -1,   381,   180,    -1,   246,    -1,   527,    -1,   493,
+      -1,    12,    -1,    -1,   190,   413,   358,    -1,    -1,   480,
+    1333,  1334,    -1,   112,  1345,    -1,  1341,   530,  1340,  1345,
+      -1,  1341,   555,  1340,  1345,    -1,   167,  1340,  1345,    -1,
+     534,   511,  1340,  1345,    -1,   367,   530,  1340,  1345,    -1,
+     393,    -1,   159,   901,  1337,    -1,   159,    12,  1337,    -1,
+    1341,    73,  1342,  1415,  1340,  1345,    -1,  1338,   279,    -1,
+     485,   217,    -1,    -1,    35,   167,  1343,  1344,  1335,  1237,
+      -1,    -1,   429,   167,  1343,  1344,  1336,  1237,    -1,   979,
+    1342,  1415,  1340,  1221,    -1,  1339,   158,    -1,    24,    -1,
+      99,    -1,   404,    -1,   101,   629,   624,   630,   601,    -1,
+     101,   629,   624,   630,   164,    -1,   601,  1237,    -1,   164,
+    1237,    -1,   409,    -1,   408,  1328,  1331,  1237,    -1,  1436,
+     511,  1345,    -1,  1341,   407,    -1,  1436,   593,  1345,    -1,
+     954,  1345,    -1,    72,  1345,    -1,   204,    -1,   204,   190,
+    1425,    -1,   103,   111,   892,  1422,    -1,   103,   534,  1415,
+      -1,   103,   598,  1415,    -1,   301,   511,    -1,   485,   511,
+      -1,    67,    -1,   582,    -1,   533,    -1,   231,    -1,   103,
+     405,   687,    -1,   103,   195,   687,    -1,   103,   556,   687,
+      -1,   405,   511,  1345,    -1,   195,   511,  1345,    -1,   405,
+      70,   687,    -1,   195,    70,   687,    -1,   103,   168,   687,
+      -1,   511,    -1,   335,    -1,   279,    -1,   301,    -1,    34,
+      -1,    -1,   515,    -1,    -1,  1342,  1422,    -1,    -1,   193,
+      -1,   192,    -1,   244,    -1,    -1,   244,  1419,    -1,    -1,
+     192,  1247,    -1,    -1,   267,  1419,    -1,   604,  1121,    -1,
+      -1,  1349,  1415,  1347,  1351,    -1,    -1,  1349,  1350,  1348,
+    1099,    -1,   133,    -1,   134,    -1,    -1,   175,    -1,   388,
+      -1,    -1,  1403,    -1,  1422,    -1,    -1,   187,  1074,  1353,
+    1354,    -1,    -1,    -1,  1447,  1355,  1360,  1356,  1357,    -1,
+    1358,    -1,    -1,   606,   418,   277,  1361,    -1,  1358,   631,
+    1359,    -1,  1359,    -1,   163,   279,    -1,   159,   279,    -1,
+     197,   279,    -1,   486,   279,    -1,    34,   279,    -1,   428,
+     279,    -1,   413,    49,    -1,   217,    -1,   404,    -1,   279,
+      -1,   511,    -1,   485,    -1,    67,    -1,   582,    -1,   533,
+      -1,   231,    -1,   301,    -1,   135,    -1,   446,    -1,    -1,
+    1272,    -1,    -1,    17,   138,    61,    -1,    -1,   444,  1363,
+    1364,    -1,  1364,   631,  1365,    -1,  1365,    -1,    -1,   485,
+    1366,  1367,    -1,   301,    -1,   413,    49,    -1,    -1,    12,
+      -1,    -1,   411,  1369,  1370,    -1,  1338,   279,  1371,    -1,
+     551,  1419,    -1,    30,  1121,    -1,    -1,   255,  1373,  1374,
+    1375,  1376,    -1,    -1,   209,    -1,   490,    -1,    -1,    90,
+      -1,   413,    -1,  1121,    -1,   581,  1425,    -1,   584,  1422,
+      -1,    -1,    -1,    -1,    -1,   273,  1383,  1379,  1385,  1384,
+     232,  1421,  1380,  1386,   241,   534,  1415,  1381,   957,  1382,
+    1393,  1387,  1390,  1394,  1396,  1399,    -1,   114,    -1,   614,
+      -1,    -1,   274,    -1,    -1,    88,    -1,   285,    -1,    -1,
+     441,    -1,   226,    -1,    -1,    73,  1388,    -1,  1388,  1389,
+      -1,  1389,    -1,   539,    47,  1403,    -1,   371,   154,    47,
+    1403,    -1,   154,    47,  1403,    -1,   165,    47,  1403,    -1,
+      -1,   270,  1391,    -1,  1391,  1392,    -1,  1392,    -1,   539,
+      47,  1403,    -1,   508,    47,  1403,    -1,    -1,   457,   223,
+      47,  1403,    -1,    -1,   226,   358,  1395,    -1,   270,    -1,
+     457,    -1,    -1,   629,  1397,   630,    -1,   629,   630,    -1,
+    1397,   631,  1398,    -1,  1398,    -1,  1412,    -1,   636,  1424,
+      -1,    -1,   475,  1400,    -1,  1400,   631,  1401,    -1,  1401,
+      -1,  1412,  1297,  1116,  1303,  1117,    -1,   540,    -1,   342,
+      -1,   566,   540,    -1,  1402,  1420,    -1,  1420,    -1,   213,
+      -1,   214,    -1,    36,    -1,   383,    -1,  1406,    -1,   623,
+    1407,    -1,   622,  1407,    -1,  1402,    -1,  1407,    -1,   357,
+      -1,   178,    -1,   558,    -1,   213,    -1,   214,    -1,    36,
+      -1,   566,   953,    -1,   566,    36,    -1,   118,  1402,    -1,
+     547,  1402,    -1,   544,  1402,    -1,   358,    -1,   282,    -1,
+     563,    -1,   125,    -1,   185,    -1,  1412,    -1,  1409,    -1,
+    1422,   637,   624,    -1,  1422,   637,  1422,   637,   624,    -1,
+    1121,    -1,  1422,    -1,  1413,    -1,  1422,    -1,  1413,    -1,
+    1422,   637,  1422,    -1,   637,  1422,   637,  1422,    -1,  1422,
+     637,  1422,   637,  1422,    -1,  1422,    -1,  1422,   637,  1422,
+     637,  1422,    -1,  1422,   637,  1422,    -1,   637,  1422,    -1,
+    1422,    -1,  1422,   637,  1422,    -1,   637,  1422,    -1,  1422,
+    1322,    -1,  1422,   637,  1422,  1322,    -1,  1422,    -1,   222,
+      -1,   224,    -1,   540,    -1,   540,    -1,   540,    -1,  1418,
+      -1,  1426,    -1,  1418,    -1,  1427,    -1,  1422,    -1,  1419,
+      -1,   266,    -1,  1424,    -1,  1424,   636,  1424,    -1,   107,
+    1120,    -1,  1427,    -1,    21,    -1,    29,    -1,    31,    -1,
+      48,    -1,    49,    -1,    59,    -1,    62,    -1,    61,    -1,
+      68,    -1,    74,    -1,    75,    -1,    76,    -1,    77,    -1,
+      78,    -1,    79,    -1,    82,    -1,    84,    -1,    96,    -1,
+     124,    -1,   144,    -1,   155,    -1,   170,    -1,   171,    -1,
+     187,    -1,   208,    -1,   212,    -1,   216,    -1,   239,    -1,
+     256,    -1,   354,    -1,   367,    -1,   370,    -1,   369,    -1,
+     379,    -1,   384,    -1,   389,    -1,   397,    -1,   400,    -1,
+     435,    -1,   438,    -1,   444,    -1,   447,    -1,   454,    -1,
+     461,    -1,   466,    -1,   473,    -1,   483,    -1,   489,    -1,
+     485,    -1,   491,    -1,   510,    -1,   514,    -1,   559,    -1,
+     570,    -1,   571,    -1,   610,    -1,   613,    -1,   579,    -1,
+       5,    -1,     7,    -1,     8,    -1,     9,    -1,    10,    -1,
+      11,    -1,    14,    -1,    18,    -1,    23,    -1,    24,    -1,
+      26,    -1,    25,    -1,    27,    -1,    28,    -1,    35,    -1,
+      39,    -1,    42,    -1,    44,    -1,    43,    -1,    46,    -1,
+      52,    -1,    55,    -1,    56,    -1,    58,    -1,    64,    -1,
+      67,    -1,    66,    -1,    65,    -1,    69,    -1,    70,    -1,
+      72,    -1,    81,    -1,    73,    -1,    83,    -1,    85,    -1,
+      86,    -1,    87,    -1,    88,    -1,    90,    -1,    91,    -1,
+      93,    -1,    95,    -1,    94,    -1,    97,    -1,    99,    -1,
+     102,    -1,   105,    -1,   109,    -1,   114,    -1,   113,    -1,
+     115,    -1,   118,    -1,   123,    -1,   129,    -1,   131,    -1,
+     135,    -1,   137,    -1,   138,    -1,   139,    -1,   140,    -1,
+     147,    -1,   148,    -1,   149,    -1,   156,    -1,   160,    -1,
+     159,    -1,   158,    -1,   163,    -1,   164,    -1,   166,    -1,
+     168,    -1,   167,    -1,   169,    -1,   174,    -1,   175,    -1,
+     176,    -1,   180,    -1,   179,    -1,   191,    -1,   153,    -1,
+     193,    -1,   182,    -1,   183,    -1,   184,    -1,   197,    -1,
+     198,    -1,   200,    -1,   199,    -1,   201,    -1,   204,    -1,
+     202,    -1,   210,    -1,   209,    -1,   217,    -1,   221,    -1,
+     223,    -1,   227,    -1,   231,    -1,   243,    -1,   228,    -1,
+     229,    -1,   233,    -1,   245,    -1,   246,    -1,   248,    -1,
+     249,    -1,   238,    -1,   253,    -1,   258,    -1,   257,    -1,
+     261,    -1,   264,    -1,   265,    -1,   271,    -1,   272,    -1,
+     274,    -1,   276,    -1,   278,    -1,   279,    -1,   307,    -1,
+     301,    -1,   303,    -1,   288,    -1,   292,    -1,   289,    -1,
+     290,    -1,   302,    -1,   291,    -1,   293,    -1,   287,    -1,
+     299,    -1,   295,    -1,   294,    -1,   296,    -1,   297,    -1,
+     298,    -1,   305,    -1,   306,    -1,   308,    -1,   310,    -1,
+     311,    -1,   316,    -1,   317,    -1,   318,    -1,   319,    -1,
+     320,    -1,   321,    -1,   324,    -1,   325,    -1,   329,    -1,
+     327,    -1,   331,    -1,   332,    -1,   333,    -1,   334,    -1,
+     335,    -1,   336,    -1,   337,    -1,   339,    -1,   338,    -1,
+     340,    -1,   343,    -1,   344,    -1,   348,    -1,   347,    -1,
+     355,    -1,   349,    -1,   350,    -1,   360,    -1,   361,    -1,
+     362,    -1,   364,    -1,   365,    -1,   366,    -1,   380,    -1,
+     381,    -1,   386,    -1,   387,    -1,   388,    -1,   390,    -1,
+     391,    -1,   392,    -1,   394,    -1,   393,    -1,   395,    -1,
+     396,    -1,   401,    -1,   402,    -1,   404,    -1,   406,    -1,
+     407,    -1,   408,    -1,   409,    -1,   410,    -1,   412,    -1,
+     413,    -1,   414,    -1,   417,    -1,   421,    -1,   422,    -1,
+     424,    -1,   423,    -1,   425,    -1,   428,    -1,   429,    -1,
+     430,    -1,   431,    -1,   432,    -1,   434,    -1,   437,    -1,
+     439,    -1,   442,    -1,   446,    -1,   449,    -1,   450,    -1,
+     455,    -1,   456,    -1,   457,    -1,   458,    -1,   459,    -1,
+     460,    -1,   462,    -1,   463,    -1,   465,    -1,   471,    -1,
+     470,    -1,   472,    -1,   484,    -1,   477,    -1,   481,    -1,
+     486,    -1,   488,    -1,   490,    -1,   492,    -1,   493,    -1,
+     501,    -1,   500,    -1,   503,    -1,   506,    -1,   509,    -1,
+     511,    -1,   515,    -1,   517,    -1,   518,    -1,   519,    -1,
+     520,    -1,   522,    -1,   521,    -1,   525,    -1,   526,    -1,
+     527,    -1,   528,    -1,   536,    -1,   533,    -1,   530,    -1,
+     535,    -1,   531,    -1,   537,    -1,   538,    -1,   541,    -1,
+     542,    -1,   553,    -1,   554,    -1,   555,    -1,   544,    -1,
+     545,    -1,   546,    -1,   547,    -1,   560,    -1,   561,    -1,
+     562,    -1,   195,    -1,   564,    -1,   565,    -1,   568,    -1,
+     567,    -1,   574,    -1,   577,    -1,   581,    -1,   582,    -1,
+     583,    -1,   593,    -1,   598,    -1,   599,    -1,   590,    -1,
+     601,    -1,   600,    -1,   602,    -1,   609,    -1,   612,    -1,
+     614,    -1,   617,    -1,   597,    -1,    -1,   475,  1430,  1429,
+    1431,    -1,    -1,   370,    -1,  1432,    -1,  1431,   631,  1432,
+      -1,    -1,  1433,  1438,    -1,  1435,    -1,   202,    -1,   274,
+      -1,   472,    -1,    -1,   364,    -1,    -1,   202,    -1,   274,
+      -1,   472,    -1,    -1,   202,   637,    -1,   274,   637,    -1,
+     472,   637,    -1,  1439,    -1,  1435,  1440,    -1,  1434,  1441,
+    1297,  1444,    -1,  1434,   553,   248,   265,  1442,    -1,   636,
+    1424,  1297,  1121,    -1,   636,   636,  1437,  1441,  1297,  1444,
+      -1,   954,   959,    -1,   338,  1297,  1121,    -1,   338,   956,
+     961,    -1,   390,  1297,  1443,    -1,   390,   190,  1425,  1297,
+    1443,    -1,  1422,    -1,  1422,   637,  1422,    -1,   128,   637,
+    1422,    -1,   418,   564,    -1,   418,    83,    -1,   439,   418,
+      -1,   470,    -1,   540,    -1,   390,   629,   540,   630,    -1,
+     362,   629,   540,   630,    -1,  1121,    -1,   128,    -1,   363,
+      -1,    12,    -1,    34,    -1,    -1,   277,  1447,  1446,  1449,
+      -1,   534,    -1,   530,    -1,  1447,    -1,   598,    -1,  1450,
+      -1,  1449,   631,  1450,    -1,  1415,  1219,  1451,    -1,   418,
+      -1,   611,    -1,   611,    88,    -1,   285,   611,    -1,   418,
+     274,    -1,    -1,   575,  1453,  1447,    -1,   208,  1415,   367,
+    1219,    -1,   208,  1417,    68,    -1,    -1,   208,  1417,   418,
+    1455,  1456,  1221,  1238,    -1,  1457,    -1,  1422,  1458,    -1,
+     183,    -1,   348,    -1,   183,    -1,   348,    -1,   402,    -1,
+     257,    -1,    -1,  1460,  1459,   629,  1302,   630,    -1,   161,
+      -1,   196,    -1,   259,    -1,   207,    -1,   286,    -1,   452,
+     686,  1462,    -1,  1466,   363,  1465,  1477,   192,  1478,    -1,
+    1466,   363,   195,  1477,   192,  1478,    -1,  1466,   363,   405,
+    1477,   192,  1478,    -1,    12,  1467,   631,   203,   370,   192,
+    1478,    -1,   410,   363,  1425,   192,  1478,    -1,   203,   686,
+    1464,    -1,  1466,   363,  1465,  1477,   551,  1479,  1486,  1487,
+      -1,  1466,   363,   195,  1477,   551,  1479,  1486,  1487,    -1,
+    1466,   363,   405,  1477,   551,  1479,  1486,  1487,    -1,   410,
+     363,  1425,   551,  1479,  1488,    -1,    -1,   534,    -1,  1468,
+      -1,    12,  1467,    -1,    -1,   404,    -1,  1469,    -1,  1468,
+     631,  1469,    -1,    -1,   467,  1470,  1483,    -1,    -1,   237,
+    1471,  1483,    -1,    -1,   578,  1472,  1483,    -1,    -1,   426,
+    1473,  1483,    -1,   132,    -1,   580,    -1,   230,    -1,    13,
+      -1,   103,    -1,   145,    -1,   171,    -1,   434,    -1,   481,
+      -1,   406,    -1,   182,    -1,   203,   370,    -1,   480,   112,
+      -1,   525,    -1,   103,   537,   530,    -1,   277,   530,    -1,
+     442,   485,    -1,   442,    66,    -1,   103,   598,    -1,   480,
+     598,    -1,   103,   456,    -1,    13,   456,    -1,   103,   581,
+      -1,   168,    -1,   556,    -1,   103,   531,    -1,    -1,    17,
+      -1,  1476,  1474,  1475,    -1,  1476,    -1,   520,   540,    -1,
+     249,   540,    -1,    64,   540,    -1,   624,    -1,  1422,   637,
+     624,    -1,   624,   637,   624,    -1,  1415,    -1,  1425,    -1,
+    1478,   631,  1425,    -1,  1482,    -1,  1479,   631,  1482,    -1,
+     597,    -1,   606,    -1,   585,    -1,    19,    -1,  1425,   223,
+      47,   540,    -1,  1425,   223,    47,   390,   540,    -1,  1425,
+     223,  1480,  1424,    -1,  1425,   223,  1480,  1424,  1481,  1419,
+      -1,  1425,    -1,    -1,   629,  1484,   630,    -1,  1484,   631,
+    1485,    -1,  1485,    -1,  1422,    -1,    -1,   443,  1475,    -1,
+     443,   507,    -1,   443,   612,    -1,   443,   350,    -1,    -1,
+     606,  1489,    -1,    -1,   606,   203,   370,    -1,  1489,  1490,
+      -1,  1490,    -1,   203,   370,    -1,   306,  1245,    -1,   310,
+    1245,    -1,   305,  1245,    -1,   311,  1244,    -1,    -1,    31,
+    1492,  1493,    -1,    -1,   609,    -1,    -1,    17,   354,    56,
+      -1,    17,    56,    -1,    -1,   433,    -1,   354,   433,    -1,
+      -1,   461,    -1,    84,  1493,  1494,  1495,    -1,   454,  1493,
+    1494,  1495,    -1,   454,  1493,   551,  1496,  1422,    -1,   461,
+    1422,    -1,   433,   461,  1422,    -1,    -1,  1502,    -1,    -1,
+     572,  1509,  1503,  1100,    -1,    -1,  1502,    -1,  1506,    -1,
+      -1,  1506,    -1,    -1,  1507,  1508,    -1,  1233,  1237,    -1,
+    1239,    -1,    -1,   141,    -1,    12,    -1,   467,  1189,    -1,
+     629,  1102,   630,    -1,  1510,  1505,    -1,    -1,  1511,   572,
+    1509,  1512,  1510,  1505,    -1,  1514,  1511,  1515,    -1,    -1,
+      -1,    -1,  1517,    -1,  1517,  1518,    -1,  1518,    -1,   516,
+      -1,   215,    -1,   141,    -1,   504,    -1,   499,    -1,   500,
+      -1,   502,    -1,    12,    -1,  1524,  1520,    -1,  1523,  1521,
+      -1,  1525,  1522,  1529,    -1,  1529,    -1,  1537,    -1,  1548,
+      -1,  1542,    -1,   673,    -1,  1529,    -1,  1537,    -1,  1548,
+      -1,  1542,    -1,  1541,    -1,   673,    -1,  1523,    -1,  1524,
+      -1,    -1,   129,   161,  1425,    -1,  1526,    -1,  1526,  1527,
+      -1,  1527,    -1,   375,   441,    -1,    11,   161,   565,    -1,
+      11,   161,   318,    -1,    11,   161,   538,    -1,    -1,   505,
+     466,   129,    -1,   505,   466,   243,    -1,    -1,  1528,   598,
+    1415,  1530,  1531,    19,  1533,    -1,    -1,   629,  1532,   630,
+      -1,  1422,    -1,  1532,   631,  1422,    -1,    -1,  1534,  1535,
+    1536,    -1,   467,  1103,    -1,   629,  1101,   630,  1504,    -1,
+      -1,   606,    63,   370,    -1,   606,    52,    63,   370,    -1,
+     606,   274,    63,   370,    -1,    -1,    -1,    -1,   556,  1116,
+     687,   781,   782,   363,  1116,  1538,  1415,   190,  1116,  1539,
+     150,   459,  1540,   731,    -1,    10,  1116,   195,  1422,   450,
+     905,   491,  1419,    -1,  1116,   195,  1422,   450,   905,   491,
+    1419,    -1,    -1,    -1,    -1,    -1,    -1,  1116,   195,   687,
+     629,  1543,   698,   630,  1544,   450,  1545,   951,  1546,   689,
+    1547,   731,    -1,    -1,    -1,    -1,    -1,   405,  1116,   687,
+    1549,   629,  1550,   702,   630,  1551,   689,  1552,   731,    -1,
+     613,  1555,  1554,  1556,    -1,   613,   155,  1554,  1558,    -1,
+     613,   400,  1554,    -1,   613,    84,  1554,  1557,    -1,   613,
+     454,  1554,    -1,   613,   422,    -1,  1403,    -1,  1403,   631,
+    1403,    -1,  1403,   631,  1403,   631,  1245,    -1,    31,    -1,
+     510,    -1,    -1,   251,    -1,   449,    -1,    -1,   365,   392,
+      -1,    -1,    -1,   526,  1559,  1560,    -1,    -1,   190,   321,
+      -1,   239,   394,  1422,   491,  1419,    -1,   239,   491,  1419,
+      -1,   571,   394,  1422,    -1,   571,   491,  1419,    -1,   619,
+      -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,  1709,  1709,  1721,  1720,  1745,  1752,  1754,  1758,  1759,
-    1764,  1765,  1766,  1767,  1768,  1769,  1770,  1771,  1772,  1773,
-    1774,  1775,  1776,  1777,  1778,  1779,  1780,  1781,  1782,  1783,
-    1784,  1785,  1786,  1787,  1788,  1789,  1790,  1791,  1792,  1793,
-    1794,  1795,  1796,  1797,  1798,  1799,  1800,  1801,  1802,  1803,
-    1804,  1805,  1806,  1807,  1808,  1809,  1810,  1811,  1812,  1813,
-    1814,  1815,  1816,  1820,  1829,  1830,  1834,  1843,  1849,  1859,
-    1858,  1868,  1870,  1874,  1875,  1879,  1892,  1891,  1911,  1910,
-    1919,  1920,  1924,  1928,  1932,  1936,  1940,  1944,  1949,  1953,
-    1957,  1961,  1965,  1969,  1975,  2006,  2011,  2014,  2016,  2017,
-    2021,  2027,  2031,  2047,  2051,  2063,  2062,  2103,  2102,  2114,
-    2112,  2125,  2123,  2135,  2134,  2147,  2146,  2154,  2158,  2162,
-    2166,  2173,  2186,  2187,  2191,  2195,  2199,  2203,  2207,  2211,
-    2215,  2223,  2222,  2253,  2252,  2259,  2266,  2267,  2273,  2279,
-    2289,  2295,  2301,  2303,  2310,  2311,  2315,  2321,  2330,  2331,
-    2339,  2339,  2395,  2396,  2397,  2398,  2399,  2400,  2401,  2402,
-    2403,  2404,  2405,  2406,  2407,  2412,  2426,  2442,  2460,  2461,
-    2465,  2466,  2471,  2473,  2475,  2477,  2479,  2481,  2483,  2489,
-    2490,  2491,  2495,  2499,  2507,  2506,  2519,  2521,  2524,  2526,
-    2530,  2534,  2541,  2543,  2547,  2548,  2553,  2573,  2599,  2601,
-    2605,  2606,  2610,  2636,  2637,  2638,  2639,  2643,  2644,  2648,
-    2649,  2654,  2657,  2684,  2683,  2747,  2763,  2762,  2816,  2842,
-    2842,  2865,  2866,  2871,  2873,  2878,  2901,  2914,  2918,  2935,
-    2936,  2940,  2944,  2953,  2960,  2967,  2977,  2991,  3014,  3020,
-    3021,  3027,  3030,  3034,  3042,  3062,  3064,  3082,  3088,  3090,
-    3092,  3094,  3096,  3098,  3100,  3102,  3104,  3106,  3108,  3110,
-    3115,  3129,  3144,  3162,  3163,  3167,  3168,  3169,  3170,  3171,
-    3172,  3173,  3174,  3175,  3176,  3177,  3178,  3179,  3184,  3183,
-    3190,  3190,  3245,  3244,  3273,  3273,  3287,  3340,  3383,  3404,
-    3403,  3425,  3444,  3446,  3447,  3451,  3471,  3494,  3496,  3512,
-    3494,  3531,  3533,  3534,  3538,  3539,  3544,  3550,  3543,  3571,
-    3570,  3586,  3587,  3591,  3592,  3597,  3601,  3596,  3622,  3626,
-    3621,  3645,  3655,  3660,  3659,  3695,  3696,  3701,  3700,  3733,
-    3733,  3748,  3747,  3783,  3795,  3797,  3794,  3824,  3823,  3844,
-    3846,  3851,  3853,  3855,  3872,  3877,  3883,  3890,  3891,  3899,
-    3905,  3914,  3920,  3926,  3927,  3931,  3931,  3936,  3937,  3938,
-    3942,  3943,  3944,  3948,  3952,  3953,  3954,  3958,  3959,  3960,
-    3961,  3962,  3963,  3964,  3965,  3969,  3973,  3974,  3975,  3979,
-    3980,  3981,  3982,  3983,  3987,  3991,  3992,  3993,  3997,  3998,
-    3999,  4000,  4001,  4002,  4003,  4007,  4011,  4012,  4013,  4017,
-    4018,  4019,  4024,  4032,  4040,  4048,  4060,  4072,  4077,  4082,
-    4090,  4098,  4106,  4114,  4122,  4130,  4138,  4151,  4164,  4177,
-    4179,  4183,  4188,  4201,  4202,  4253,  4254,  4257,  4271,  4289,
-    4288,  4297,  4295,  4302,  4304,  4303,  4307,  4306,  4312,  4349,
-    4350,  4355,  4354,  4373,  4392,  4391,  4408,  4412,  4420,  4419,
-    4422,  4424,  4426,  4428,  4433,  4434,  4440,  4441,  4458,  4459,
-    4463,  4464,  4468,  4487,  4497,  4508,  4517,  4518,  4534,  4536,
-    4535,  4540,  4538,  4549,  4550,  4554,  4572,  4588,  4589,  4605,
-    4620,  4642,  4643,  4648,  4647,  4671,  4681,  4703,  4702,  4720,
-    4719,  4739,  4761,  4765,  4794,  4806,  4807,  4812,  4823,  4811,
-    4848,  4849,  4853,  4866,  4887,  4900,  4926,  4927,  4932,  4931,
-    4968,  4973,  4974,  4978,  4979,  4983,  4985,  4991,  4997,  4999,
-    5001,  5003,  5005,  5007,  5017,  5032,  5016,  5046,  5047,  5051,
-    5052,  5056,  5057,  5061,  5062,  5066,  5067,  5071,  5072,  5076,
-    5080,  5081,  5084,  5086,  5090,  5091,  5095,  5096,  5097,  5101,
-    5106,  5111,  5116,  5121,  5126,  5131,  5136,  5151,  5157,  5162,
-    5167,  5172,  5177,  5183,  5182,  5208,  5209,  5210,  5215,  5220,
-    5225,  5227,  5229,  5231,  5237,  5242,  5247,  5253,  5259,  5265,
-    5274,  5292,  5309,  5332,  5346,  5347,  5348,  5349,  5350,  5351,
-    5352,  5356,  5357,  5358,  5362,  5363,  5367,  5368,  5369,  5370,
-    5375,  5382,  5383,  5387,  5388,  5392,  5393,  5401,  5400,  5409,
-    5407,  5417,  5415,  5425,  5423,  5431,  5450,  5456,  5458,  5462,
-    5466,  5467,  5471,  5476,  5475,  5501,  5504,  5503,  5513,  5515,
-    5520,  5523,  5527,  5534,  5535,  5539,  5540,  5544,  5550,  5556,
-    5560,  5576,  5592,  5593,  5594,  5595,  5600,  5604,  5609,  5614,
-    5618,  5623,  5628,  5634,  5639,  5645,  5649,  5654,  5659,  5677,
-    5679,  5681,  5694,  5696,  5701,  5706,  5718,  5723,  5728,  5733,
-    5735,  5737,  5739,  5741,  5743,  5745,  5747,  5750,  5749,  5754,
-    5753,  5757,  5759,  5768,  5769,  5770,  5776,  5777,  5778,  5779,
-    5780,  5784,  5788,  5789,  5793,  5794,  5798,  5799,  5800,  5801,
-    5802,  5806,  5807,  5808,  5809,  5810,  5814,  5819,  5821,  5827,
-    5828,  5830,  5835,  5844,  5845,  5849,  5850,  5854,  5855,  5856,
-    5860,  5861,  5862,  5863,  5866,  5867,  5871,  5872,  5876,  5877,
-    5881,  5882,  5886,  5887,  5888,  5889,  5896,  5897,  5903,  5909,
-    5915,  5921,  5922,  5935,  5941,  5947,  5953,  5962,  5983,  5989,
-    5994,  5995,  5999,  6000,  6004,  6012,  6016,  6017,  6021,  6022,
-    6026,  6035,  6039,  6040,  6044,  6055,  6056,  6060,  6061,  6065,
-    6066,  6071,  6072,  6076,  6083,  6092,  6100,  6111,  6112,  6113,
-    6114,  6115,  6116,  6121,  6129,  6130,  6134,  6136,  6140,  6152,
-    6153,  6157,  6164,  6177,  6178,  6180,  6182,  6188,  6193,  6199,
-    6205,  6212,  6222,  6223,  6224,  6225,  6226,  6230,  6234,  6235,
-    6239,  6240,  6244,  6245,  6249,  6250,  6251,  6255,  6256,  6260,
-    6264,  6277,  6289,  6290,  6294,  6295,  6299,  6300,  6304,  6305,
-    6309,  6310,  6314,  6315,  6319,  6320,  6324,  6325,  6329,  6331,
-    6332,  6338,  6344,  6350,  6358,  6359,  6363,  6367,  6368,  6381,
-    6382,  6383,  6387,  6388,  6392,  6398,  6412,  6413,  6417,  6418,
-    6422,  6423,  6431,  6430,  6467,  6466,  6480,  6492,  6491,  6510,
-    6509,  6528,  6527,  6546,  6540,  6560,  6559,  6592,  6597,  6602,
-    6607,  6612,  6622,  6623,  6624,  6625,  6629,  6630,  6642,  6643,
-    6647,  6648,  6651,  6653,  6654,  6655,  6657,  6659,  6660,  6669,
-    6670,  6674,  6683,  6681,  6694,  6707,  6706,  6719,  6717,  6730,
-    6737,  6747,  6751,  6758,  6762,  6767,  6766,  6782,  6784,  6789,
-    6797,  6796,  6812,  6816,  6815,  6827,  6828,  6832,  6847,  6848,
-    6852,  6861,  6865,  6870,  6875,  6874,  6886,  6897,  6885,  6913,
-    6922,  6926,  6935,  6944,  6950,  6956,  6965,  6974,  6993,  7013,
-    7023,  7027,  7035,  7036,  7040,  7041,  7045,  7045,  7048,  7050,
-    7054,  7055,  7059,  7060,  7064,  7065,  7066,  7070,  7071,  7072,
-    7076,  7077,  7078,  7079,  7088,  7087,  7096,  7104,  7103,  7111,
-    7120,  7129,  7130,  7137,  7137,  7143,  7144,  7148,  7149,  7150,
-    7154,  7155,  7171,  7172,  7177,  7176,  7188,  7189,  7190,  7195,
-    7194,  7215,  7216,  7220,  7221,  7225,  7226,  7227,  7232,  7231,
-    7252,  7261,  7260,  7286,  7287,  7291,  7292,  7296,  7297,  7298,
-    7299,  7300,  7301,  7306,  7305,  7326,  7327,  7328,  7333,  7332,
-    7338,  7345,  7350,  7358,  7359,  7363,  7377,  7376,  7389,  7390,
-    7394,  7395,  7399,  7409,  7419,  7420,  7425,  7424,  7435,  7436,
-    7440,  7441,  7445,  7455,  7466,  7465,  7473,  7473,  7482,  7483,
-    7488,  7489,  7498,  7507,  7508,  7512,  7517,  7522,  7527,  7532,
-    7531,  7551,  7559,  7551,  7566,  7567,  7568,  7569,  7570,  7574,
-    7581,  7588,  7590,  7601,  7602,  7606,  7607,  7635,  7665,  7667,
-    7673,  7683,  7684,  7685,  7699,  7704,  7729,  7735,  7741,  7742,
-    7743,  7744,  7745,  7749,  7750,  7751,  7755,  7756,  7761,  7812,
-    7819,  7862,  7868,  7874,  7880,  7886,  7892,  7898,  7904,  7908,
-    7914,  7920,  7926,  7932,  7938,  7942,  7948,  7957,  7963,  7971,
-    7977,  7987,  7993,  8002,  8012,  8018,  8028,  8034,  8043,  8047,
-    8053,  8059,  8065,  8071,  8077,  8083,  8089,  8095,  8101,  8107,
-    8113,  8119,  8125,  8131,  8135,  8136,  8140,  8141,  8145,  8146,
-    8150,  8151,  8155,  8156,  8157,  8158,  8159,  8160,  8164,  8165,
-    8170,  8176,  8180,  8187,  8194,  8201,  8208,  8215,  8220,  8226,
-    8233,  8240,  8248,  8259,  8281,  8288,  8296,  8297,  8298,  8299,
-    8300,  8301,  8312,  8313,  8314,  8315,  8316,  8322,  8326,  8332,
-    8338,  8344,  8350,  8352,  8359,  8366,  8372,  8374,  8383,  8390,
-    8398,  8404,  8411,  8417,  8431,  8438,  8454,  8460,  8466,  8474,
-    8480,  8486,  8492,  8498,  8512,  8523,  8529,  8535,  8541,  8547,
-    8553,  8559,  8565,  8571,  8577,  8583,  8589,  8595,  8601,  8607,
-    8613,  8619,  8627,  8648,  8655,  8661,  8668,  8675,  8682,  8689,
-    8695,  8701,  8708,  8714,  8721,  8727,  8733,  8739,  8745,  8751,
-    8769,  8775,  8781,  8788,  8795,  8803,  8810,  8817,  8824,  8831,
-    8838,  8855,  8861,  8867,  8873,  8879,  8886,  8892,  8898,  8904,
-    8910,  8916,  8927,  8933,  8939,  8945,  8951,  8962,  8968,  8984,
-    8990,  8997,  9004,  9011,  9018,  9025,  9029,  9049,  9048,  9120,
-    9161,  9163,  9168,  9169,  9173,  9174,  9178,  9179,  9183,  9190,
-    9198,  9224,  9230,  9236,  9242,  9248,  9254,  9263,  9270,  9272,
-    9269,  9279,  9290,  9296,  9302,  9308,  9314,  9320,  9326,  9332,
-    9338,  9345,  9344,  9364,  9363,  9378,  9388,  9396,  9412,  9413,
-    9418,  9423,  9426,  9429,  9428,  9445,  9447,  9453,  9452,  9469,
-    9471,  9473,  9475,  9477,  9479,  9481,  9483,  9485,  9487,  9493,
-    9499,  9502,  9501,  9507,  9508,  9512,  9519,  9527,  9528,  9532,
-    9539,  9547,  9548,  9552,  9553,  9557,  9565,  9576,  9577,  9589,
-    9600,  9601,  9607,  9608,  9628,  9630,  9634,  9632,  9649,  9647,
-    9665,  9663,  9670,  9679,  9677,  9695,  9694,  9704,  9715,  9713,
-    9732,  9731,  9742,  9753,  9754,  9755,  9767,  9767,  9781,  9821,
-    9897,  9908,  9913,  9905,  9932,  9952,  9960,  9952,  9969,  9968,
-    9991, 10008,  9991, 10015, 10019, 10045, 10046, 10051, 10054, 10055,
-   10056, 10060, 10061, 10066, 10065, 10071, 10070, 10078, 10079, 10082,
-   10084, 10084, 10088, 10088, 10093, 10094, 10098, 10100, 10105, 10106,
-   10110, 10121, 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10141,
-   10142, 10143, 10144, 10145, 10149, 10150, 10151, 10152, 10153, 10154,
-   10155, 10156, 10157, 10161, 10162, 10163, 10164, 10167, 10169, 10170,
-   10174, 10175, 10183, 10185, 10189, 10191, 10190, 10204, 10207, 10206,
-   10221, 10227, 10241, 10243, 10247, 10249, 10254, 10255, 10275, 10300,
-   10304, 10305, 10309, 10321, 10323, 10328, 10327, 10362, 10364, 10369,
-   10370, 10371, 10376, 10383, 10387, 10388, 10392, 10396, 10400, 10407,
-   10414, 10421, 10431, 10464, 10468, 10474, 10480, 10489, 10497, 10501,
-   10508, 10509, 10513, 10514, 10515, 10519, 10520, 10521, 10522, 10523,
-   10524, 10528, 10529, 10530, 10531, 10532, 10536, 10537, 10538, 10539,
-   10540, 10544, 10545, 10546, 10547, 10548, 10552, 10557, 10558, 10562,
-   10563, 10566, 10569, 10568, 10599, 10600, 10604, 10605, 10609, 10619,
-   10619, 10629, 10630, 10634, 10653, 10686, 10685, 10698, 10706, 10697,
-   10708, 10720, 10732, 10731, 10749, 10748, 10759, 10759, 10775, 10782,
-   10804, 10824, 10836, 10841, 10840, 10850, 10856, 10863, 10868, 10873,
-   10883, 10884, 10888, 10899, 10900, 10904, 10915, 10916, 10920, 10921,
-   10929, 10937, 10928, 10947, 10954, 10946, 10964, 10972, 10973, 10981,
-   10985, 10986, 10997, 10998, 11002, 11011, 11012, 11013, 11015, 11014,
-   11025, 11026, 11030, 11031, 11033, 11032, 11036, 11035, 11041, 11042,
-   11046, 11047, 11051, 11061, 11062, 11066, 11067, 11072, 11071, 11085,
-   11086, 11090, 11095, 11103, 11104, 11112, 11114, 11114, 11122, 11130,
-   11121, 11152, 11153, 11157, 11165, 11166, 11170, 11180, 11181, 11188,
-   11187, 11203, 11202, 11214, 11213, 11225, 11224, 11238, 11239, 11243,
-   11256, 11272, 11273, 11277, 11278, 11282, 11283, 11284, 11289, 11288,
-   11309, 11311, 11314, 11316, 11319, 11320, 11323, 11327, 11331, 11335,
-   11339, 11343, 11347, 11351, 11355, 11363, 11366, 11376, 11375, 11390,
-   11397, 11405, 11413, 11421, 11429, 11437, 11444, 11446, 11448, 11457,
-   11461, 11466, 11465, 11471, 11470, 11475, 11484, 11491, 11500, 11509,
-   11514, 11516, 11518, 11520, 11522, 11524, 11531, 11539, 11541, 11549,
-   11556, 11563, 11573, 11580, 11586, 11595, 11603, 11607, 11611, 11618,
-   11625, 11632, 11639, 11646, 11653, 11659, 11666, 11673, 11678, 11683,
-   11691, 11693, 11695, 11700, 11701, 11704, 11706, 11710, 11711, 11715,
-   11716, 11720, 11721, 11725, 11726, 11730, 11731, 11734, 11736, 11743,
-   11754, 11753, 11769, 11768, 11778, 11779, 11783, 11784, 11785, 11789,
-   11790, 11791, 11806, 11805, 11818, 11827, 11817, 11829, 11833, 11834,
-   11848, 11849, 11854, 11856, 11858, 11860, 11862, 11864, 11866, 11868,
-   11870, 11872, 11874, 11876, 11881, 11883, 11885, 11887, 11889, 11891,
-   11893, 11898, 11899, 11903, 11904, 11908, 11907, 11917, 11918, 11922,
-   11922, 11924, 11925, 11929, 11930, 11935, 11934, 11945, 11949, 11953,
-   11966, 11965, 11979, 11980, 11981, 11984, 11985, 11986, 11990, 11995,
-   12005, 12017, 12028, 12038, 12048, 12016, 12056, 12057, 12061, 12062,
-   12066, 12067, 12075, 12079, 12080, 12081, 12084, 12086, 12090, 12091,
-   12095, 12100, 12107, 12112, 12119, 12121, 12125, 12126, 12130, 12135,
-   12143, 12144, 12147, 12149, 12157, 12159, 12163, 12164, 12165, 12169,
-   12171, 12176, 12177, 12186, 12187, 12191, 12192, 12196, 12209, 12232,
-   12244, 12255, 12274, 12282, 12294, 12302, 12317, 12337, 12338, 12339,
-   12347, 12348, 12349, 12356, 12362, 12368, 12374, 12380, 12386, 12415,
-   12443, 12444, 12445, 12449, 12459, 12469, 12475, 12484, 12499, 12500,
-   12504, 12513, 12528, 12532, 12578, 12582, 12599, 12603, 12681, 12705,
-   12735, 12736, 12752, 12762, 12766, 12772, 12778, 12788, 12794, 12803,
-   12813, 12814, 12842, 12856, 12870, 12885, 12886, 12896, 12897, 12907,
-   12908, 12909, 12913, 12929, 12950, 12965, 12966, 12967, 12968, 12969,
-   12970, 12971, 12972, 12973, 12974, 12975, 12976, 12977, 12978, 12979,
-   12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989,
+       0,  1710,  1710,  1722,  1721,  1746,  1753,  1755,  1759,  1760,
+    1765,  1766,  1767,  1768,  1769,  1770,  1771,  1772,  1773,  1774,
+    1775,  1776,  1777,  1778,  1779,  1780,  1781,  1782,  1783,  1784,
+    1785,  1786,  1787,  1788,  1789,  1790,  1791,  1792,  1793,  1794,
+    1795,  1796,  1797,  1798,  1799,  1800,  1801,  1802,  1803,  1804,
+    1805,  1806,  1807,  1808,  1809,  1810,  1811,  1812,  1813,  1814,
+    1815,  1816,  1817,  1821,  1830,  1831,  1835,  1844,  1850,  1860,
+    1859,  1869,  1871,  1875,  1876,  1880,  1893,  1892,  1912,  1911,
+    1920,  1921,  1925,  1929,  1933,  1937,  1941,  1945,  1950,  1954,
+    1958,  1962,  1966,  1970,  1976,  2007,  2012,  2015,  2017,  2018,
+    2022,  2028,  2032,  2048,  2052,  2064,  2063,  2104,  2103,  2115,
+    2113,  2126,  2124,  2136,  2135,  2148,  2147,  2155,  2159,  2163,
+    2167,  2174,  2187,  2188,  2192,  2196,  2200,  2204,  2208,  2212,
+    2216,  2224,  2223,  2254,  2253,  2260,  2267,  2268,  2274,  2280,
+    2290,  2296,  2302,  2304,  2311,  2312,  2316,  2322,  2331,  2332,
+    2340,  2340,  2396,  2397,  2398,  2399,  2400,  2401,  2402,  2403,
+    2404,  2405,  2406,  2407,  2408,  2413,  2427,  2443,  2461,  2462,
+    2466,  2467,  2472,  2474,  2476,  2478,  2480,  2482,  2484,  2490,
+    2491,  2492,  2496,  2500,  2508,  2507,  2520,  2522,  2525,  2527,
+    2531,  2535,  2542,  2544,  2548,  2549,  2554,  2574,  2600,  2602,
+    2606,  2607,  2611,  2637,  2638,  2639,  2640,  2644,  2645,  2649,
+    2650,  2655,  2658,  2685,  2684,  2748,  2764,  2763,  2817,  2843,
+    2843,  2866,  2867,  2872,  2874,  2879,  2902,  2915,  2919,  2936,
+    2937,  2941,  2945,  2954,  2961,  2968,  2978,  2992,  3015,  3021,
+    3022,  3028,  3031,  3035,  3043,  3063,  3065,  3083,  3089,  3091,
+    3093,  3095,  3097,  3099,  3101,  3103,  3105,  3107,  3109,  3111,
+    3116,  3130,  3145,  3163,  3164,  3168,  3169,  3170,  3171,  3172,
+    3173,  3174,  3175,  3176,  3177,  3178,  3179,  3180,  3185,  3184,
+    3191,  3191,  3246,  3245,  3274,  3274,  3288,  3341,  3384,  3405,
+    3404,  3426,  3445,  3447,  3448,  3452,  3472,  3495,  3497,  3513,
+    3495,  3532,  3534,  3535,  3539,  3540,  3545,  3551,  3544,  3572,
+    3571,  3587,  3588,  3592,  3593,  3598,  3602,  3597,  3623,  3627,
+    3622,  3646,  3656,  3661,  3660,  3696,  3697,  3702,  3701,  3734,
+    3734,  3749,  3748,  3784,  3796,  3798,  3795,  3825,  3824,  3845,
+    3847,  3852,  3854,  3856,  3873,  3878,  3884,  3891,  3892,  3900,
+    3906,  3915,  3921,  3927,  3928,  3932,  3932,  3937,  3938,  3939,
+    3943,  3944,  3945,  3949,  3953,  3954,  3955,  3959,  3960,  3961,
+    3962,  3963,  3964,  3965,  3966,  3970,  3974,  3975,  3976,  3980,
+    3981,  3982,  3983,  3984,  3988,  3992,  3993,  3994,  3998,  3999,
+    4000,  4001,  4002,  4003,  4004,  4008,  4012,  4013,  4014,  4018,
+    4019,  4020,  4025,  4033,  4041,  4049,  4061,  4073,  4078,  4083,
+    4091,  4099,  4107,  4115,  4123,  4131,  4139,  4152,  4165,  4178,
+    4180,  4184,  4189,  4202,  4203,  4254,  4255,  4258,  4272,  4290,
+    4289,  4298,  4296,  4303,  4305,  4304,  4308,  4307,  4313,  4350,
+    4351,  4356,  4355,  4374,  4393,  4392,  4409,  4413,  4421,  4420,
+    4423,  4425,  4427,  4429,  4434,  4435,  4441,  4442,  4459,  4460,
+    4464,  4465,  4469,  4488,  4498,  4509,  4518,  4519,  4535,  4537,
+    4536,  4541,  4539,  4550,  4551,  4555,  4573,  4589,  4590,  4606,
+    4621,  4643,  4644,  4649,  4648,  4672,  4682,  4704,  4703,  4721,
+    4720,  4740,  4762,  4766,  4795,  4807,  4808,  4813,  4824,  4812,
+    4849,  4850,  4854,  4867,  4888,  4901,  4927,  4928,  4933,  4932,
+    4969,  4974,  4975,  4979,  4980,  4984,  4986,  4992,  4998,  5000,
+    5002,  5004,  5006,  5008,  5018,  5033,  5017,  5047,  5048,  5052,
+    5053,  5057,  5058,  5062,  5063,  5067,  5068,  5072,  5073,  5077,
+    5081,  5082,  5085,  5087,  5091,  5092,  5096,  5097,  5098,  5102,
+    5107,  5112,  5117,  5122,  5127,  5132,  5137,  5152,  5158,  5163,
+    5168,  5173,  5178,  5184,  5183,  5209,  5210,  5211,  5216,  5221,
+    5226,  5228,  5230,  5232,  5238,  5243,  5248,  5254,  5260,  5266,
+    5275,  5293,  5310,  5333,  5347,  5348,  5349,  5350,  5351,  5352,
+    5353,  5357,  5358,  5359,  5363,  5364,  5368,  5369,  5370,  5371,
+    5376,  5383,  5384,  5388,  5389,  5393,  5394,  5402,  5401,  5410,
+    5408,  5418,  5416,  5426,  5424,  5432,  5451,  5457,  5459,  5463,
+    5467,  5468,  5472,  5477,  5476,  5502,  5505,  5504,  5514,  5516,
+    5521,  5524,  5528,  5535,  5536,  5540,  5541,  5545,  5551,  5557,
+    5561,  5577,  5593,  5594,  5595,  5596,  5601,  5605,  5610,  5615,
+    5619,  5624,  5629,  5635,  5640,  5646,  5650,  5655,  5660,  5678,
+    5680,  5682,  5695,  5697,  5702,  5707,  5719,  5724,  5729,  5734,
+    5736,  5738,  5740,  5742,  5744,  5746,  5748,  5751,  5750,  5755,
+    5754,  5758,  5760,  5769,  5770,  5771,  5777,  5778,  5779,  5780,
+    5781,  5785,  5789,  5790,  5794,  5795,  5799,  5800,  5801,  5802,
+    5803,  5807,  5808,  5809,  5810,  5811,  5815,  5820,  5822,  5828,
+    5829,  5831,  5836,  5845,  5846,  5850,  5851,  5855,  5856,  5857,
+    5861,  5862,  5863,  5864,  5867,  5868,  5872,  5873,  5877,  5878,
+    5882,  5883,  5887,  5888,  5889,  5890,  5897,  5898,  5904,  5910,
+    5916,  5922,  5923,  5936,  5942,  5948,  5954,  5963,  5984,  5990,
+    5995,  5996,  6000,  6001,  6005,  6013,  6017,  6018,  6022,  6023,
+    6027,  6036,  6040,  6041,  6045,  6056,  6057,  6061,  6062,  6066,
+    6067,  6072,  6073,  6077,  6084,  6093,  6101,  6112,  6113,  6114,
+    6115,  6116,  6117,  6122,  6130,  6131,  6135,  6137,  6141,  6153,
+    6154,  6158,  6165,  6178,  6179,  6181,  6183,  6189,  6194,  6200,
+    6206,  6213,  6223,  6224,  6225,  6226,  6227,  6231,  6235,  6236,
+    6240,  6241,  6245,  6246,  6250,  6251,  6252,  6256,  6257,  6261,
+    6265,  6278,  6290,  6291,  6295,  6296,  6300,  6301,  6305,  6306,
+    6310,  6311,  6315,  6316,  6320,  6321,  6325,  6326,  6330,  6332,
+    6333,  6339,  6345,  6351,  6359,  6360,  6364,  6368,  6369,  6382,
+    6383,  6384,  6388,  6389,  6393,  6399,  6413,  6414,  6418,  6419,
+    6423,  6424,  6432,  6431,  6468,  6467,  6481,  6493,  6492,  6511,
+    6510,  6529,  6528,  6547,  6541,  6561,  6560,  6593,  6598,  6603,
+    6608,  6613,  6623,  6624,  6625,  6626,  6630,  6631,  6643,  6644,
+    6648,  6649,  6652,  6654,  6655,  6656,  6658,  6660,  6661,  6670,
+    6671,  6675,  6684,  6682,  6695,  6708,  6707,  6720,  6718,  6731,
+    6738,  6748,  6752,  6759,  6763,  6768,  6767,  6783,  6785,  6790,
+    6798,  6797,  6813,  6817,  6816,  6828,  6829,  6833,  6848,  6849,
+    6853,  6862,  6866,  6871,  6876,  6875,  6887,  6898,  6886,  6914,
+    6923,  6927,  6936,  6945,  6951,  6957,  6966,  6975,  6994,  7014,
+    7024,  7028,  7036,  7037,  7041,  7042,  7046,  7046,  7049,  7051,
+    7055,  7056,  7060,  7061,  7065,  7066,  7067,  7071,  7072,  7073,
+    7077,  7078,  7079,  7080,  7089,  7088,  7097,  7105,  7104,  7112,
+    7121,  7130,  7131,  7138,  7138,  7144,  7145,  7149,  7150,  7151,
+    7155,  7156,  7172,  7173,  7178,  7177,  7189,  7190,  7191,  7196,
+    7195,  7225,  7226,  7230,  7231,  7235,  7236,  7237,  7238,  7243,
+    7242,  7263,  7272,  7271,  7304,  7305,  7309,  7310,  7314,  7315,
+    7316,  7317,  7318,  7319,  7324,  7323,  7344,  7345,  7346,  7351,
+    7350,  7356,  7363,  7368,  7376,  7377,  7381,  7395,  7394,  7408,
+    7409,  7413,  7414,  7418,  7428,  7438,  7439,  7444,  7443,  7455,
+    7456,  7460,  7461,  7465,  7475,  7486,  7485,  7493,  7493,  7502,
+    7503,  7508,  7509,  7518,  7527,  7528,  7532,  7537,  7542,  7547,
+    7552,  7551,  7571,  7579,  7571,  7586,  7587,  7588,  7589,  7590,
+    7594,  7601,  7608,  7610,  7621,  7622,  7626,  7627,  7655,  7685,
+    7687,  7693,  7703,  7704,  7705,  7719,  7724,  7749,  7755,  7761,
+    7762,  7763,  7764,  7765,  7769,  7770,  7771,  7775,  7776,  7781,
+    7832,  7839,  7882,  7888,  7894,  7900,  7906,  7912,  7918,  7924,
+    7928,  7934,  7940,  7946,  7952,  7958,  7962,  7968,  7977,  7983,
+    7991,  7997,  8007,  8013,  8022,  8032,  8038,  8048,  8054,  8063,
+    8067,  8073,  8079,  8085,  8091,  8097,  8103,  8109,  8115,  8121,
+    8127,  8133,  8139,  8145,  8151,  8155,  8156,  8160,  8161,  8165,
+    8166,  8170,  8171,  8175,  8176,  8177,  8178,  8179,  8180,  8184,
+    8185,  8190,  8196,  8200,  8207,  8214,  8221,  8228,  8235,  8240,
+    8246,  8253,  8260,  8268,  8279,  8301,  8308,  8316,  8317,  8318,
+    8319,  8320,  8321,  8332,  8333,  8334,  8335,  8336,  8342,  8346,
+    8352,  8358,  8364,  8370,  8372,  8379,  8386,  8392,  8394,  8403,
+    8410,  8418,  8424,  8431,  8437,  8451,  8458,  8474,  8480,  8486,
+    8494,  8500,  8506,  8512,  8518,  8532,  8543,  8549,  8555,  8561,
+    8567,  8573,  8579,  8585,  8591,  8597,  8603,  8609,  8615,  8621,
+    8627,  8633,  8639,  8647,  8668,  8675,  8681,  8688,  8695,  8702,
+    8709,  8715,  8721,  8728,  8734,  8741,  8747,  8753,  8759,  8765,
+    8771,  8789,  8795,  8801,  8808,  8815,  8823,  8830,  8837,  8844,
+    8851,  8858,  8875,  8881,  8887,  8893,  8899,  8906,  8912,  8918,
+    8924,  8930,  8936,  8947,  8953,  8959,  8965,  8971,  8982,  8988,
+    9004,  9010,  9017,  9024,  9031,  9038,  9045,  9049,  9069,  9068,
+    9140,  9181,  9183,  9188,  9189,  9193,  9194,  9198,  9199,  9203,
+    9210,  9218,  9245,  9251,  9257,  9263,  9269,  9275,  9284,  9291,
+    9293,  9290,  9300,  9311,  9317,  9323,  9329,  9335,  9341,  9347,
+    9353,  9359,  9366,  9365,  9385,  9384,  9399,  9409,  9417,  9433,
+    9434,  9439,  9444,  9447,  9450,  9449,  9466,  9468,  9474,  9473,
+    9490,  9492,  9494,  9496,  9498,  9500,  9502,  9504,  9506,  9508,
+    9514,  9520,  9523,  9522,  9528,  9529,  9533,  9540,  9548,  9549,
+    9553,  9560,  9568,  9569,  9573,  9574,  9578,  9586,  9597,  9598,
+    9610,  9621,  9622,  9628,  9629,  9649,  9651,  9655,  9653,  9670,
+    9668,  9686,  9684,  9691,  9700,  9698,  9716,  9715,  9725,  9736,
+    9734,  9753,  9752,  9763,  9774,  9775,  9776,  9788,  9788,  9802,
+    9842,  9918,  9929,  9934,  9926,  9953,  9973,  9981,  9973,  9990,
+    9989, 10012, 10029, 10012, 10036, 10040, 10066, 10067, 10072, 10075,
+   10076, 10077, 10081, 10082, 10087, 10086, 10092, 10091, 10099, 10100,
+   10103, 10105, 10105, 10109, 10109, 10114, 10115, 10119, 10121, 10126,
+   10127, 10131, 10142, 10155, 10156, 10157, 10158, 10159, 10160, 10161,
+   10162, 10163, 10164, 10165, 10166, 10170, 10171, 10172, 10173, 10174,
+   10175, 10176, 10177, 10178, 10182, 10183, 10184, 10185, 10188, 10190,
+   10191, 10195, 10196, 10204, 10206, 10210, 10212, 10211, 10225, 10228,
+   10227, 10242, 10248, 10262, 10264, 10268, 10270, 10275, 10276, 10296,
+   10321, 10325, 10326, 10330, 10342, 10344, 10349, 10348, 10383, 10385,
+   10390, 10391, 10392, 10397, 10404, 10408, 10409, 10413, 10417, 10421,
+   10428, 10435, 10442, 10452, 10485, 10489, 10495, 10501, 10510, 10518,
+   10522, 10529, 10530, 10534, 10535, 10536, 10540, 10541, 10542, 10543,
+   10544, 10545, 10549, 10550, 10551, 10552, 10553, 10557, 10558, 10559,
+   10560, 10561, 10565, 10566, 10567, 10568, 10569, 10573, 10578, 10579,
+   10583, 10584, 10587, 10590, 10589, 10620, 10621, 10625, 10626, 10630,
+   10640, 10640, 10650, 10651, 10655, 10674, 10707, 10706, 10719, 10727,
+   10718, 10729, 10741, 10753, 10752, 10770, 10769, 10780, 10780, 10796,
+   10803, 10825, 10845, 10857, 10862, 10861, 10871, 10877, 10884, 10889,
+   10894, 10904, 10905, 10909, 10920, 10921, 10925, 10936, 10937, 10941,
+   10942, 10950, 10958, 10949, 10968, 10975, 10967, 10985, 10993, 10994,
+   11002, 11006, 11007, 11018, 11019, 11023, 11032, 11033, 11034, 11036,
+   11035, 11046, 11047, 11051, 11052, 11054, 11053, 11057, 11056, 11062,
+   11063, 11067, 11068, 11072, 11082, 11083, 11087, 11088, 11093, 11092,
+   11106, 11107, 11111, 11116, 11124, 11125, 11133, 11135, 11135, 11143,
+   11151, 11142, 11173, 11174, 11178, 11186, 11187, 11191, 11201, 11202,
+   11209, 11208, 11224, 11223, 11235, 11234, 11246, 11245, 11259, 11260,
+   11264, 11277, 11293, 11294, 11298, 11299, 11303, 11304, 11305, 11310,
+   11309, 11330, 11332, 11335, 11337, 11340, 11341, 11344, 11348, 11352,
+   11356, 11360, 11364, 11368, 11372, 11376, 11384, 11387, 11397, 11396,
+   11411, 11418, 11426, 11434, 11442, 11450, 11458, 11465, 11467, 11469,
+   11478, 11482, 11487, 11486, 11492, 11491, 11496, 11505, 11512, 11521,
+   11530, 11535, 11537, 11539, 11541, 11543, 11545, 11552, 11560, 11562,
+   11570, 11577, 11584, 11594, 11601, 11607, 11616, 11624, 11628, 11632,
+   11639, 11646, 11653, 11660, 11667, 11674, 11680, 11687, 11694, 11699,
+   11704, 11712, 11714, 11716, 11721, 11722, 11725, 11727, 11731, 11732,
+   11736, 11737, 11741, 11742, 11746, 11747, 11751, 11752, 11755, 11757,
+   11764, 11775, 11774, 11790, 11789, 11799, 11800, 11804, 11805, 11806,
+   11810, 11811, 11812, 11827, 11826, 11839, 11848, 11838, 11850, 11854,
+   11855, 11869, 11870, 11875, 11877, 11879, 11881, 11883, 11885, 11887,
+   11889, 11891, 11893, 11895, 11897, 11902, 11904, 11906, 11908, 11910,
+   11912, 11914, 11919, 11920, 11924, 11925, 11929, 11928, 11938, 11939,
+   11943, 11943, 11945, 11946, 11950, 11951, 11956, 11955, 11966, 11970,
+   11974, 11987, 11986, 12000, 12001, 12002, 12005, 12006, 12007, 12011,
+   12016, 12026, 12038, 12049, 12059, 12069, 12037, 12077, 12078, 12082,
+   12083, 12087, 12088, 12096, 12100, 12101, 12102, 12105, 12107, 12111,
+   12112, 12116, 12121, 12128, 12133, 12140, 12142, 12146, 12147, 12151,
+   12156, 12164, 12165, 12168, 12170, 12178, 12180, 12184, 12185, 12186,
+   12190, 12192, 12197, 12198, 12207, 12208, 12212, 12213, 12217, 12230,
+   12253, 12265, 12276, 12295, 12303, 12315, 12323, 12338, 12358, 12359,
+   12360, 12368, 12369, 12370, 12377, 12383, 12389, 12395, 12401, 12407,
+   12436, 12464, 12465, 12466, 12470, 12480, 12490, 12496, 12505, 12520,
+   12521, 12525, 12534, 12549, 12553, 12599, 12603, 12620, 12624, 12702,
+   12726, 12756, 12757, 12773, 12783, 12787, 12793, 12799, 12809, 12815,
+   12824, 12834, 12835, 12863, 12877, 12891, 12906, 12907, 12917, 12918,
+   12928, 12929, 12930, 12934, 12950, 12971, 12986, 12987, 12988, 12989,
    12990, 12991, 12992, 12993, 12994, 12995, 12996, 12997, 12998, 12999,
    13000, 13001, 13002, 13003, 13004, 13005, 13006, 13007, 13008, 13009,
    13010, 13011, 13012, 13013, 13014, 13015, 13016, 13017, 13018, 13019,
-   13020, 13021, 13022, 13023, 13033, 13034, 13035, 13036, 13037, 13038,
-   13039, 13040, 13041, 13042, 13043, 13044, 13045, 13046, 13047, 13048,
-   13049, 13050, 13051, 13052, 13053, 13054, 13055, 13056, 13057, 13058,
+   13020, 13021, 13022, 13023, 13024, 13025, 13026, 13027, 13028, 13029,
+   13030, 13031, 13032, 13033, 13034, 13035, 13036, 13037, 13038, 13039,
+   13040, 13041, 13042, 13043, 13044, 13054, 13055, 13056, 13057, 13058,
    13059, 13060, 13061, 13062, 13063, 13064, 13065, 13066, 13067, 13068,
    13069, 13070, 13071, 13072, 13073, 13074, 13075, 13076, 13077, 13078,
    13079, 13080, 13081, 13082, 13083, 13084, 13085, 13086, 13087, 13088,
@@ -3729,39 +3730,41 @@ static const yytype_uint16 yyrline[] =
    13289, 13290, 13291, 13292, 13293, 13294, 13295, 13296, 13297, 13298,
    13299, 13300, 13301, 13302, 13303, 13304, 13305, 13306, 13307, 13308,
    13309, 13310, 13311, 13312, 13313, 13314, 13315, 13316, 13317, 13318,
-   13319, 13320, 13321, 13322, 13323, 13324, 13331, 13330, 13345, 13346,
-   13350, 13351, 13355, 13355, 13435, 13436, 13437, 13438, 13442, 13443,
-   13447, 13448, 13449, 13450, 13454, 13455, 13456, 13457, 13461, 13462,
-   13466, 13507, 13525, 13536, 13548, 13561, 13576, 13595, 13621, 13634,
-   13660, 13703, 13717, 13718, 13719, 13720, 13724, 13725, 13734, 13746,
-   13747, 13748, 13754, 13760, 13772, 13771, 13787, 13788, 13792, 13793,
-   13797, 13812, 13813, 13814, 13819, 13820, 13825, 13824, 13844, 13856,
-   13869, 13868, 13902, 13903, 13907, 13908, 13912, 13913, 13914, 13915,
-   13917, 13916, 13929, 13930, 13931, 13932, 13933, 13939, 13944, 13950,
-   13961, 13972, 13976, 13986, 13991, 13998, 14010, 14022, 14031, 14033,
-   14037, 14038, 14045, 14047, 14051, 14052, 14057, 14056, 14060, 14059,
-   14063, 14062, 14066, 14065, 14068, 14069, 14070, 14071, 14072, 14073,
-   14074, 14075, 14076, 14077, 14078, 14079, 14080, 14081, 14082, 14083,
-   14084, 14085, 14086, 14087, 14088, 14089, 14090, 14091, 14092, 14093,
-   14097, 14098, 14102, 14103, 14107, 14117, 14127, 14140, 14155, 14168,
-   14181, 14193, 14198, 14206, 14211, 14218, 14218, 14219, 14219, 14222,
-   14249, 14254, 14260, 14266, 14272, 14276, 14280, 14281, 14285, 14312,
-   14314, 14318, 14322, 14326, 14333, 14334, 14338, 14339, 14343, 14344,
-   14348, 14349, 14355, 14361, 14367, 14377, 14376, 14386, 14387, 14392,
-   14393, 14394, 14399, 14400, 14401, 14405, 14406, 14410, 14422, 14431,
-   14441, 14450, 14464, 14465, 14470, 14469, 14485, 14486, 14487, 14491,
-   14492, 14496, 14496, 14518, 14519, 14523, 14524, 14525, 14529, 14533,
-   14540, 14543, 14541, 14557, 14564, 14585, 14602, 14604, 14608, 14609,
-   14613, 14614, 14622, 14623, 14624, 14625, 14631, 14637, 14647, 14649,
-   14651, 14656, 14657, 14658, 14659, 14660, 14664, 14665, 14666, 14667,
-   14668, 14669, 14679, 14680, 14685, 14698, 14711, 14713, 14715, 14720,
-   14725, 14727, 14729, 14735, 14736, 14738, 14744, 14743, 14760, 14761,
-   14765, 14770, 14778, 14778, 14802, 14803, 14808, 14809, 14811, 14813,
-   14831, 14837, 14842, 14824, 14903, 14920, 14944, 14975, 14979, 14988,
-   15011, 14940, 15074, 15098, 15107, 15114, 15073, 15134, 15138, 15142,
-   15146, 15150, 15154, 15161, 15168, 15175, 15185, 15186, 15190, 15191,
-   15192, 15196, 15197, 15202, 15204, 15203, 15209, 15210, 15214, 15221,
-   15231, 15237, 15248
+   13319, 13320, 13321, 13322, 13323, 13324, 13325, 13326, 13327, 13328,
+   13329, 13330, 13331, 13332, 13333, 13334, 13335, 13336, 13337, 13338,
+   13339, 13340, 13341, 13342, 13343, 13344, 13345, 13346, 13353, 13352,
+   13367, 13368, 13372, 13373, 13377, 13377, 13457, 13458, 13459, 13460,
+   13464, 13465, 13469, 13470, 13471, 13472, 13476, 13477, 13478, 13479,
+   13483, 13484, 13488, 13529, 13547, 13558, 13570, 13583, 13598, 13617,
+   13643, 13656, 13682, 13725, 13739, 13740, 13741, 13742, 13746, 13747,
+   13756, 13768, 13769, 13770, 13776, 13782, 13794, 13793, 13809, 13810,
+   13814, 13815, 13819, 13820, 13824, 13839, 13840, 13841, 13846, 13847,
+   13852, 13851, 13871, 13883, 13896, 13895, 13929, 13930, 13934, 13935,
+   13939, 13940, 13941, 13942, 13944, 13943, 13956, 13957, 13958, 13959,
+   13960, 13966, 13971, 13977, 13988, 13999, 14003, 14013, 14018, 14025,
+   14037, 14049, 14058, 14060, 14064, 14065, 14072, 14074, 14078, 14079,
+   14084, 14083, 14087, 14086, 14090, 14089, 14093, 14092, 14095, 14096,
+   14097, 14098, 14099, 14100, 14101, 14102, 14103, 14104, 14105, 14106,
+   14107, 14108, 14109, 14110, 14111, 14112, 14113, 14114, 14115, 14116,
+   14117, 14118, 14119, 14120, 14124, 14125, 14129, 14130, 14134, 14144,
+   14154, 14167, 14182, 14195, 14208, 14220, 14225, 14233, 14238, 14245,
+   14245, 14246, 14246, 14249, 14276, 14281, 14287, 14293, 14299, 14303,
+   14307, 14308, 14312, 14339, 14341, 14345, 14349, 14353, 14360, 14361,
+   14365, 14366, 14370, 14371, 14375, 14376, 14382, 14388, 14394, 14404,
+   14403, 14413, 14414, 14419, 14420, 14421, 14426, 14427, 14428, 14432,
+   14433, 14437, 14449, 14458, 14468, 14477, 14491, 14492, 14497, 14496,
+   14512, 14513, 14514, 14518, 14519, 14523, 14523, 14545, 14546, 14550,
+   14551, 14552, 14556, 14560, 14567, 14570, 14568, 14584, 14591, 14612,
+   14636, 14638, 14642, 14643, 14647, 14648, 14656, 14657, 14658, 14659,
+   14665, 14671, 14681, 14683, 14685, 14690, 14691, 14692, 14693, 14694,
+   14698, 14699, 14700, 14701, 14702, 14703, 14713, 14714, 14719, 14732,
+   14745, 14747, 14749, 14754, 14759, 14761, 14763, 14769, 14770, 14772,
+   14778, 14777, 14794, 14795, 14799, 14804, 14812, 14812, 14836, 14837,
+   14842, 14843, 14845, 14847, 14865, 14871, 14876, 14858, 14937, 14954,
+   14978, 15009, 15013, 15022, 15045, 14974, 15108, 15132, 15141, 15148,
+   15107, 15168, 15172, 15176, 15180, 15184, 15188, 15195, 15202, 15209,
+   15219, 15220, 15224, 15225, 15226, 15230, 15231, 15236, 15238, 15237,
+   15243, 15244, 15248, 15255, 15265, 15271, 15282
 };
 #endif
 
@@ -3842,55 +3845,55 @@ static const char *const yytname[] =
   "MINUTE_MICROSECOND_SYM", "MINUTE_SECOND_SYM", "MINUTE_SYM", "MIN_ROWS",
   "MIN_SYM", "MODE_SYM", "MODIFIES_SYM", "MODIFY_SYM", "MOD_SYM",
   "MONTH_SYM", "MULTILINESTRING", "MULTIPOINT", "MULTIPOLYGON",
-  "MUTEX_SYM", "MYSQL_ERRNO_SYM", "NAMES_SYM", "NAME_SYM", "NATIONAL_SYM",
-  "NATURAL", "NCHAR_STRING", "NCHAR_SYM", "NDBCLUSTER_SYM", "NE", "NEG",
-  "NEW_SYM", "NEXT_SYM", "NODEGROUP_SYM", "NONE_SYM", "NOT2_SYM",
-  "NOT_SYM", "NOW_SYM", "NO_SYM", "NO_WAIT_SYM", "NO_WRITE_TO_BINLOG",
-  "NULL_SYM", "NUM", "NUMERIC_SYM", "NVARCHAR_SYM", "OFFSET_SYM",
-  "OLD_PASSWORD", "ON", "ONE_SHOT_SYM", "ONE_SYM", "ONLINE_SYM",
-  "OPEN_SYM", "OPTIMIZE", "OPTIONS_SYM", "OPTION", "OPTIONALLY", "OR2_SYM",
-  "ORDER_SYM", "OR_OR_SYM", "OR_SYM", "OUTER", "OUTFILE", "OUT_SYM",
-  "OWNER_SYM", "PACK_KEYS_SYM", "PAGE_SYM", "PAGE_CHECKSUM_SYM",
-  "PARAM_MARKER", "PARSER_SYM", "PARSE_VCOL_EXPR_SYM", "PARTIAL",
-  "PARTITIONING_SYM", "PARTITIONS_SYM", "PARTITION_SYM", "PASSWORD",
-  "PERSISTENT_SYM", "PHASE_SYM", "PLUGINS_SYM", "PLUGIN_SYM", "POINT_SYM",
-  "POLYGON", "PORT_SYM", "POSITION_SYM", "PRECISION", "PREPARE_SYM",
-  "PRESERVE_SYM", "PREV_SYM", "PRIMARY_SYM", "PRIVILEGES", "PROCEDURE_SYM",
-  "PROCESS", "PROCESSLIST_SYM", "PROFILE_SYM", "PROFILES_SYM", "PROXY_SYM",
-  "PURGE", "QUARTER_SYM", "QUERY_SYM", "QUICK", "RANGE_SYM", "READS_SYM",
-  "READ_ONLY_SYM", "READ_SYM", "READ_WRITE_SYM", "REAL", "REBUILD_SYM",
-  "RECOVER_SYM", "REDOFILE_SYM", "REDO_BUFFER_SIZE_SYM", "REDUNDANT_SYM",
-  "REFERENCES", "REGEXP", "RELAY", "RELAYLOG_SYM", "RELAY_LOG_FILE_SYM",
-  "RELAY_LOG_POS_SYM", "RELAY_THREAD", "RELEASE_SYM", "RELOAD",
-  "REMOVE_SYM", "RENAME", "REORGANIZE_SYM", "REPAIR", "REPEATABLE_SYM",
-  "REPEAT_SYM", "REPLACE", "REPLICATION", "REQUIRE_SYM", "RESET_SYM",
-  "RESIGNAL_SYM", "RESOURCES", "RESTORE_SYM", "RESTRICT", "RESUME_SYM",
-  "RETURNS_SYM", "RETURN_SYM", "REVOKE", "RIGHT", "ROLLBACK_SYM",
-  "ROLLUP_SYM", "ROUTINE_SYM", "ROWS_SYM", "ROW_FORMAT_SYM", "ROW_SYM",
-  "RTREE_SYM", "SAVEPOINT_SYM", "SCHEDULE_SYM", "SCHEMA_NAME_SYM",
-  "SECOND_MICROSECOND_SYM", "SECOND_SYM", "SECURITY_SYM", "SELECT_SYM",
-  "SENSITIVE_SYM", "SEPARATOR_SYM", "SERIALIZABLE_SYM", "SERIAL_SYM",
-  "SESSION_SYM", "SERVER_SYM", "SERVER_OPTIONS", "SET", "SET_VAR",
-  "SHARE_SYM", "SHIFT_LEFT", "SHIFT_RIGHT", "SHOW", "SHUTDOWN",
-  "SIGNAL_SYM", "SIGNED_SYM", "SIMPLE_SYM", "SLAVE", "SLOW", "SMALLINT",
-  "SNAPSHOT_SYM", "SOCKET_SYM", "SOFT_SYM", "SONAME_SYM", "SOUNDS_SYM",
-  "SOURCE_SYM", "SPATIAL_SYM", "SPECIFIC_SYM", "SQLEXCEPTION_SYM",
-  "SQLSTATE_SYM", "SQLWARNING_SYM", "SQL_BIG_RESULT", "SQL_BUFFER_RESULT",
-  "SQL_CACHE_SYM", "SQL_CALC_FOUND_ROWS", "SQL_NO_CACHE_SYM",
-  "SQL_SMALL_RESULT", "SQL_SYM", "SQL_THREAD", "SSL_SYM", "STARTING",
-  "STARTS_SYM", "START_SYM", "STATUS_SYM", "STDDEV_SAMP_SYM", "STD_SYM",
-  "STOP_SYM", "STORAGE_SYM", "STRAIGHT_JOIN", "STRING_SYM",
-  "SUBCLASS_ORIGIN_SYM", "SUBDATE_SYM", "SUBJECT_SYM", "SUBPARTITIONS_SYM",
-  "SUBPARTITION_SYM", "SUBSTRING", "SUM_SYM", "SUPER_SYM", "SUSPEND_SYM",
-  "SWAPS_SYM", "SWITCHES_SYM", "SYSDATE", "TABLES", "TABLESPACE",
-  "TABLE_REF_PRIORITY", "TABLE_STATS_SYM", "TABLE_SYM",
-  "TABLE_CHECKSUM_SYM", "TABLE_NAME_SYM", "TEMPORARY", "TEMPTABLE_SYM",
-  "TERMINATED", "TEXT_STRING", "TEXT_SYM", "THAN_SYM", "THEN_SYM",
-  "TIMESTAMP", "TIMESTAMP_ADD", "TIMESTAMP_DIFF", "TIME_SYM", "TINYBLOB",
-  "TINYINT", "TINYTEXT", "TO_SYM", "TRAILING", "TRANSACTION_SYM",
-  "TRANSACTIONAL_SYM", "TRIGGERS_SYM", "TRIGGER_SYM", "TRIM", "TRUE_SYM",
-  "TRUNCATE_SYM", "TYPES_SYM", "TYPE_SYM", "UDF_RETURNS_SYM",
-  "ULONGLONG_NUM", "UNCOMMITTED_SYM", "UNDEFINED_SYM",
+  "MUTEX_SYM", "MYSQL_SYM", "MYSQL_ERRNO_SYM", "NAMES_SYM", "NAME_SYM",
+  "NATIONAL_SYM", "NATURAL", "NCHAR_STRING", "NCHAR_SYM", "NDBCLUSTER_SYM",
+  "NE", "NEG", "NEW_SYM", "NEXT_SYM", "NODEGROUP_SYM", "NONE_SYM",
+  "NOT2_SYM", "NOT_SYM", "NOW_SYM", "NO_SYM", "NO_WAIT_SYM",
+  "NO_WRITE_TO_BINLOG", "NULL_SYM", "NUM", "NUMERIC_SYM", "NVARCHAR_SYM",
+  "OFFSET_SYM", "OLD_PASSWORD", "ON", "ONE_SHOT_SYM", "ONE_SYM",
+  "ONLINE_SYM", "OPEN_SYM", "OPTIMIZE", "OPTIONS_SYM", "OPTION",
+  "OPTIONALLY", "OR2_SYM", "ORDER_SYM", "OR_OR_SYM", "OR_SYM", "OUTER",
+  "OUTFILE", "OUT_SYM", "OWNER_SYM", "PACK_KEYS_SYM", "PAGE_SYM",
+  "PAGE_CHECKSUM_SYM", "PARAM_MARKER", "PARSER_SYM", "PARSE_VCOL_EXPR_SYM",
+  "PARTIAL", "PARTITIONING_SYM", "PARTITIONS_SYM", "PARTITION_SYM",
+  "PASSWORD", "PERSISTENT_SYM", "PHASE_SYM", "PLUGINS_SYM", "PLUGIN_SYM",
+  "POINT_SYM", "POLYGON", "PORT_SYM", "POSITION_SYM", "PRECISION",
+  "PREPARE_SYM", "PRESERVE_SYM", "PREV_SYM", "PRIMARY_SYM", "PRIVILEGES",
+  "PROCEDURE_SYM", "PROCESS", "PROCESSLIST_SYM", "PROFILE_SYM",
+  "PROFILES_SYM", "PROXY_SYM", "PURGE", "QUARTER_SYM", "QUERY_SYM",
+  "QUICK", "RANGE_SYM", "READS_SYM", "READ_ONLY_SYM", "READ_SYM",
+  "READ_WRITE_SYM", "REAL", "REBUILD_SYM", "RECOVER_SYM", "REDOFILE_SYM",
+  "REDO_BUFFER_SIZE_SYM", "REDUNDANT_SYM", "REFERENCES", "REGEXP", "RELAY",
+  "RELAYLOG_SYM", "RELAY_LOG_FILE_SYM", "RELAY_LOG_POS_SYM",
+  "RELAY_THREAD", "RELEASE_SYM", "RELOAD", "REMOVE_SYM", "RENAME",
+  "REORGANIZE_SYM", "REPAIR", "REPEATABLE_SYM", "REPEAT_SYM", "REPLACE",
+  "REPLICATION", "REQUIRE_SYM", "RESET_SYM", "RESIGNAL_SYM", "RESOURCES",
+  "RESTORE_SYM", "RESTRICT", "RESUME_SYM", "RETURNS_SYM", "RETURN_SYM",
+  "REVOKE", "RIGHT", "ROLLBACK_SYM", "ROLLUP_SYM", "ROUTINE_SYM",
+  "ROWS_SYM", "ROW_FORMAT_SYM", "ROW_SYM", "RTREE_SYM", "SAVEPOINT_SYM",
+  "SCHEDULE_SYM", "SCHEMA_NAME_SYM", "SECOND_MICROSECOND_SYM",
+  "SECOND_SYM", "SECURITY_SYM", "SELECT_SYM", "SENSITIVE_SYM",
+  "SEPARATOR_SYM", "SERIALIZABLE_SYM", "SERIAL_SYM", "SESSION_SYM",
+  "SERVER_SYM", "SERVER_OPTIONS", "SET", "SET_VAR", "SHARE_SYM",
+  "SHIFT_LEFT", "SHIFT_RIGHT", "SHOW", "SHUTDOWN", "SIGNAL_SYM",
+  "SIGNED_SYM", "SIMPLE_SYM", "SLAVE", "SLOW", "SMALLINT", "SNAPSHOT_SYM",
+  "SOCKET_SYM", "SOFT_SYM", "SONAME_SYM", "SOUNDS_SYM", "SOURCE_SYM",
+  "SPATIAL_SYM", "SPECIFIC_SYM", "SQLEXCEPTION_SYM", "SQLSTATE_SYM",
+  "SQLWARNING_SYM", "SQL_BIG_RESULT", "SQL_BUFFER_RESULT", "SQL_CACHE_SYM",
+  "SQL_CALC_FOUND_ROWS", "SQL_NO_CACHE_SYM", "SQL_SMALL_RESULT", "SQL_SYM",
+  "SQL_THREAD", "SSL_SYM", "STARTING", "STARTS_SYM", "START_SYM",
+  "STATUS_SYM", "STDDEV_SAMP_SYM", "STD_SYM", "STOP_SYM", "STORAGE_SYM",
+  "STRAIGHT_JOIN", "STRING_SYM", "SUBCLASS_ORIGIN_SYM", "SUBDATE_SYM",
+  "SUBJECT_SYM", "SUBPARTITIONS_SYM", "SUBPARTITION_SYM", "SUBSTRING",
+  "SUM_SYM", "SUPER_SYM", "SUSPEND_SYM", "SWAPS_SYM", "SWITCHES_SYM",
+  "SYSDATE", "TABLES", "TABLESPACE", "TABLE_REF_PRIORITY",
+  "TABLE_STATS_SYM", "TABLE_SYM", "TABLE_CHECKSUM_SYM", "TABLE_NAME_SYM",
+  "TEMPORARY", "TEMPTABLE_SYM", "TERMINATED", "TEXT_STRING", "TEXT_SYM",
+  "THAN_SYM", "THEN_SYM", "TIMESTAMP", "TIMESTAMP_ADD", "TIMESTAMP_DIFF",
+  "TIME_SYM", "TINYBLOB", "TINYINT", "TINYTEXT", "TO_SYM", "TRAILING",
+  "TRANSACTION_SYM", "TRANSACTIONAL_SYM", "TRIGGERS_SYM", "TRIGGER_SYM",
+  "TRIM", "TRUE_SYM", "TRUNCATE_SYM", "TYPES_SYM", "TYPE_SYM",
+  "UDF_RETURNS_SYM", "ULONGLONG_NUM", "UNCOMMITTED_SYM", "UNDEFINED_SYM",
   "UNDERSCORE_CHARSET", "UNDOFILE_SYM", "UNDO_BUFFER_SIZE_SYM", "UNDO_SYM",
   "UNICODE_SYM", "UNINSTALL_SYM", "UNION_SYM", "UNIQUE_SYM", "UNKNOWN_SYM",
   "UNLOCK_SYM", "UNSIGNED", "UNTIL_SYM", "UPDATE_SYM", "UPGRADE_SYM",
@@ -4099,10 +4102,10 @@ static const char *const yytname[] =
   "opt_var_ident_type", "ext_option_value", "sys_option_value",
   "option_value", "internal_variable_name", "isolation_types",
   "text_or_password", "set_expr_or_default", "lock", "$@173",
-  "table_or_tables", "table_lock_list", "table_lock", "lock_option",
-  "unlock", "$@174", "handler", "$@175", "handler_read_or_scan",
-  "handler_scan_function", "handler_rkey_function", "$@176",
-  "handler_rkey_mode", "revoke", "revoke_command", "grant",
+  "table_or_tables", "table_or_view", "table_lock_list", "table_lock",
+  "lock_option", "unlock", "$@174", "handler", "$@175",
+  "handler_read_or_scan", "handler_scan_function", "handler_rkey_function",
+  "$@176", "handler_rkey_mode", "revoke", "revoke_command", "grant",
   "grant_command", "opt_table", "grant_privileges", "opt_privileges",
   "object_privilege_list", "object_privilege", "$@177", "$@178", "$@179",
   "$@180", "opt_and", "require_list", "require_list_element",
@@ -4195,279 +4198,279 @@ static const yytype_uint16 yytoknum[] =
      835,   836,   837,   838,   839,   840,   841,   842,   843,   844,
      845,   846,   847,   848,   849,   850,   851,   852,   853,   854,
      855,   856,   857,   858,   859,   860,   861,   862,   863,   864,
-     865,   866,   867,   868,   869,   870,   871,   872,   873,   124,
-      38,    45,    43,    42,    47,    37,    94,   126,    40,    41,
-      44,    33,   123,   125,    59,    64,    46,    58
+     865,   866,   867,   868,   869,   870,   871,   872,   873,   874,
+     124,    38,    45,    43,    42,    47,    37,    94,   126,    40,
+      41,    44,    33,   123,   125,    59,    64,    46,    58
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint16 yyr1[] =
 {
-       0,   638,   639,   640,   639,   639,   641,   641,   642,   642,
-     643,   643,   643,   643,   643,   643,   643,   643,   643,   643,
-     643,   643,   643,   643,   643,   643,   643,   643,   643,   643,
-     643,   643,   643,   643,   643,   643,   643,   643,   643,   643,
-     643,   643,   643,   643,   643,   643,   643,   643,   643,   643,
-     643,   643,   643,   643,   643,   643,   643,   643,   643,   643,
-     643,   643,   643,   644,   645,   645,   646,   647,   647,   649,
-     648,   650,   650,   651,   651,   652,   654,   653,   656,   655,
-     657,   657,   658,   658,   658,   658,   658,   658,   658,   658,
-     658,   658,   658,   658,   658,   658,   658,   659,   659,   659,
-     660,   661,   661,   661,   661,   663,   662,   664,   662,   665,
-     662,   666,   662,   667,   662,   668,   662,   662,   662,   662,
-     662,   669,   670,   670,   671,   671,   671,   671,   671,   671,
-     671,   673,   672,   675,   674,   674,   676,   676,   676,   676,
-     677,   677,   678,   678,   679,   679,   680,   680,   681,   681,
-     683,   682,   684,   684,   684,   684,   684,   684,   684,   684,
-     684,   684,   684,   684,   684,   685,   686,   686,   687,   687,
-     688,   688,   689,   689,   689,   689,   689,   689,   689,   690,
-     690,   690,   691,   691,   693,   692,   694,   694,   695,   695,
-     696,   696,   697,   697,   698,   698,   699,   700,   701,   701,
-     702,   702,   703,   704,   704,   704,   704,   705,   705,   706,
-     706,   707,   707,   709,   708,   708,   710,   708,   708,   712,
-     711,   713,   713,   714,   714,   715,   716,   716,   717,   718,
-     718,   719,   719,   719,   719,   719,   720,   721,   721,   722,
-     722,   723,   723,   724,   724,   725,   725,   725,   726,   726,
-     726,   726,   726,   726,   726,   726,   726,   726,   726,   726,
-     727,   728,   728,   729,   729,   730,   730,   730,   730,   730,
-     730,   730,   730,   730,   730,   730,   730,   730,   732,   731,
-     734,   733,   736,   735,   738,   737,   739,   740,   741,   743,
-     742,   744,   745,   745,   745,   746,   746,   748,   749,   750,
-     747,   751,   751,   751,   752,   752,   754,   755,   753,   757,
-     756,   758,   758,   759,   759,   761,   762,   760,   764,   765,
-     763,   766,   766,   768,   767,   769,   769,   771,   770,   773,
-     772,   775,   774,   776,   777,   778,   776,   779,   776,   780,
-     780,   781,   781,   781,   782,   783,   784,   785,   785,   786,
-     786,   787,   788,   789,   789,   791,   790,   792,   792,   792,
-     793,   793,   793,   794,   795,   795,   795,   796,   796,   796,
-     796,   796,   796,   796,   796,   797,   798,   798,   798,   799,
-     799,   799,   799,   799,   800,   801,   801,   801,   802,   802,
-     802,   802,   802,   802,   802,   803,   804,   804,   804,   805,
-     805,   805,   806,   807,   808,   809,   810,   811,   811,   811,
-     812,   813,   814,   815,   816,   817,   818,   819,   820,   821,
-     821,   822,   822,   823,   823,   824,   824,   824,   824,   826,
-     825,   827,   825,   828,   829,   828,   830,   828,   831,   832,
-     832,   834,   833,   835,   837,   836,   838,   839,   840,   839,
-     839,   839,   839,   839,   841,   841,   842,   842,   843,   843,
-     844,   844,   845,   846,   847,   848,   849,   849,   850,   851,
-     850,   852,   850,   853,   853,   854,   855,   856,   856,   857,
-     857,   858,   858,   860,   859,   861,   862,   863,   862,   864,
-     862,   865,   865,   866,   866,   867,   867,   869,   870,   868,
-     871,   871,   872,   872,   873,   873,   874,   874,   876,   875,
-     877,   878,   878,   879,   879,   880,   880,   880,   880,   880,
-     880,   880,   880,   880,   882,   883,   881,   884,   884,   885,
-     885,   886,   886,   887,   887,   888,   888,   889,   889,   890,
-     891,   891,   892,   892,   893,   893,   894,   894,   894,   895,
-     895,   895,   895,   895,   895,   895,   895,   895,   895,   895,
-     895,   895,   895,   896,   895,   895,   895,   895,   895,   895,
-     895,   895,   895,   895,   895,   895,   895,   895,   895,   895,
-     897,   898,   899,   900,   901,   901,   901,   901,   901,   901,
-     901,   902,   902,   902,   903,   903,   904,   904,   904,   904,
-     905,   906,   906,   907,   907,   908,   908,   910,   909,   911,
-     909,   912,   909,   913,   909,   909,   909,   914,   914,   915,
-     916,   916,   917,   919,   918,   920,   921,   920,   922,   922,
-     923,   923,   923,   924,   924,   925,   925,   926,   926,   926,
-     927,   928,   929,   929,   929,   929,   929,   929,   929,   929,
-     929,   929,   929,   929,   929,   929,   929,   929,   929,   929,
-     929,   929,   929,   929,   929,   929,   929,   929,   929,   929,
-     929,   929,   929,   929,   929,   929,   929,   930,   929,   931,
-     929,   929,   929,   932,   932,   932,   932,   932,   932,   932,
-     932,   933,   934,   934,   935,   935,   936,   936,   936,   936,
-     936,   937,   937,   937,   937,   937,   938,   938,   938,   939,
-     939,   939,   940,   941,   941,   942,   942,   943,   943,   943,
-     944,   944,   944,   944,   945,   945,   946,   946,   947,   947,
-     948,   948,   949,   949,   949,   949,   949,   949,   949,   949,
-     949,   949,   949,   949,   949,   949,   949,   950,   951,   951,
-     952,   952,   953,   953,   954,   954,   955,   955,   956,   956,
-     957,   957,   958,   958,   959,   960,   960,   961,   961,   962,
-     962,   963,   963,   963,   964,   964,   964,   965,   965,   965,
-     965,   965,   965,   965,   966,   966,   967,   967,   968,   969,
-     969,   970,   970,   971,   971,   971,   971,   972,   972,   972,
-     972,   972,   973,   973,   973,   973,   973,   974,   975,   975,
-     976,   976,   977,   977,   978,   978,   978,   979,   979,   980,
-     981,   982,   983,   983,   984,   984,   985,   985,   986,   986,
-     987,   987,   988,   988,   989,   989,   990,   990,   991,   991,
-     991,   991,   991,   991,   992,   992,   993,   994,   994,   995,
-     995,   995,   996,   996,   997,   997,   998,   998,   999,   999,
-    1000,  1000,  1002,  1001,  1003,  1001,  1001,  1004,  1001,  1005,
-    1001,  1006,  1001,  1007,  1001,  1008,  1001,  1001,  1001,  1001,
-    1001,  1001,  1009,  1009,  1009,  1009,  1010,  1010,  1011,  1011,
-    1012,  1012,  1013,  1013,  1013,  1013,  1013,  1013,  1013,  1013,
-    1013,  1013,  1014,  1013,  1013,  1015,  1013,  1016,  1013,  1013,
-    1013,  1013,  1017,  1018,  1018,  1020,  1019,  1021,  1021,  1021,
-    1023,  1022,  1024,  1025,  1024,  1026,  1026,  1027,  1028,  1028,
-    1029,  1030,  1030,  1030,  1031,  1030,  1032,  1033,  1030,  1030,
-    1030,  1030,  1030,  1030,  1030,  1030,  1030,  1030,  1030,  1030,
-    1030,  1030,  1034,  1034,  1035,  1035,  1037,  1036,  1038,  1038,
-    1039,  1039,  1040,  1040,  1041,  1041,  1041,  1042,  1042,  1042,
-    1043,  1043,  1043,  1043,  1045,  1044,  1044,  1046,  1044,  1044,
-    1047,  1048,  1048,  1050,  1049,  1051,  1051,  1052,  1052,  1052,
-    1053,  1053,  1054,  1054,  1056,  1055,  1057,  1057,  1057,  1059,
-    1058,  1060,  1060,  1061,  1061,  1062,  1062,  1062,  1064,  1063,
-    1065,  1067,  1066,  1068,  1068,  1069,  1069,  1070,  1070,  1070,
-    1070,  1070,  1070,  1072,  1071,  1073,  1073,  1073,  1075,  1074,
-    1074,  1076,  1076,  1077,  1077,  1078,  1080,  1079,  1081,  1081,
-    1082,  1082,  1083,  1084,  1085,  1085,  1087,  1086,  1088,  1088,
-    1089,  1089,  1090,  1091,  1093,  1092,  1095,  1094,  1096,  1096,
-    1097,  1097,  1098,  1099,  1099,  1100,  1100,  1101,  1101,  1103,
-    1102,  1105,  1106,  1104,  1107,  1107,  1107,  1107,  1107,  1108,
-    1108,  1109,  1109,  1110,  1110,  1111,  1111,  1111,  1112,  1112,
-    1112,  1113,  1113,  1113,  1114,  1114,  1115,  1116,  1117,  1117,
-    1117,  1117,  1117,  1118,  1118,  1118,  1119,  1119,  1120,  1120,
-    1120,  1120,  1120,  1120,  1120,  1120,  1120,  1120,  1120,  1121,
-    1121,  1121,  1121,  1121,  1121,  1122,  1122,  1122,  1122,  1122,
-    1122,  1122,  1122,  1122,  1122,  1122,  1122,  1122,  1122,  1123,
+       0,   639,   640,   641,   640,   640,   642,   642,   643,   643,
+     644,   644,   644,   644,   644,   644,   644,   644,   644,   644,
+     644,   644,   644,   644,   644,   644,   644,   644,   644,   644,
+     644,   644,   644,   644,   644,   644,   644,   644,   644,   644,
+     644,   644,   644,   644,   644,   644,   644,   644,   644,   644,
+     644,   644,   644,   644,   644,   644,   644,   644,   644,   644,
+     644,   644,   644,   645,   646,   646,   647,   648,   648,   650,
+     649,   651,   651,   652,   652,   653,   655,   654,   657,   656,
+     658,   658,   659,   659,   659,   659,   659,   659,   659,   659,
+     659,   659,   659,   659,   659,   659,   659,   660,   660,   660,
+     661,   662,   662,   662,   662,   664,   663,   665,   663,   666,
+     663,   667,   663,   668,   663,   669,   663,   663,   663,   663,
+     663,   670,   671,   671,   672,   672,   672,   672,   672,   672,
+     672,   674,   673,   676,   675,   675,   677,   677,   677,   677,
+     678,   678,   679,   679,   680,   680,   681,   681,   682,   682,
+     684,   683,   685,   685,   685,   685,   685,   685,   685,   685,
+     685,   685,   685,   685,   685,   686,   687,   687,   688,   688,
+     689,   689,   690,   690,   690,   690,   690,   690,   690,   691,
+     691,   691,   692,   692,   694,   693,   695,   695,   696,   696,
+     697,   697,   698,   698,   699,   699,   700,   701,   702,   702,
+     703,   703,   704,   705,   705,   705,   705,   706,   706,   707,
+     707,   708,   708,   710,   709,   709,   711,   709,   709,   713,
+     712,   714,   714,   715,   715,   716,   717,   717,   718,   719,
+     719,   720,   720,   720,   720,   720,   721,   722,   722,   723,
+     723,   724,   724,   725,   725,   726,   726,   726,   727,   727,
+     727,   727,   727,   727,   727,   727,   727,   727,   727,   727,
+     728,   729,   729,   730,   730,   731,   731,   731,   731,   731,
+     731,   731,   731,   731,   731,   731,   731,   731,   733,   732,
+     735,   734,   737,   736,   739,   738,   740,   741,   742,   744,
+     743,   745,   746,   746,   746,   747,   747,   749,   750,   751,
+     748,   752,   752,   752,   753,   753,   755,   756,   754,   758,
+     757,   759,   759,   760,   760,   762,   763,   761,   765,   766,
+     764,   767,   767,   769,   768,   770,   770,   772,   771,   774,
+     773,   776,   775,   777,   778,   779,   777,   780,   777,   781,
+     781,   782,   782,   782,   783,   784,   785,   786,   786,   787,
+     787,   788,   789,   790,   790,   792,   791,   793,   793,   793,
+     794,   794,   794,   795,   796,   796,   796,   797,   797,   797,
+     797,   797,   797,   797,   797,   798,   799,   799,   799,   800,
+     800,   800,   800,   800,   801,   802,   802,   802,   803,   803,
+     803,   803,   803,   803,   803,   804,   805,   805,   805,   806,
+     806,   806,   807,   808,   809,   810,   811,   812,   812,   812,
+     813,   814,   815,   816,   817,   818,   819,   820,   821,   822,
+     822,   823,   823,   824,   824,   825,   825,   825,   825,   827,
+     826,   828,   826,   829,   830,   829,   831,   829,   832,   833,
+     833,   835,   834,   836,   838,   837,   839,   840,   841,   840,
+     840,   840,   840,   840,   842,   842,   843,   843,   844,   844,
+     845,   845,   846,   847,   848,   849,   850,   850,   851,   852,
+     851,   853,   851,   854,   854,   855,   856,   857,   857,   858,
+     858,   859,   859,   861,   860,   862,   863,   864,   863,   865,
+     863,   866,   866,   867,   867,   868,   868,   870,   871,   869,
+     872,   872,   873,   873,   874,   874,   875,   875,   877,   876,
+     878,   879,   879,   880,   880,   881,   881,   881,   881,   881,
+     881,   881,   881,   881,   883,   884,   882,   885,   885,   886,
+     886,   887,   887,   888,   888,   889,   889,   890,   890,   891,
+     892,   892,   893,   893,   894,   894,   895,   895,   895,   896,
+     896,   896,   896,   896,   896,   896,   896,   896,   896,   896,
+     896,   896,   896,   897,   896,   896,   896,   896,   896,   896,
+     896,   896,   896,   896,   896,   896,   896,   896,   896,   896,
+     898,   899,   900,   901,   902,   902,   902,   902,   902,   902,
+     902,   903,   903,   903,   904,   904,   905,   905,   905,   905,
+     906,   907,   907,   908,   908,   909,   909,   911,   910,   912,
+     910,   913,   910,   914,   910,   910,   910,   915,   915,   916,
+     917,   917,   918,   920,   919,   921,   922,   921,   923,   923,
+     924,   924,   924,   925,   925,   926,   926,   927,   927,   927,
+     928,   929,   930,   930,   930,   930,   930,   930,   930,   930,
+     930,   930,   930,   930,   930,   930,   930,   930,   930,   930,
+     930,   930,   930,   930,   930,   930,   930,   930,   930,   930,
+     930,   930,   930,   930,   930,   930,   930,   931,   930,   932,
+     930,   930,   930,   933,   933,   933,   933,   933,   933,   933,
+     933,   934,   935,   935,   936,   936,   937,   937,   937,   937,
+     937,   938,   938,   938,   938,   938,   939,   939,   939,   940,
+     940,   940,   941,   942,   942,   943,   943,   944,   944,   944,
+     945,   945,   945,   945,   946,   946,   947,   947,   948,   948,
+     949,   949,   950,   950,   950,   950,   950,   950,   950,   950,
+     950,   950,   950,   950,   950,   950,   950,   951,   952,   952,
+     953,   953,   954,   954,   955,   955,   956,   956,   957,   957,
+     958,   958,   959,   959,   960,   961,   961,   962,   962,   963,
+     963,   964,   964,   964,   965,   965,   965,   966,   966,   966,
+     966,   966,   966,   966,   967,   967,   968,   968,   969,   970,
+     970,   971,   971,   972,   972,   972,   972,   973,   973,   973,
+     973,   973,   974,   974,   974,   974,   974,   975,   976,   976,
+     977,   977,   978,   978,   979,   979,   979,   980,   980,   981,
+     982,   983,   984,   984,   985,   985,   986,   986,   987,   987,
+     988,   988,   989,   989,   990,   990,   991,   991,   992,   992,
+     992,   992,   992,   992,   993,   993,   994,   995,   995,   996,
+     996,   996,   997,   997,   998,   998,   999,   999,  1000,  1000,
+    1001,  1001,  1003,  1002,  1004,  1002,  1002,  1005,  1002,  1006,
+    1002,  1007,  1002,  1008,  1002,  1009,  1002,  1002,  1002,  1002,
+    1002,  1002,  1010,  1010,  1010,  1010,  1011,  1011,  1012,  1012,
+    1013,  1013,  1014,  1014,  1014,  1014,  1014,  1014,  1014,  1014,
+    1014,  1014,  1015,  1014,  1014,  1016,  1014,  1017,  1014,  1014,
+    1014,  1014,  1018,  1019,  1019,  1021,  1020,  1022,  1022,  1022,
+    1024,  1023,  1025,  1026,  1025,  1027,  1027,  1028,  1029,  1029,
+    1030,  1031,  1031,  1031,  1032,  1031,  1033,  1034,  1031,  1031,
+    1031,  1031,  1031,  1031,  1031,  1031,  1031,  1031,  1031,  1031,
+    1031,  1031,  1035,  1035,  1036,  1036,  1038,  1037,  1039,  1039,
+    1040,  1040,  1041,  1041,  1042,  1042,  1042,  1043,  1043,  1043,
+    1044,  1044,  1044,  1044,  1046,  1045,  1045,  1047,  1045,  1045,
+    1048,  1049,  1049,  1051,  1050,  1052,  1052,  1053,  1053,  1053,
+    1054,  1054,  1055,  1055,  1057,  1056,  1058,  1058,  1058,  1060,
+    1059,  1061,  1061,  1062,  1062,  1063,  1063,  1063,  1063,  1065,
+    1064,  1066,  1068,  1067,  1069,  1069,  1070,  1070,  1071,  1071,
+    1071,  1071,  1071,  1071,  1073,  1072,  1074,  1074,  1074,  1076,
+    1075,  1075,  1077,  1077,  1078,  1078,  1079,  1081,  1080,  1082,
+    1082,  1083,  1083,  1084,  1085,  1086,  1086,  1088,  1087,  1089,
+    1089,  1090,  1090,  1091,  1092,  1094,  1093,  1096,  1095,  1097,
+    1097,  1098,  1098,  1099,  1100,  1100,  1101,  1101,  1102,  1102,
+    1104,  1103,  1106,  1107,  1105,  1108,  1108,  1108,  1108,  1108,
+    1109,  1109,  1110,  1110,  1111,  1111,  1112,  1112,  1112,  1113,
+    1113,  1113,  1114,  1114,  1114,  1115,  1115,  1116,  1117,  1118,
+    1118,  1118,  1118,  1118,  1119,  1119,  1119,  1120,  1120,  1121,
+    1121,  1121,  1121,  1121,  1121,  1121,  1121,  1121,  1121,  1121,
+    1122,  1122,  1122,  1122,  1122,  1122,  1123,  1123,  1123,  1123,
     1123,  1123,  1123,  1123,  1123,  1123,  1123,  1123,  1123,  1123,
-    1123,  1123,  1123,  1123,  1124,  1124,  1125,  1125,  1126,  1126,
-    1127,  1127,  1128,  1128,  1128,  1128,  1128,  1128,  1129,  1129,
-    1130,  1130,  1131,  1131,  1131,  1131,  1131,  1131,  1131,  1131,
-    1131,  1131,  1131,  1132,  1133,  1133,  1134,  1134,  1134,  1134,
-    1134,  1134,  1134,  1134,  1134,  1134,  1134,  1134,  1134,  1134,
-    1134,  1134,  1134,  1134,  1134,  1134,  1134,  1134,  1134,  1134,
-    1134,  1134,  1134,  1134,  1134,  1134,  1135,  1135,  1135,  1135,
+    1124,  1124,  1124,  1124,  1124,  1124,  1124,  1124,  1124,  1124,
+    1124,  1124,  1124,  1124,  1124,  1125,  1125,  1126,  1126,  1127,
+    1127,  1128,  1128,  1129,  1129,  1129,  1129,  1129,  1129,  1130,
+    1130,  1131,  1131,  1132,  1132,  1132,  1132,  1132,  1132,  1132,
+    1132,  1132,  1132,  1132,  1133,  1134,  1134,  1135,  1135,  1135,
     1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,
     1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,  1135,
-    1135,  1135,  1135,  1136,  1136,  1136,  1136,  1136,  1136,  1136,
+    1135,  1135,  1135,  1135,  1135,  1135,  1135,  1136,  1136,  1136,
     1136,  1136,  1136,  1136,  1136,  1136,  1136,  1136,  1136,  1136,
     1136,  1136,  1136,  1136,  1136,  1136,  1136,  1136,  1136,  1136,
-    1136,  1137,  1137,  1137,  1137,  1137,  1137,  1137,  1137,  1137,
-    1137,  1137,  1137,  1137,  1137,  1137,  1137,  1137,  1137,  1138,
-    1138,  1138,  1138,  1138,  1138,  1138,  1138,  1140,  1139,  1139,
-    1141,  1141,  1142,  1142,  1143,  1143,  1144,  1144,  1145,  1145,
-    1146,  1147,  1147,  1147,  1147,  1147,  1147,  1147,  1148,  1149,
-    1147,  1147,  1147,  1147,  1147,  1147,  1147,  1147,  1147,  1147,
-    1147,  1150,  1147,  1152,  1151,  1153,  1153,  1153,  1154,  1154,
-    1155,  1155,  1156,  1157,  1156,  1158,  1158,  1160,  1159,  1161,
-    1161,  1161,  1161,  1161,  1161,  1161,  1161,  1161,  1161,  1161,
-    1161,  1162,  1161,  1163,  1163,  1164,  1164,  1165,  1165,  1166,
-    1166,  1167,  1167,  1168,  1168,  1169,  1169,  1170,  1170,  1171,
-    1172,  1172,  1173,  1173,  1174,  1174,  1175,  1174,  1176,  1174,
-    1177,  1174,  1174,  1178,  1174,  1179,  1174,  1174,  1180,  1174,
-    1181,  1174,  1174,  1182,  1182,  1182,  1184,  1183,  1183,  1183,
-    1185,  1186,  1187,  1185,  1188,  1190,  1191,  1189,  1193,  1192,
-    1195,  1196,  1194,  1197,  1198,  1199,  1199,  1200,  1200,  1200,
-    1200,  1201,  1201,  1203,  1202,  1204,  1202,  1205,  1205,  1206,
-    1207,  1206,  1209,  1208,  1210,  1210,  1211,  1211,  1212,  1212,
-    1213,  1213,  1214,  1214,  1214,  1214,  1214,  1214,  1214,  1214,
-    1214,  1214,  1214,  1214,  1215,  1215,  1215,  1215,  1215,  1215,
-    1215,  1215,  1215,  1216,  1216,  1216,  1216,  1217,  1217,  1217,
-    1218,  1218,  1219,  1219,  1220,  1221,  1220,  1222,  1223,  1222,
-    1224,  1224,  1225,  1225,  1226,  1226,  1227,  1227,  1227,  1228,
-    1229,  1229,  1230,  1231,  1231,  1233,  1232,  1234,  1234,  1235,
-    1235,  1235,  1236,  1236,  1237,  1237,  1238,  1238,  1238,  1239,
-    1239,  1239,  1240,  1240,  1240,  1240,  1240,  1241,  1242,  1242,
-    1242,  1242,  1243,  1243,  1243,  1244,  1244,  1244,  1244,  1244,
-    1244,  1245,  1245,  1245,  1245,  1245,  1246,  1246,  1246,  1246,
-    1246,  1247,  1247,  1247,  1247,  1247,  1248,  1249,  1249,  1250,
-    1250,  1251,  1252,  1251,  1253,  1253,  1254,  1254,  1255,  1257,
-    1256,  1258,  1258,  1259,  1259,  1261,  1260,  1263,  1264,  1262,
-    1262,  1262,  1266,  1265,  1268,  1267,  1269,  1267,  1267,  1267,
-    1267,  1267,  1267,  1270,  1267,  1267,  1267,  1267,  1267,  1267,
-    1271,  1271,  1272,  1273,  1273,  1274,  1275,  1275,  1276,  1276,
-    1278,  1279,  1277,  1281,  1282,  1280,  1283,  1283,  1283,  1283,
-    1284,  1284,  1285,  1285,  1286,  1287,  1287,  1287,  1288,  1287,
-    1289,  1289,  1290,  1290,  1291,  1290,  1292,  1290,  1293,  1293,
-    1294,  1294,  1295,  1296,  1296,  1297,  1297,  1299,  1298,  1300,
-    1300,  1301,  1301,  1302,  1302,  1303,  1304,  1303,  1306,  1307,
-    1305,  1308,  1308,  1309,  1310,  1310,  1311,  1312,  1312,  1314,
-    1313,  1316,  1315,  1317,  1315,  1318,  1315,  1319,  1319,  1320,
-    1320,  1321,  1321,  1322,  1322,  1323,  1323,  1323,  1325,  1324,
-    1326,  1326,  1327,  1327,  1328,  1328,  1329,  1329,  1329,  1329,
-    1329,  1329,  1329,  1329,  1329,  1330,  1330,  1332,  1331,  1333,
-    1333,  1333,  1333,  1333,  1333,  1333,  1333,  1333,  1333,  1333,
-    1333,  1334,  1333,  1335,  1333,  1333,  1333,  1333,  1333,  1333,
-    1333,  1333,  1333,  1333,  1333,  1333,  1333,  1333,  1333,  1333,
-    1333,  1333,  1333,  1333,  1333,  1333,  1333,  1333,  1333,  1333,
-    1333,  1333,  1333,  1333,  1333,  1333,  1333,  1333,  1333,  1333,
-    1336,  1336,  1336,  1337,  1337,  1338,  1338,  1339,  1339,  1340,
-    1340,  1341,  1341,  1342,  1342,  1343,  1343,  1344,  1344,  1344,
-    1346,  1345,  1347,  1345,  1348,  1348,  1349,  1349,  1349,  1350,
-    1350,  1350,  1352,  1351,  1354,  1355,  1353,  1353,  1356,  1356,
-    1357,  1357,  1358,  1358,  1358,  1358,  1358,  1358,  1358,  1358,
-    1358,  1358,  1358,  1358,  1358,  1358,  1358,  1358,  1358,  1358,
-    1358,  1359,  1359,  1360,  1360,  1362,  1361,  1363,  1363,  1365,
-    1364,  1364,  1364,  1366,  1366,  1368,  1367,  1369,  1370,  1370,
-    1372,  1371,  1373,  1373,  1373,  1374,  1374,  1374,  1375,  1375,
-    1376,  1378,  1379,  1380,  1381,  1377,  1382,  1382,  1383,  1383,
-    1384,  1384,  1384,  1385,  1385,  1385,  1386,  1386,  1387,  1387,
-    1388,  1388,  1388,  1388,  1389,  1389,  1390,  1390,  1391,  1391,
-    1392,  1392,  1393,  1393,  1394,  1394,  1395,  1395,  1395,  1396,
-    1396,  1397,  1397,  1398,  1398,  1399,  1399,  1400,  1401,  1401,
-    1401,  1401,  1402,  1402,  1402,  1402,  1403,  1404,  1404,  1404,
-    1405,  1405,  1405,  1405,  1405,  1405,  1405,  1405,  1405,  1405,
-    1405,  1405,  1405,  1406,  1406,  1406,  1406,  1406,  1407,  1407,
-    1408,  1408,  1409,  1410,  1410,  1411,  1411,  1412,  1412,  1412,
-    1413,  1413,  1413,  1413,  1414,  1414,  1414,  1415,  1415,  1416,
-    1417,  1417,  1418,  1419,  1420,  1421,  1421,  1422,  1422,  1423,
-    1423,  1423,  1424,  1424,  1424,  1425,  1425,  1425,  1425,  1425,
-    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
-    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
-    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
-    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
-    1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,  1425,
-    1425,  1425,  1425,  1425,  1426,  1426,  1426,  1426,  1426,  1426,
+    1136,  1136,  1136,  1136,  1137,  1137,  1137,  1137,  1137,  1137,
+    1137,  1137,  1137,  1137,  1137,  1137,  1137,  1137,  1137,  1137,
+    1137,  1137,  1137,  1137,  1137,  1137,  1137,  1137,  1137,  1137,
+    1137,  1137,  1138,  1138,  1138,  1138,  1138,  1138,  1138,  1138,
+    1138,  1138,  1138,  1138,  1138,  1138,  1138,  1138,  1138,  1138,
+    1139,  1139,  1139,  1139,  1139,  1139,  1139,  1139,  1141,  1140,
+    1140,  1142,  1142,  1143,  1143,  1144,  1144,  1145,  1145,  1146,
+    1146,  1147,  1148,  1148,  1148,  1148,  1148,  1148,  1148,  1149,
+    1150,  1148,  1148,  1148,  1148,  1148,  1148,  1148,  1148,  1148,
+    1148,  1148,  1151,  1148,  1153,  1152,  1154,  1154,  1154,  1155,
+    1155,  1156,  1156,  1157,  1158,  1157,  1159,  1159,  1161,  1160,
+    1162,  1162,  1162,  1162,  1162,  1162,  1162,  1162,  1162,  1162,
+    1162,  1162,  1163,  1162,  1164,  1164,  1165,  1165,  1166,  1166,
+    1167,  1167,  1168,  1168,  1169,  1169,  1170,  1170,  1171,  1171,
+    1172,  1173,  1173,  1174,  1174,  1175,  1175,  1176,  1175,  1177,
+    1175,  1178,  1175,  1175,  1179,  1175,  1180,  1175,  1175,  1181,
+    1175,  1182,  1175,  1175,  1183,  1183,  1183,  1185,  1184,  1184,
+    1184,  1186,  1187,  1188,  1186,  1189,  1191,  1192,  1190,  1194,
+    1193,  1196,  1197,  1195,  1198,  1199,  1200,  1200,  1201,  1201,
+    1201,  1201,  1202,  1202,  1204,  1203,  1205,  1203,  1206,  1206,
+    1207,  1208,  1207,  1210,  1209,  1211,  1211,  1212,  1212,  1213,
+    1213,  1214,  1214,  1215,  1215,  1215,  1215,  1215,  1215,  1215,
+    1215,  1215,  1215,  1215,  1215,  1216,  1216,  1216,  1216,  1216,
+    1216,  1216,  1216,  1216,  1217,  1217,  1217,  1217,  1218,  1218,
+    1218,  1219,  1219,  1220,  1220,  1221,  1222,  1221,  1223,  1224,
+    1223,  1225,  1225,  1226,  1226,  1227,  1227,  1228,  1228,  1228,
+    1229,  1230,  1230,  1231,  1232,  1232,  1234,  1233,  1235,  1235,
+    1236,  1236,  1236,  1237,  1237,  1238,  1238,  1239,  1239,  1239,
+    1240,  1240,  1240,  1241,  1241,  1241,  1241,  1241,  1242,  1243,
+    1243,  1243,  1243,  1244,  1244,  1244,  1245,  1245,  1245,  1245,
+    1245,  1245,  1246,  1246,  1246,  1246,  1246,  1247,  1247,  1247,
+    1247,  1247,  1248,  1248,  1248,  1248,  1248,  1249,  1250,  1250,
+    1251,  1251,  1252,  1253,  1252,  1254,  1254,  1255,  1255,  1256,
+    1258,  1257,  1259,  1259,  1260,  1260,  1262,  1261,  1264,  1265,
+    1263,  1263,  1263,  1267,  1266,  1269,  1268,  1270,  1268,  1268,
+    1268,  1268,  1268,  1268,  1271,  1268,  1268,  1268,  1268,  1268,
+    1268,  1272,  1272,  1273,  1274,  1274,  1275,  1276,  1276,  1277,
+    1277,  1279,  1280,  1278,  1282,  1283,  1281,  1284,  1284,  1284,
+    1284,  1285,  1285,  1286,  1286,  1287,  1288,  1288,  1288,  1289,
+    1288,  1290,  1290,  1291,  1291,  1292,  1291,  1293,  1291,  1294,
+    1294,  1295,  1295,  1296,  1297,  1297,  1298,  1298,  1300,  1299,
+    1301,  1301,  1302,  1302,  1303,  1303,  1304,  1305,  1304,  1307,
+    1308,  1306,  1309,  1309,  1310,  1311,  1311,  1312,  1313,  1313,
+    1315,  1314,  1317,  1316,  1318,  1316,  1319,  1316,  1320,  1320,
+    1321,  1321,  1322,  1322,  1323,  1323,  1324,  1324,  1324,  1326,
+    1325,  1327,  1327,  1328,  1328,  1329,  1329,  1330,  1330,  1330,
+    1330,  1330,  1330,  1330,  1330,  1330,  1331,  1331,  1333,  1332,
+    1334,  1334,  1334,  1334,  1334,  1334,  1334,  1334,  1334,  1334,
+    1334,  1334,  1335,  1334,  1336,  1334,  1334,  1334,  1334,  1334,
+    1334,  1334,  1334,  1334,  1334,  1334,  1334,  1334,  1334,  1334,
+    1334,  1334,  1334,  1334,  1334,  1334,  1334,  1334,  1334,  1334,
+    1334,  1334,  1334,  1334,  1334,  1334,  1334,  1334,  1334,  1334,
+    1334,  1337,  1337,  1337,  1338,  1338,  1339,  1339,  1340,  1340,
+    1341,  1341,  1342,  1342,  1343,  1343,  1344,  1344,  1345,  1345,
+    1345,  1347,  1346,  1348,  1346,  1349,  1349,  1350,  1350,  1350,
+    1351,  1351,  1351,  1353,  1352,  1355,  1356,  1354,  1354,  1357,
+    1357,  1358,  1358,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+    1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,  1359,
+    1359,  1359,  1360,  1360,  1361,  1361,  1363,  1362,  1364,  1364,
+    1366,  1365,  1365,  1365,  1367,  1367,  1369,  1368,  1370,  1371,
+    1371,  1373,  1372,  1374,  1374,  1374,  1375,  1375,  1375,  1376,
+    1376,  1377,  1379,  1380,  1381,  1382,  1378,  1383,  1383,  1384,
+    1384,  1385,  1385,  1385,  1386,  1386,  1386,  1387,  1387,  1388,
+    1388,  1389,  1389,  1389,  1389,  1390,  1390,  1391,  1391,  1392,
+    1392,  1393,  1393,  1394,  1394,  1395,  1395,  1396,  1396,  1396,
+    1397,  1397,  1398,  1398,  1399,  1399,  1400,  1400,  1401,  1402,
+    1402,  1402,  1402,  1403,  1403,  1403,  1403,  1404,  1405,  1405,
+    1405,  1406,  1406,  1406,  1406,  1406,  1406,  1406,  1406,  1406,
+    1406,  1406,  1406,  1406,  1407,  1407,  1407,  1407,  1407,  1408,
+    1408,  1409,  1409,  1410,  1411,  1411,  1412,  1412,  1413,  1413,
+    1413,  1414,  1414,  1414,  1414,  1415,  1415,  1415,  1416,  1416,
+    1417,  1418,  1418,  1419,  1420,  1421,  1422,  1422,  1423,  1423,
+    1424,  1424,  1424,  1425,  1425,  1425,  1426,  1426,  1426,  1426,
     1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
     1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
     1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
     1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
     1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,  1426,
-    1426,  1426,  1426,  1426,  1426,  1426,  1428,  1427,  1429,  1429,
-    1430,  1430,  1432,  1431,  1433,  1433,  1433,  1433,  1434,  1434,
-    1435,  1435,  1435,  1435,  1436,  1436,  1436,  1436,  1437,  1437,
-    1438,  1438,  1439,  1439,  1439,  1439,  1439,  1439,  1439,  1440,
-    1440,  1440,  1441,  1441,  1441,  1441,  1442,  1442,  1442,  1443,
-    1443,  1443,  1443,  1443,  1445,  1444,  1446,  1446,  1447,  1447,
-    1448,  1449,  1449,  1449,  1449,  1449,  1451,  1450,  1452,  1452,
-    1453,  1452,  1454,  1454,  1455,  1455,  1456,  1456,  1456,  1456,
-    1457,  1456,  1458,  1458,  1458,  1458,  1458,  1459,  1460,  1460,
-    1460,  1460,  1460,  1461,  1462,  1462,  1462,  1462,  1463,  1463,
-    1464,  1464,  1465,  1465,  1466,  1466,  1468,  1467,  1469,  1467,
-    1470,  1467,  1471,  1467,  1467,  1467,  1467,  1467,  1467,  1467,
-    1467,  1467,  1467,  1467,  1467,  1467,  1467,  1467,  1467,  1467,
-    1467,  1467,  1467,  1467,  1467,  1467,  1467,  1467,  1467,  1467,
-    1472,  1472,  1473,  1473,  1474,  1474,  1474,  1475,  1475,  1475,
-    1475,  1476,  1476,  1477,  1477,  1478,  1478,  1479,  1479,  1480,
-    1480,  1480,  1480,  1480,  1481,  1481,  1482,  1482,  1483,  1484,
-    1484,  1484,  1484,  1484,  1485,  1485,  1486,  1486,  1487,  1487,
-    1488,  1488,  1488,  1488,  1488,  1490,  1489,  1491,  1491,  1492,
-    1492,  1492,  1493,  1493,  1493,  1494,  1494,  1495,  1496,  1496,
-    1497,  1498,  1499,  1499,  1501,  1500,  1502,  1502,  1502,  1503,
-    1503,  1505,  1504,  1506,  1506,  1507,  1507,  1507,  1508,  1508,
-    1509,  1510,  1509,  1511,  1512,  1513,  1514,  1514,  1515,  1515,
-    1516,  1516,  1516,  1516,  1516,  1516,  1516,  1516,  1517,  1517,
-    1517,  1518,  1518,  1518,  1518,  1518,  1519,  1519,  1519,  1519,
-    1519,  1519,  1520,  1520,  1521,  1522,  1523,  1523,  1523,  1524,
-    1525,  1525,  1525,  1526,  1526,  1526,  1528,  1527,  1529,  1529,
-    1530,  1530,  1532,  1531,  1533,  1533,  1534,  1534,  1534,  1534,
-    1536,  1537,  1538,  1535,  1539,  1539,  1541,  1542,  1543,  1544,
-    1545,  1540,  1547,  1548,  1549,  1550,  1546,  1551,  1551,  1551,
-    1551,  1551,  1551,  1552,  1552,  1552,  1553,  1553,  1554,  1554,
-    1554,  1555,  1555,  1556,  1557,  1556,  1558,  1558,  1559,  1559,
-    1560,  1560,  1561
+    1426,  1426,  1426,  1426,  1426,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,
+    1427,  1427,  1427,  1427,  1427,  1427,  1427,  1427,  1429,  1428,
+    1430,  1430,  1431,  1431,  1433,  1432,  1434,  1434,  1434,  1434,
+    1435,  1435,  1436,  1436,  1436,  1436,  1437,  1437,  1437,  1437,
+    1438,  1438,  1439,  1439,  1440,  1440,  1440,  1440,  1440,  1440,
+    1440,  1441,  1441,  1441,  1442,  1442,  1442,  1442,  1443,  1443,
+    1443,  1444,  1444,  1444,  1444,  1444,  1446,  1445,  1447,  1447,
+    1448,  1448,  1449,  1449,  1450,  1451,  1451,  1451,  1451,  1451,
+    1453,  1452,  1454,  1454,  1455,  1454,  1456,  1456,  1457,  1457,
+    1458,  1458,  1458,  1458,  1459,  1458,  1460,  1460,  1460,  1460,
+    1460,  1461,  1462,  1462,  1462,  1462,  1462,  1463,  1464,  1464,
+    1464,  1464,  1465,  1465,  1466,  1466,  1467,  1467,  1468,  1468,
+    1470,  1469,  1471,  1469,  1472,  1469,  1473,  1469,  1469,  1469,
+    1469,  1469,  1469,  1469,  1469,  1469,  1469,  1469,  1469,  1469,
+    1469,  1469,  1469,  1469,  1469,  1469,  1469,  1469,  1469,  1469,
+    1469,  1469,  1469,  1469,  1474,  1474,  1475,  1475,  1476,  1476,
+    1476,  1477,  1477,  1477,  1477,  1478,  1478,  1479,  1479,  1480,
+    1480,  1481,  1481,  1482,  1482,  1482,  1482,  1482,  1483,  1483,
+    1484,  1484,  1485,  1486,  1486,  1486,  1486,  1486,  1487,  1487,
+    1488,  1488,  1489,  1489,  1490,  1490,  1490,  1490,  1490,  1492,
+    1491,  1493,  1493,  1494,  1494,  1494,  1495,  1495,  1495,  1496,
+    1496,  1497,  1498,  1498,  1499,  1500,  1501,  1501,  1503,  1502,
+    1504,  1504,  1504,  1505,  1505,  1507,  1506,  1508,  1508,  1509,
+    1509,  1509,  1510,  1510,  1511,  1512,  1511,  1513,  1514,  1515,
+    1516,  1516,  1517,  1517,  1518,  1518,  1518,  1518,  1518,  1518,
+    1518,  1518,  1519,  1519,  1519,  1520,  1520,  1520,  1520,  1520,
+    1521,  1521,  1521,  1521,  1521,  1521,  1522,  1522,  1523,  1524,
+    1525,  1525,  1525,  1526,  1527,  1527,  1527,  1528,  1528,  1528,
+    1530,  1529,  1531,  1531,  1532,  1532,  1534,  1533,  1535,  1535,
+    1536,  1536,  1536,  1536,  1538,  1539,  1540,  1537,  1541,  1541,
+    1543,  1544,  1545,  1546,  1547,  1542,  1549,  1550,  1551,  1552,
+    1548,  1553,  1553,  1553,  1553,  1553,  1553,  1554,  1554,  1554,
+    1555,  1555,  1556,  1556,  1556,  1557,  1557,  1558,  1559,  1558,
+    1560,  1560,  1561,  1561,  1562,  1562,  1563
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -4573,103 +4576,103 @@ static const yytype_uint8 yyr2[] =
        0,     1,     1,     1,     0,     5,     3,     0,     5,     3,
        3,     0,     3,     0,     2,     1,     3,     0,     1,     1,
        0,     2,     1,     3,     0,     5,     0,     1,     1,     0,
-       6,     0,     1,     1,     2,     1,     1,     1,     0,     5,
-       2,     0,     5,     0,     1,     1,     2,     1,     1,     1,
-       1,     1,     2,     0,     5,     0,     1,     1,     0,     4,
-       4,     3,     5,     1,     3,     3,     0,     6,     1,     1,
-       1,     3,     2,     3,     1,     1,     0,     6,     1,     1,
-       1,     3,     3,     4,     0,     6,     0,     2,     0,     4,
-       0,     2,     1,     2,     4,     2,     3,     2,     3,     0,
-       3,     0,     0,     6,     2,     1,     1,     2,     2,     8,
-       4,     0,     1,     2,     1,     1,     1,     1,     0,     2,
-       4,     3,     1,     1,     3,     4,     0,     0,     0,     2,
-       2,     1,     1,     0,     2,     3,     0,     2,     3,     3,
-       3,     2,     3,     4,     3,     4,     3,     4,     1,     3,
-       4,     3,     3,     6,     1,     5,     6,     5,     7,     6,
-       8,     5,     6,     4,     4,     5,     3,     4,     1,     3,
-       3,     3,     3,     3,     3,     5,     5,     3,     3,     3,
-       3,     3,     3,     1,     1,     1,     1,     1,     1,     1,
+       6,     0,     1,     1,     2,     1,     1,     1,     2,     0,
+       5,     2,     0,     5,     0,     1,     1,     2,     1,     1,
+       1,     1,     1,     2,     0,     5,     0,     1,     1,     0,
+       4,     4,     3,     5,     1,     3,     3,     0,     6,     1,
+       1,     1,     3,     2,     3,     1,     1,     0,     6,     1,
+       1,     1,     3,     3,     4,     0,     6,     0,     2,     0,
+       4,     0,     2,     1,     2,     4,     2,     3,     2,     3,
+       0,     3,     0,     0,     6,     2,     1,     1,     2,     2,
+       8,     4,     0,     1,     2,     1,     1,     1,     1,     0,
+       2,     4,     3,     1,     1,     3,     4,     0,     0,     0,
+       2,     2,     1,     1,     0,     2,     3,     0,     2,     3,
+       3,     3,     2,     3,     4,     3,     4,     3,     4,     1,
+       3,     4,     3,     3,     6,     1,     5,     6,     5,     7,
+       6,     8,     5,     6,     4,     4,     5,     3,     4,     1,
+       3,     3,     3,     3,     3,     3,     5,     5,     3,     3,
+       3,     3,     3,     3,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       0,     2,     1,     2,     1,     1,     1,     2,     2,     1,
-       1,     2,     2,     4,     1,     3,     1,     1,     1,     1,
-       1,     3,     1,     1,     1,     1,     3,     2,     2,     2,
-       2,     3,     3,     5,     6,     4,     4,     7,     2,     6,
-       5,     6,     6,     4,     4,     5,     4,     6,     2,     4,
-       4,     4,    10,     6,     8,     6,     4,     4,     6,     4,
-       4,     4,     6,     4,     7,     7,     7,     6,     6,     6,
-       6,     3,     4,     6,     8,     2,     2,     8,     8,     6,
-       6,     2,     6,     6,     8,     8,     6,     8,     6,     2,
-       8,     8,     2,     2,     2,     6,     6,     6,     4,     4,
-       8,     4,     4,     4,     4,     3,     8,     4,     4,     6,
-       4,     4,     4,     6,     8,     6,     4,     6,     1,     6,
-       4,     4,     4,     4,     4,     6,     4,     0,     5,     6,
-       2,     3,     0,     4,     0,     3,     0,     1,     1,     3,
-       4,     4,     5,     4,     4,     4,     5,     4,     0,     0,
-       7,     4,     5,     4,     5,     4,     4,     4,     4,     4,
-       5,     0,     8,     0,     3,     3,     1,     4,     0,     1,
-       0,     2,     0,     0,     4,     4,     2,     0,     3,     2,
-       3,     2,     1,     1,     2,     1,     2,     1,     2,     2,
-       2,     0,     3,     0,     1,     1,     3,     1,     3,     1,
-       3,     0,     1,     0,     2,     4,     5,     1,     1,     1,
-       1,     4,     1,     3,     3,     3,     0,     6,     0,     6,
-       0,     8,     4,     0,     8,     0,    10,     6,     0,     8,
-       0,    10,     6,     1,     2,     2,     0,     4,     3,     5,
-       2,     0,     0,     7,     1,     0,     0,     6,     0,     3,
-       0,     0,     5,     0,     1,     0,     1,     0,     2,     3,
-       3,     1,     1,     0,     7,     0,     7,     1,     2,     0,
-       0,     2,     0,     2,     0,     1,     1,     1,     1,     3,
-       1,     3,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     0,     2,     1,     2,     1,     1,     1,     2,     2,
+       1,     1,     2,     2,     4,     1,     3,     1,     1,     1,
+       1,     1,     3,     1,     1,     1,     1,     3,     2,     2,
+       2,     2,     3,     3,     5,     6,     4,     4,     7,     2,
+       6,     5,     6,     6,     4,     4,     5,     4,     6,     2,
+       4,     4,     4,    10,     6,     8,     6,     4,     4,     6,
+       4,     4,     4,     6,     4,     7,     7,     7,     6,     6,
+       6,     6,     3,     4,     6,     8,     2,     2,     8,     8,
+       6,     6,     2,     6,     6,     8,     8,     6,     8,     6,
+       2,     8,     8,     2,     2,     2,     6,     6,     6,     4,
+       4,     8,     4,     4,     4,     4,     3,     8,     4,     4,
+       6,     4,     4,     4,     6,     8,     6,     4,     6,     1,
+       6,     4,     4,     4,     4,     4,     6,     4,     0,     5,
+       6,     2,     3,     0,     4,     0,     3,     0,     1,     1,
+       3,     4,     4,     5,     4,     4,     4,     5,     4,     0,
+       0,     7,     4,     5,     4,     5,     4,     4,     4,     4,
+       4,     5,     0,     8,     0,     3,     3,     1,     4,     0,
+       1,     0,     2,     0,     0,     4,     4,     2,     0,     3,
+       2,     3,     2,     1,     1,     2,     1,     2,     1,     2,
+       2,     2,     0,     3,     0,     1,     1,     3,     1,     3,
+       1,     3,     0,     1,     0,     2,     4,     5,     1,     1,
+       1,     1,     4,     1,     3,     3,     3,     0,     6,     0,
+       6,     0,     8,     4,     0,     8,     0,    10,     6,     0,
+       8,     0,    10,     6,     1,     2,     2,     0,     4,     3,
+       5,     2,     0,     0,     7,     1,     0,     0,     6,     0,
+       3,     0,     0,     5,     0,     1,     0,     1,     0,     2,
+       3,     3,     1,     1,     0,     7,     0,     7,     1,     2,
+       0,     0,     2,     0,     2,     0,     1,     1,     1,     1,
+       3,     1,     3,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     1,     0,     1,     1,
-       0,     2,     0,     1,     0,     0,     3,     0,     0,     3,
-       2,     0,     0,     4,     4,     2,     0,     1,     1,     3,
-       3,     1,     2,     0,     1,     0,     4,     4,     2,     0,
-       1,     1,     0,     1,     0,     1,     2,     5,     4,     1,
-       3,     3,     1,     1,     1,     1,     1,     1,     0,     2,
-       3,     4,     1,     2,     2,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     1,
+       1,     0,     2,     0,     1,     0,     0,     3,     0,     0,
+       3,     2,     0,     0,     4,     4,     2,     0,     1,     1,
+       3,     3,     1,     2,     0,     1,     0,     4,     4,     2,
+       0,     1,     1,     0,     1,     0,     1,     2,     5,     4,
+       1,     3,     3,     1,     1,     1,     1,     1,     1,     0,
+       2,     3,     4,     1,     2,     2,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     0,     0,     6,     0,     1,     3,     1,     3,     0,
-       2,     3,     1,     2,     1,     0,     3,     0,     0,     7,
-       2,     1,     0,     3,     0,     7,     0,     6,     4,     6,
-       4,     4,     4,     0,     6,     4,     4,     5,     6,     4,
-       1,     3,     1,     1,     3,     1,     0,     2,     0,     1,
-       0,     0,     8,     0,     0,     6,     0,     1,     1,     1,
-       1,     1,     2,     1,     1,     1,     3,     4,     0,     3,
-       3,     1,     2,     2,     0,     3,     0,     5,     3,     1,
-       3,     1,     3,     1,     1,     0,     1,     0,     4,     0,
-       1,     3,     1,     1,     1,     0,     0,     6,     0,     0,
-      11,     3,     1,     3,     3,     1,     3,     0,     1,     0,
-       4,     0,     6,     0,     5,     0,     6,     1,     3,     2,
-       4,     0,     2,     0,     2,     1,     1,     1,     0,     4,
-       0,     1,     0,     1,     1,     3,     1,     1,     2,     2,
-       2,     1,     1,     1,     1,     0,     3,     0,     3,     2,
-       4,     4,     3,     4,     4,     1,     3,     3,     6,     2,
-       2,     0,     6,     0,     6,     5,     2,     1,     1,     1,
-       5,     5,     2,     2,     1,     4,     3,     2,     3,     2,
-       2,     1,     3,     4,     3,     3,     2,     2,     1,     1,
-       1,     1,     3,     3,     3,     3,     3,     3,     3,     3,
-       1,     1,     1,     1,     1,     0,     1,     0,     2,     0,
-       1,     1,     1,     0,     2,     0,     2,     0,     2,     2,
-       0,     4,     0,     4,     1,     1,     0,     1,     1,     0,
-       1,     1,     0,     4,     0,     0,     5,     1,     0,     4,
-       3,     1,     2,     2,     2,     2,     2,     2,     2,     1,
+       1,     1,     0,     0,     6,     0,     1,     3,     1,     3,
+       0,     2,     3,     1,     2,     1,     0,     3,     0,     0,
+       7,     2,     1,     0,     3,     0,     7,     0,     6,     4,
+       6,     4,     4,     4,     0,     6,     4,     4,     5,     6,
+       4,     1,     3,     1,     1,     3,     1,     0,     2,     0,
+       1,     0,     0,     8,     0,     0,     6,     0,     1,     1,
+       1,     1,     1,     2,     1,     1,     1,     3,     4,     0,
+       3,     3,     1,     2,     2,     0,     3,     0,     5,     3,
+       1,     3,     1,     3,     1,     1,     0,     1,     0,     4,
+       0,     1,     3,     1,     1,     1,     0,     0,     6,     0,
+       0,    11,     3,     1,     3,     3,     1,     3,     0,     1,
+       0,     4,     0,     6,     0,     5,     0,     6,     1,     3,
+       2,     4,     0,     2,     0,     2,     1,     1,     1,     0,
+       4,     0,     1,     0,     1,     1,     3,     1,     1,     2,
+       2,     2,     1,     1,     1,     1,     0,     3,     0,     3,
+       2,     4,     4,     3,     4,     4,     1,     3,     3,     6,
+       2,     2,     0,     6,     0,     6,     5,     2,     1,     1,
+       1,     5,     5,     2,     2,     1,     4,     3,     2,     3,
+       2,     2,     1,     3,     4,     3,     3,     2,     2,     1,
+       1,     1,     1,     3,     3,     3,     3,     3,     3,     3,
+       3,     1,     1,     1,     1,     1,     0,     1,     0,     2,
+       0,     1,     1,     1,     0,     2,     0,     2,     0,     2,
+       2,     0,     4,     0,     4,     1,     1,     0,     1,     1,
+       0,     1,     1,     0,     4,     0,     0,     5,     1,     0,
+       4,     3,     1,     2,     2,     2,     2,     2,     2,     2,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     0,     1,     0,     3,     0,     3,     3,     1,     0,
-       3,     1,     2,     0,     1,     0,     3,     3,     2,     2,
-       0,     5,     0,     1,     1,     0,     1,     1,     1,     2,
-       2,     0,     0,     0,     0,    21,     1,     1,     0,     1,
-       0,     1,     1,     0,     1,     1,     0,     2,     2,     1,
-       3,     4,     3,     3,     0,     2,     2,     1,     3,     3,
-       0,     4,     0,     3,     1,     1,     0,     3,     2,     3,
-       1,     1,     2,     0,     2,     3,     1,     5,     1,     1,
-       2,     2,     1,     1,     1,     1,     1,     1,     2,     2,
-       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
-       2,     2,     2,     1,     1,     1,     1,     1,     1,     1,
-       3,     5,     1,     1,     1,     1,     1,     3,     4,     5,
-       1,     5,     3,     2,     1,     3,     2,     2,     4,     1,
+       1,     1,     0,     1,     0,     3,     0,     3,     3,     1,
+       0,     3,     1,     2,     0,     1,     0,     3,     3,     2,
+       2,     0,     5,     0,     1,     1,     0,     1,     1,     1,
+       2,     2,     0,     0,     0,     0,    21,     1,     1,     0,
+       1,     0,     1,     1,     0,     1,     1,     0,     2,     2,
+       1,     3,     4,     3,     3,     0,     2,     2,     1,     3,
+       3,     0,     4,     0,     3,     1,     1,     0,     3,     2,
+       3,     1,     1,     2,     0,     2,     3,     1,     5,     1,
+       1,     2,     2,     1,     1,     1,     1,     1,     1,     2,
+       2,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+       2,     2,     2,     2,     1,     1,     1,     1,     1,     1,
+       1,     3,     5,     1,     1,     1,     1,     1,     3,     4,
+       5,     1,     5,     3,     2,     1,     3,     2,     2,     4,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     3,     2,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     3,     2,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
@@ -4704,39 +4707,39 @@ static const yytype_uint8 yyr2[] =
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     1,     0,     4,     0,     1,
-       1,     3,     0,     2,     1,     1,     1,     1,     0,     1,
-       0,     1,     1,     1,     0,     2,     2,     2,     1,     2,
-       4,     5,     4,     6,     2,     3,     3,     3,     5,     1,
-       3,     3,     2,     2,     2,     1,     1,     4,     4,     1,
-       1,     1,     1,     1,     0,     4,     1,     1,     1,     3,
-       3,     1,     1,     2,     2,     2,     0,     3,     4,     3,
-       0,     7,     1,     2,     1,     1,     1,     1,     1,     1,
-       0,     5,     1,     1,     1,     1,     1,     3,     6,     6,
-       6,     7,     5,     3,     8,     8,     8,     6,     0,     1,
-       1,     2,     0,     1,     1,     3,     0,     3,     0,     3,
-       0,     3,     0,     3,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     1,     2,     2,     1,     3,     2,
-       2,     2,     2,     2,     2,     2,     2,     1,     1,     2,
-       0,     1,     3,     1,     2,     2,     2,     1,     3,     3,
-       1,     1,     3,     1,     3,     1,     1,     1,     1,     4,
-       5,     4,     6,     1,     0,     3,     3,     1,     1,     0,
-       2,     2,     2,     2,     0,     2,     0,     3,     2,     1,
-       2,     2,     2,     2,     2,     0,     3,     0,     1,     0,
-       3,     2,     0,     1,     2,     0,     1,     4,     4,     5,
-       2,     3,     0,     1,     0,     4,     0,     1,     1,     0,
-       1,     0,     2,     2,     1,     0,     1,     1,     2,     3,
-       2,     0,     6,     3,     0,     0,     0,     1,     2,     1,
-       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,
-       3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     1,     1,     0,     3,     1,     2,     1,     2,
-       3,     3,     3,     0,     3,     3,     0,     7,     0,     3,
-       1,     3,     0,     3,     2,     4,     0,     3,     4,     4,
-       0,     0,     0,    16,     8,     7,     0,     0,     0,     0,
-       0,    15,     0,     0,     0,     0,    12,     4,     4,     3,
-       4,     3,     2,     1,     3,     5,     1,     1,     0,     1,
-       1,     0,     2,     0,     0,     3,     0,     2,     5,     3,
-       3,     3,     1
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     4,
+       0,     1,     1,     3,     0,     2,     1,     1,     1,     1,
+       0,     1,     0,     1,     1,     1,     0,     2,     2,     2,
+       1,     2,     4,     5,     4,     6,     2,     3,     3,     3,
+       5,     1,     3,     3,     2,     2,     2,     1,     1,     4,
+       4,     1,     1,     1,     1,     1,     0,     4,     1,     1,
+       1,     1,     1,     3,     3,     1,     1,     2,     2,     2,
+       0,     3,     4,     3,     0,     7,     1,     2,     1,     1,
+       1,     1,     1,     1,     0,     5,     1,     1,     1,     1,
+       1,     3,     6,     6,     6,     7,     5,     3,     8,     8,
+       8,     6,     0,     1,     1,     2,     0,     1,     1,     3,
+       0,     3,     0,     3,     0,     3,     0,     3,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,
+       2,     1,     3,     2,     2,     2,     2,     2,     2,     2,
+       2,     1,     1,     2,     0,     1,     3,     1,     2,     2,
+       2,     1,     3,     3,     1,     1,     3,     1,     3,     1,
+       1,     1,     1,     4,     5,     4,     6,     1,     0,     3,
+       3,     1,     1,     0,     2,     2,     2,     2,     0,     2,
+       0,     3,     2,     1,     2,     2,     2,     2,     2,     0,
+       3,     0,     1,     0,     3,     2,     0,     1,     2,     0,
+       1,     4,     4,     5,     2,     3,     0,     1,     0,     4,
+       0,     1,     1,     0,     1,     0,     2,     2,     1,     0,
+       1,     1,     2,     3,     2,     0,     6,     3,     0,     0,
+       0,     1,     2,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     2,     2,     3,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     0,     3,
+       1,     2,     1,     2,     3,     3,     3,     0,     3,     3,
+       0,     7,     0,     3,     1,     3,     0,     3,     2,     4,
+       0,     3,     4,     4,     0,     0,     0,    16,     8,     7,
+       0,     0,     0,     0,     0,    15,     0,     0,     0,     0,
+      12,     4,     4,     3,     4,     3,     2,     1,     3,     5,
+       1,     1,     0,     1,     1,     0,     2,     0,     0,     3,
+       0,     2,     5,     3,     3,     3,     1
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -4744,1915 +4747,1922 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint16 yydefact[] =
 {
-       0,   956,  1025,  2495,     0,     0,     0,     0,     0,     0,
-    2497,   115,    64,  1669,  1784,  1785,  1582,  1608,     2,     0,
-    1025,   165,     0,    76,  1610,     0,  1840,     0,     0,  1025,
-       0,   444,     0,  1835,     0,     0,  1025,  1613,  1825,   239,
-     165,  2497,     0,  1071,  2318,  1707,     0,     0,     0,     0,
-    1690,     0,  2376,  1658,     0,     0,  2632,     0,     0,     3,
+       0,   956,  1026,  2499,     0,     0,     0,     0,     0,     0,
+    2501,   115,    64,  1670,  1785,  1786,  1583,  1609,     2,     0,
+    1026,   165,     0,    76,  1611,     0,  1841,     0,     0,  1026,
+       0,   444,     0,  1836,     0,     0,  1026,  1614,  1826,   239,
+     165,  2501,     0,  1072,  2320,  1708,     0,     0,     0,     0,
+    1691,     0,  2380,  1659,     0,     0,  2636,     0,     0,     3,
        8,    19,     0,    40,    24,    28,    14,    18,    13,    53,
       47,    38,    37,    10,    55,    56,    16,    44,    11,    12,
-      15,    36,    43,    32,    39,    51,  1062,    22,    23,    29,
-      45,    60,    20,    57,    54,    21,  1786,    25,    46,    41,
+      15,    36,    43,    32,    39,    51,  1063,    22,    23,    29,
+      45,    60,    20,    57,    54,    21,  1787,    25,    46,    41,
       33,    61,    34,    52,    35,    59,    27,    48,    26,     9,
       17,    49,    50,    42,    62,    30,    58,    31,     0,   890,
-       0,     0,     0,     0,     0,     0,     0,   958,   873,  2562,
-    2563,  2564,  1027,  1026,     0,  2497,  1952,  1010,  1036,  2024,
-    2025,  2026,  2027,  2028,  2029,  2030,  2031,  1966,  2032,  2033,
-    2035,  2034,  2036,  2037,  1967,  1968,  2038,  2039,  2040,  2042,
-    2041,  2043,  1969,  1970,  2044,  2045,  2046,  2047,  1971,  1973,
-    1972,  2048,  2051,  2050,  2049,  1974,  2052,  2053,  2054,  2056,
-    1975,  1976,  1977,  1978,  1979,  1980,  2055,  1981,  2057,  1982,
-    2058,  2059,  2060,  2061,  2062,  2063,  2064,  2066,  2065,  1983,
-    2067,  2068,  2069,  2070,  2071,  2073,  2072,  2074,  2075,  2076,
-    1984,  2077,  2078,  2079,  2080,  2081,  2082,  2083,  1985,  2084,
-    2085,  2086,  2103,  1986,  2087,  2090,  2089,  2088,  2091,  2092,
-    2093,  2095,  2094,  2096,  1987,  1988,  2097,  2098,  2099,  2101,
-    2100,  2105,  2106,  2107,  1989,  2102,  2104,  2294,  2108,  2109,
-    2111,  2110,  2112,  2114,  2113,  1990,  2116,  2115,  1991,  1992,
-    2117,  2118,  1950,  2119,  1951,  2120,  2123,  2124,  2121,  2125,
-    2130,  1993,  2122,  2126,  2127,  2128,  2129,  2131,  1994,  2133,
-    2132,  2134,  2135,  2136,  2137,  2138,  2139,  2140,  2141,  2142,
-    2153,  2146,  2148,  2149,  2151,  2147,  2152,  2156,  2155,  2157,
-    2158,  2159,  2154,  2144,  2150,  2145,  2160,  2161,  2143,  2162,
-    2163,  2164,  2165,  2166,  2167,  2168,  2169,  2170,  2171,  2172,
-    2174,  2173,  2175,  2176,  2177,  2178,  2179,  2180,  2182,  2181,
-    2183,  2184,  2185,  2187,  2186,  2189,  2190,  1995,  2188,  2191,
-    2192,  2193,  2194,  2195,  2196,  1996,  1998,  1997,  1999,  2197,
-    2198,  2000,  2199,  2200,  2201,  2001,  2202,  2203,  2204,  2206,
-    2205,  2207,  2208,  2002,  2003,  2209,  2210,  2211,  2212,  2213,
-    2214,  2215,  2216,  2217,  2218,  2219,  2220,  2221,  2222,  2224,
-    2223,  2225,  2226,  2227,  2228,  2229,  2230,  2231,  2004,  2232,
-    2005,  2233,  2234,  2006,  2235,  2007,  2236,  2237,  2008,  2238,
-    2239,  2240,  2241,  2242,  2243,  2009,  2244,  2245,  2246,  2010,
-    2248,  2247,  2249,  2011,  2251,  2252,  2012,  2250,  2014,  2253,
-    2254,  2013,  2255,  2015,  2256,  2257,  2259,  2258,  2260,  2261,
-    2262,  2016,  2263,  2017,  2264,  2265,  2266,  2267,  2268,  2270,
-    2269,  2271,  2272,  2273,  2274,  2277,  2279,  2276,  2278,  2275,
-    2280,  2281,  2282,  2283,  2287,  2288,  2289,  2290,  2284,  2285,
-    2286,  2018,  2291,  2292,  2293,  2295,  2296,  2298,  2297,  2019,
-    2020,  2299,  2300,  2023,  2301,  2302,  2303,  2307,  2304,  2315,
-    2305,  2306,  2309,  2308,  2310,  2311,  2021,  2312,  2022,  2313,
-    2314,   184,  1955,   167,  1956,  1965,     0,  2367,  2366,   994,
-    1011,  2498,  2499,   540,   819,     0,     0,   820,     0,   539,
-     818,   165,  2564,   120,     0,   536,   537,     0,     0,     0,
-    1683,     0,  1606,  1606,  1606,     0,     0,  1606,  1606,     0,
-    1609,  1606,   165,  1606,     0,    69,  1792,     0,     0,     0,
-       0,  1949,     0,  1616,     0,     0,  1842,  1856,     0,  1857,
-    1851,  2364,     0,  1096,     0,     0,     0,     0,   165,  1028,
-       0,  1667,     0,   229,   238,   240,   241,   237,     0,  2499,
-    2510,  1063,  1069,  1081,  2319,  2316,  1769,   241,   983,   983,
-     983,   981,   983,  1691,  1688,     0,     0,     0,  1667,  1850,
-    2616,     0,     0,     0,  2612,     0,  2617,     0,  1071,     0,
-       0,     1,     5,     0,     0,  2098,  2201,  1782,  1780,  1944,
-       0,   864,   891,     0,   869,     0,   867,  1961,  1960,  1959,
-       0,   880,   879,   877,     0,   405,     0,   962,   963,   957,
-     959,   961,     0,  2573,   871,  1008,  2496,     0,   186,     0,
-      78,     0,     0,     0,  2502,     0,     0,     0,     0,   119,
-       0,     0,     0,   116,  1096,  1096,  2564,  2566,  2568,   540,
-     538,     0,     0,     0,  1687,  1686,  1685,     0,  1683,  2025,
-    1966,  2037,     0,  1917,     0,     0,     0,  1371,     0,  1971,
-       0,  2052,  2054,  1975,  1976,  1977,  1978,  1979,  1980,  1983,
-       0,     0,  1106,  1106,  1103,     0,     0,     0,  2075,  2076,
-    1926,     0,     0,     0,  1913,  1927,  2111,  2112,     0,  1915,
-    1916,  2118,     0,     0,     0,  2132,     0,  2137,  1924,     0,
-       0,  2169,  2171,     0,     0,  2175,  2176,  2177,  2178,  1899,
-    1161,     0,  1103,  1912,  1923,  2193,  1906,  2202,  2207,  2208,
-       0,  2217,     0,     0,     0,  2242,  2246,     0,     0,  2267,
-       0,     0,  1103,  1898,  2287,  2288,  2289,  2290,     0,  1914,
-    2018,  1925,     0,  2301,  1106,  1103,  1103,     0,     0,     0,
-    2310,  2314,     0,     0,     0,  2534,  1160,     0,  1333,     0,
-    1365,  1118,  1124,  1138,     0,  1153,  1187,  1188,  1190,  1288,
-    1189,  1195,  1194,  1583,  1910,  1193,  1192,  1911,  1186,  1934,
-    1955,  1933,     0,     0,     0,     0,     0,     0,     0,     0,
-    1765,     0,     0,  1593,  1606,    71,     0,  2412,  2427,  2428,
-    2424,  2429,  2447,  2430,  2434,     0,  2426,  2418,     0,  2433,
-       0,  2422,  2431,     0,  2416,     0,  2432,  2437,  2448,  2420,
-    2425,  2403,     0,  2410,  2414,  1946,  1477,  2379,  2380,     0,
-      77,  1618,  1619,  1617,   954,     0,  2629,  1843,  1844,  1845,
-       0,  1860,     0,  1023,     0,     0,   454,   445,     0,  1764,
-    1763,     0,  1836,  2511,     0,     0,   999,  1621,  1668,     0,
-    1620,  1831,     0,  1829,  1826,  1828,   230,     0,     0,   260,
-    2412,     0,  2397,     0,  2505,  2502,  2512,  2547,  2542,  2541,
-    2544,  2545,  1087,  2546,  1086,  2543,  2540,  1096,  1082,  1084,
-    1085,  2322,  1727,     0,   753,     0,  1748,  1777,  1728,     0,
-       0,  1777,     0,  1512,  1767,  1770,     0,  2331,  1741,   816,
-     815,  1751,   814,  2332,  1763,     0,  1715,  1729,     0,  1692,
-    1734,     0,  2333,     0,  1766,  1750,     0,  1749,  1512,  1777,
-       0,  1708,     0,     0,     0,     0,   236,   977,   987,   979,
-     974,     0,   980,   976,     0,  2630,  2631,  2377,   954,  1905,
-    1903,  1904,  1953,  2613,  1902,  2621,  2623,  2609,  2611,  2618,
-    1065,     0,  2516,     6,    63,     0,  1789,  2571,  2572,  2570,
-     769,     0,  1106,  1962,  2565,   168,   878,     0,   406,   168,
-       0,     0,     0,     0,     0,   407,   408,   344,   862,   960,
-     875,     0,     0,   874,  2573,     0,     0,  1038,  1040,  1039,
-    1056,   188,   185,   166,     0,   996,  1600,  1602,  1013,  2501,
-       0,     0,  2503,  2507,  1159,  1158,     0,   113,   118,     0,
-       0,     0,  2473,   117,  2463,  2569,  1096,  1096,  1096,  2561,
-       0,  2549,  2556,  2557,  2560,  2559,  2558,  2555,     0,  2548,
-    2551,  2552,  2554,  2553,  2573,  2567,     0,   821,   821,   821,
-       0,  1670,  1673,  1677,  1681,  1684,     0,     0,  1482,  1208,
-    1482,  1482,  1482,  1372,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  1482,     0,
-    1245,  1218,     0,  1246,     0,     0,     0,     0,     0,  1920,
-       0,     0,  2534,     0,     0,     0,  1338,     0,     0,     0,
-    2534,     0,     0,     0,     0,     0,     0,  1367,  1369,  1933,
-    1482,     0,     0,  1482,     0,     0,     0,     0,     0,  1111,
-    1251,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,  1482,  1482,     0,     0,  1482,  1259,     0,  1922,
-       0,     0,     0,  1921,     0,     0,  1919,   750,   751,  1900,
-    1918,     0,  1262,  1264,  1263,     0,  1482,  1482,     0,     0,
-    1198,  1197,  1199,     0,     0,     0,     0,     0,     0,  1157,
-    1156,  1155,  1154,     0,     0,     0,  1162,     0,  1163,  1164,
-       0,  1165,  1166,  1167,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   958,   873,  2566,
+    2567,  2568,  1028,  1027,     0,  2501,  1953,  1011,  1037,  2025,
+    2026,  2027,  2028,  2029,  2030,  2031,  2032,  1967,  2033,  2034,
+    2036,  2035,  2037,  2038,  1968,  1969,  2039,  2040,  2041,  2043,
+    2042,  2044,  1970,  1971,  2045,  2046,  2047,  2048,  1972,  1974,
+    1973,  2049,  2052,  2051,  2050,  1975,  2053,  2054,  2055,  2057,
+    1976,  1977,  1978,  1979,  1980,  1981,  2056,  1982,  2058,  1983,
+    2059,  2060,  2061,  2062,  2063,  2064,  2065,  2067,  2066,  1984,
+    2068,  2069,  2070,  2071,  2072,  2074,  2073,  2075,  2076,  2077,
+    1985,  2078,  2079,  2080,  2081,  2082,  2083,  2084,  1986,  2085,
+    2086,  2087,  2104,  1987,  2088,  2091,  2090,  2089,  2092,  2093,
+    2094,  2096,  2095,  2097,  1988,  1989,  2098,  2099,  2100,  2102,
+    2101,  2106,  2107,  2108,  1990,  2103,  2105,  2296,  2109,  2110,
+    2112,  2111,  2113,  2115,  2114,  1991,  2117,  2116,  1992,  1993,
+    2118,  2119,  1951,  2120,  1952,  2121,  2124,  2125,  2122,  2126,
+    2131,  1994,  2123,  2127,  2128,  2129,  2130,  2132,  1995,  2134,
+    2133,  2135,  2136,  2137,  2138,  2139,  2140,  2141,  2142,  2143,
+    2154,  2147,  2149,  2150,  2152,  2148,  2153,  2157,  2156,  2158,
+    2159,  2160,  2155,  2145,  2151,  2146,  2161,  2162,  2144,  2163,
+    2164,  2165,  2166,  2167,  2168,  2169,  2170,  2171,  2172,  2173,
+    2175,  2174,  2176,  2177,  2178,  2179,  2180,  2181,  2182,  2184,
+    2183,  2185,  2186,  2187,  2189,  2188,  2191,  2192,  1996,  2190,
+    2193,  2194,  2195,  2196,  2197,  2198,  1997,  1999,  1998,  2000,
+    2199,  2200,  2001,  2201,  2202,  2203,  2002,  2204,  2205,  2206,
+    2208,  2207,  2209,  2210,  2003,  2004,  2211,  2212,  2213,  2214,
+    2215,  2216,  2217,  2218,  2219,  2220,  2221,  2222,  2223,  2224,
+    2226,  2225,  2227,  2228,  2229,  2230,  2231,  2232,  2233,  2005,
+    2234,  2006,  2235,  2236,  2007,  2237,  2008,  2238,  2239,  2009,
+    2240,  2241,  2242,  2243,  2244,  2245,  2010,  2246,  2247,  2248,
+    2011,  2250,  2249,  2251,  2012,  2253,  2254,  2013,  2252,  2015,
+    2255,  2256,  2014,  2257,  2016,  2258,  2259,  2261,  2260,  2262,
+    2263,  2264,  2017,  2265,  2018,  2266,  2267,  2268,  2269,  2270,
+    2272,  2271,  2273,  2274,  2275,  2276,  2279,  2281,  2278,  2280,
+    2277,  2282,  2283,  2284,  2285,  2289,  2290,  2291,  2292,  2286,
+    2287,  2288,  2019,  2293,  2294,  2295,  2297,  2298,  2300,  2299,
+    2020,  2021,  2301,  2302,  2024,  2303,  2304,  2305,  2309,  2306,
+    2317,  2307,  2308,  2311,  2310,  2312,  2313,  2022,  2314,  2023,
+    2315,  2316,   184,  1956,   167,  1957,  1966,     0,  2369,  2368,
+     994,  2371,  2370,  1012,  2502,  2503,   540,   819,     0,     0,
+     820,     0,   539,   818,   165,  2568,   120,     0,   536,   537,
+       0,     0,     0,  1684,     0,  1607,  1607,  1607,     0,     0,
+    1607,  1607,     0,  1610,  1607,   165,  1607,     0,    69,  1793,
+       0,     0,     0,     0,  1950,     0,  1617,     0,     0,  1843,
+    1857,     0,  1858,  1852,  2366,     0,  1097,     0,     0,     0,
+       0,   165,  1029,     0,  1668,     0,   229,   238,   240,   241,
+     237,     0,  2503,  2514,  1064,  1070,  1082,  2321,  2318,  1770,
+     241,   983,   983,   983,   981,   983,  1692,  1689,     0,     0,
+       0,  1668,  1851,  2620,     0,     0,     0,  2616,     0,  2621,
+       0,  1072,     0,     0,     1,     5,     0,     0,  2099,  2203,
+    1783,  1781,  1945,     0,   864,   891,     0,   869,     0,   867,
+    1962,  1961,  1960,     0,   880,   879,   877,     0,   405,     0,
+     962,   963,   957,   959,   961,     0,  2577,   871,  1009,  2500,
+       0,   186,     0,    78,     0,     0,     0,  2506,     0,     0,
+       0,     0,   119,     0,     0,     0,   116,  1097,  1097,  2568,
+    2570,  2572,   540,   538,     0,     0,     0,  1688,  1687,  1686,
+       0,  1684,  2026,  1967,  2038,     0,  1918,     0,     0,     0,
+    1372,     0,  1972,     0,  2053,  2055,  1976,  1977,  1978,  1979,
+    1980,  1981,  1984,     0,     0,  1107,  1107,  1104,     0,     0,
+       0,  2076,  2077,  1927,     0,     0,     0,  1914,  1928,  2112,
+    2113,     0,  1916,  1917,  2119,     0,     0,     0,  2133,     0,
+    2138,  1925,     0,     0,  2170,  2172,     0,     0,  2176,  2177,
+    2178,  2179,  1900,  1162,     0,  1104,  1913,  1924,  2195,  1907,
+    2204,  2209,  2210,     0,  2219,     0,     0,     0,  2244,  2248,
+       0,     0,  2269,     0,     0,  1104,  1899,  2289,  2290,  2291,
+    2292,     0,  1915,  2019,  1926,     0,  2303,  1107,  1104,  1104,
+       0,     0,     0,  2312,  2316,     0,     0,     0,  2538,  1161,
+       0,  1334,     0,  1366,  1119,  1125,  1139,     0,  1154,  1188,
+    1189,  1191,  1289,  1190,  1196,  1195,  1584,  1911,  1194,  1193,
+    1912,  1187,  1935,  1956,  1934,     0,     0,     0,     0,     0,
+       0,     0,     0,  1766,     0,     0,  1594,  1607,    71,     0,
+    2416,  2431,  2432,  2428,  2433,  2451,  2434,  2438,     0,  2430,
+    2422,     0,  2437,     0,  2426,  2435,     0,  2420,     0,  2436,
+    2441,  2452,  2424,  2429,  2407,     0,  2414,  2418,  1947,  1478,
+    2383,  2384,     0,    77,  1619,  1620,  1618,   954,     0,  2633,
+    1844,  1845,  1846,     0,  1861,     0,  1024,     0,     0,   454,
+     445,     0,  1765,  1764,     0,  1837,  2515,     0,     0,   999,
+    1622,  1669,     0,  1621,  1832,     0,  1830,  1827,  1829,   230,
+       0,     0,   260,  2416,     0,  2401,     0,  2509,  2506,  2516,
+    2551,  2546,  2545,  2548,  2549,  1088,  2550,  1087,  2547,  2544,
+    1097,  1083,  1085,  1086,  2324,  1728,     0,   753,     0,  1749,
+    1778,  1729,     0,     0,  1778,     0,  1513,  1768,  1771,     0,
+    2333,  1742,   816,   815,  1752,   814,  2334,  1764,     0,  1716,
+    1730,     0,  1693,  1735,     0,  2335,     0,  1767,  1751,     0,
+    1750,  1513,  1778,     0,  1709,     0,     0,     0,     0,   236,
+     977,   987,   979,   974,     0,   980,   976,     0,  2634,  2635,
+    2381,   954,  1906,  1904,  1905,  1954,  2617,  1903,  2625,  2627,
+    2613,  2615,  2622,  1066,     0,  2520,     6,    63,     0,  1790,
+    2575,  2576,  2574,   769,     0,  1107,  1963,  2569,   168,   878,
+       0,   406,   168,     0,     0,     0,     0,     0,   407,   408,
+     344,   862,   960,   875,     0,     0,   874,  2577,     0,     0,
+    1039,  1041,  1040,  1057,   188,   185,   166,     0,   996,  1601,
+    1603,  1014,  2505,     0,     0,  2507,  2511,  1160,  1159,     0,
+     113,   118,     0,     0,     0,  2477,   117,  2467,  2573,  1097,
+    1097,  1097,  2565,     0,  2553,  2560,  2561,  2564,  2563,  2562,
+    2559,     0,  2552,  2555,  2556,  2558,  2557,  2577,  2571,     0,
+     821,   821,   821,     0,  1671,  1674,  1678,  1682,  1685,     0,
+       0,  1483,  1209,  1483,  1483,  1483,  1373,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,  1483,     0,  1246,  1219,     0,  1247,     0,     0,     0,
+       0,     0,  1921,     0,     0,  2538,     0,     0,     0,  1339,
+       0,     0,     0,  2538,     0,     0,     0,     0,     0,     0,
+    1368,  1370,  1934,  1483,     0,     0,  1483,     0,     0,     0,
+       0,     0,  1112,  1252,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,  1483,  1483,     0,     0,  1483,
+    1260,     0,  1923,     0,     0,     0,  1922,     0,     0,  1920,
+     750,   751,  1901,  1919,     0,  1263,  1265,  1264,     0,  1483,
+    1483,     0,     0,  1199,  1198,  1200,     0,     0,     0,     0,
+       0,     0,  1158,  1157,  1156,  1155,     0,     0,     0,  1163,
+       0,  1164,  1165,     0,  1166,  1167,  1168,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,  1200,     0,     0,     0,  1901,  1297,     0,
-    1607,  1588,  1595,  1590,     0,  1765,  1591,  1599,   419,     0,
-    1596,  2461,  1592,     0,  1584,     0,    70,     0,  1814,  1819,
-       0,     0,     0,  1809,  1817,  1811,  1818,  1810,     0,     0,
-    1820,  1813,     0,  1812,  1816,  1815,  1793,  1797,  1801,  1794,
-    2413,  2411,  2445,  2444,  2449,     0,  2446,  2442,  2435,  2474,
-    2439,     0,  2474,  2441,  2440,  2474,  2436,  2443,  2474,  2408,
-       0,  1478,  1479,     0,  2378,     0,  1945,   955,     0,     0,
-    1846,  1847,     0,  1046,  1861,  1862,  1858,  1477,  2365,  2368,
-       0,   640,  1097,   455,     0,     0,   466,     0,     0,    66,
-      67,     0,  1030,     0,  1029,  1033,     0,     0,     0,  1624,
-    1614,  1623,  1832,  1833,     0,   228,   253,   248,   256,   250,
-     252,   251,   257,   258,   259,   254,   249,   255,   242,     0,
-    2411,     0,  2408,  2506,     0,  2508,  2525,  1070,  2513,  1093,
-    1072,  1092,     0,  1083,  2317,  2320,  2328,  1773,   752,     0,
-       0,  1740,     0,   540,     0,     0,     0,     0,     0,     0,
-    1709,     0,     0,   583,     0,  1733,  1513,  1771,  1772,  1777,
-       0,     0,  1777,     0,  1746,  1767,     0,  1777,  1704,     0,
-       0,  1696,  1701,  1697,     0,  1703,  1702,  1705,  1693,  1694,
-    1773,  1720,  1747,  1767,  1732,  1739,     0,  1719,  1726,     0,
-    1737,  1767,  1767,  1777,  1777,   990,   989,   988,   984,   985,
-     990,     0,  1689,  1406,     0,     0,  2610,  2624,  2608,  2619,
-    2620,  2607,  1066,  2517,  1064,  2518,     0,     7,     4,  1783,
-    1781,  1790,  1791,   770,   769,   531,   534,   533,     0,     0,
-    1964,     0,   870,     0,  1765,   868,     0,     0,  1765,   355,
-    1765,   409,   769,   882,     0,     0,   872,  1009,     0,     0,
-     443,  1056,  1042,  1058,     0,   189,   191,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,  1201,     0,     0,     0,
+    1902,  1298,     0,  1608,  1589,  1596,  1591,     0,  1766,  1592,
+    1600,   419,     0,  1597,  2465,  1593,     0,  1585,     0,    70,
+       0,  1815,  1820,     0,     0,     0,  1810,  1818,  1812,  1819,
+    1811,     0,     0,  1821,  1814,     0,  1813,  1817,  1816,  1794,
+    1798,  1802,  1795,  2417,  2415,  2449,  2448,  2453,     0,  2450,
+    2446,  2439,  2478,  2443,     0,  2478,  2445,  2444,  2478,  2440,
+    2447,  2478,  2412,     0,  1479,  1480,     0,  2382,     0,  1946,
+     955,     0,     0,  1847,  1848,     0,  1047,  1862,  1863,  1859,
+    1478,  2367,  2372,     0,   640,  1098,   455,     0,     0,   466,
+       0,     0,    66,    67,     0,  1031,     0,  1030,  1034,     0,
+       0,     0,  1625,  1615,  1624,  1833,  1834,     0,   228,   253,
+     248,   256,   250,   252,   251,   257,   258,   259,   254,   249,
+     255,   242,     0,  2415,     0,  2412,  2510,     0,  2512,  2529,
+    1071,  2517,  1094,  1073,  1093,     0,  1084,  2319,  2322,  2330,
+    1774,   752,     0,     0,  1741,     0,   540,     0,     0,     0,
+       0,     0,     0,  1710,     0,     0,   583,     0,  1734,  1514,
+    1772,  1773,  1778,     0,     0,  1778,     0,  1747,  1768,     0,
+    1778,  1705,     0,     0,  1697,  1702,  1698,     0,  1704,  1703,
+    1706,  1694,  1695,  1774,  1721,  1748,  1768,  1733,  1740,     0,
+    1720,  1727,     0,  1738,  1768,  1768,  1778,  1778,   990,   989,
+     988,   984,   985,   990,     0,  1690,  1407,     0,     0,  2614,
+    2628,  2612,  2623,  2624,  2611,  1067,  2521,  1065,  2522,     0,
+       7,     4,  1784,  1782,  1791,  1792,   770,   769,   531,   534,
+     533,     0,     0,  1965,     0,   870,     0,  1766,   868,     0,
+       0,  1766,   355,  1766,   409,   769,   882,     0,     0,   872,
+    1010,     0,     0,   443,  1057,  1043,  1059,     0,   189,   191,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,    79,    80,    96,   998,   997,
-       0,   995,  1021,  1020,  1018,     0,  1019,  1017,  1012,  1014,
-    1015,  2500,  2504,   541,   769,  1765,     0,   347,     0,     0,
-       0,     0,     0,   540,     0,     0,  2550,   105,   822,     0,
-       0,     0,  1675,  1603,  1671,  1605,  1944,     0,     0,     0,
-    1679,     0,     0,  1483,  1482,     0,  1347,     0,     0,     0,
-       0,  1373,     0,     0,     0,     0,     0,     0,     0,  1184,
-       0,     0,     0,     0,     0,     0,     0,  1318,     0,  1347,
-    1107,  1557,  1558,  1542,  1543,  1541,  1544,  1104,     0,  1545,
-    1556,  1275,     0,     0,     0,     0,     0,     0,  1453,  1454,
-    1455,  1456,  1464,  1457,  1458,  1459,  1466,  1471,  1460,  1461,
-    1467,  1468,  1469,  1462,  1470,  1465,  1463,  1472,     0,  1452,
-       0,  1475,  1473,  1476,  1474,     0,  1339,  1331,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    79,    80,
+      96,   998,   997,     0,   995,  1022,  1021,  1019,     0,  1020,
+    1018,  1013,  1015,  1016,  2504,  2508,   541,   769,  1766,     0,
+     347,     0,     0,     0,     0,     0,   540,     0,     0,  2554,
+     105,   822,     0,     0,     0,  1676,  1604,  1672,  1606,  1945,
+       0,     0,     0,  1680,     0,     0,  1484,  1483,     0,  1348,
+       0,     0,     0,     0,  1374,     0,     0,     0,     0,     0,
+       0,     0,  1185,     0,     0,     0,     0,     0,     0,     0,
+    1319,     0,  1348,  1108,  1558,  1559,  1543,  1544,  1542,  1545,
+    1105,     0,  1546,  1557,  1276,     0,     0,     0,     0,     0,
+       0,  1454,  1455,  1456,  1457,  1465,  1458,  1459,  1460,  1467,
+    1472,  1461,  1462,  1468,  1469,  1470,  1463,  1471,  1466,  1464,
+    1473,     0,  1453,     0,  1476,  1474,  1477,  1475,     0,  1340,
+    1332,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  1483,     0,     0,     0,  1483,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    1482,     0,     0,     0,  1482,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,  1483,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  1482,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  1241,     0,  1936,
-    1935,     0,     0,     0,     0,  1202,     0,  1201,  1415,     0,
-    2519,  2535,     0,  2334,  1334,  1336,     0,  1109,  1108,  1110,
-    1121,  1114,  1119,  1112,  1116,     0,  1168,  2031,  1122,     0,
-       0,  1150,  2534,  1491,  1151,  1136,  1141,  1142,     0,  1139,
-    1140,     0,  1144,     0,  1143,  1147,  1148,  1149,  1152,     0,
-       0,     0,     0,  1191,  1196,  1366,  1096,  1937,     0,  1586,
-     419,   422,   421,  1597,   420,  1645,     0,   964,     0,     0,
-      72,    74,  1806,  1803,  1802,  1804,  1808,  1807,  1805,     0,
-    1821,  2438,     0,  2419,     0,  2423,  2417,  2421,     0,     0,
-    2409,     0,  2415,  1481,  2106,  2186,     0,  1484,  2382,  1611,
-    2628,  2301,  1848,  1841,     0,  1859,     0,     0,     0,  1024,
-     641,     0,  1096,   453,   452,   451,   450,     0,   468,   448,
-     456,    68,     0,     0,  1837,     0,     0,     0,     0,  1001,
-    1622,     0,  1834,  1830,  1827,     0,     0,     0,     0,     0,
-       0,     0,  2509,  2527,  2526,  2514,  1096,  1503,  1097,  1097,
-    1933,  2322,  2325,  2326,  2329,  2327,     0,  2324,  2323,  2338,
-       0,  1775,  1778,  1779,     0,     0,  1759,  1753,  1752,  1744,
-    1754,  1745,  1762,  1761,  1760,  1717,  1716,  1525,  1526,  2240,
-    1524,  1516,  1519,  1523,  1522,  1712,  1768,  1758,  1756,  1742,
-    1777,  1757,  1755,  1698,  1699,  1700,     0,  1512,     0,  1775,
-    1777,  1767,     0,  1777,  1777,  1736,  1738,     0,   978,   987,
-     975,   982,  1424,  1423,     0,  1380,     0,  1382,  1379,  1378,
-    1377,     0,  1423,  2614,  2622,  2626,     0,  1512,  2524,  2522,
-     532,  1645,  1645,     0,  1963,     0,     0,     0,     0,     0,
-       0,     0,   169,   178,     0,     0,   353,   354,  1645,   352,
-     395,   396,   399,   400,   401,     0,     0,     0,     0,     0,
-       0,     0,     0,   122,   402,  1645,  1645,   349,   375,   376,
-     379,   380,   381,   382,   383,   345,     0,   350,   952,   952,
-       0,  1645,  1645,   952,  1645,     0,     0,  1645,  1645,     0,
-       0,  1645,     0,     0,   952,     0,  1645,   950,     0,     0,
-    1645,  1645,  1645,  1645,   952,     0,     0,  1645,  1645,   443,
-    1645,     0,     0,   970,     0,     0,  1645,     0,     0,  1645,
-    1645,     0,  1645,   898,   949,   544,   565,   566,   863,   897,
-     899,   911,   439,     0,   928,   951,     0,     0,   884,   886,
-    2574,  2575,  2576,  1045,  1037,  1044,  1041,  1056,  1054,  1043,
-     811,   810,     0,  1057,   187,     0,     0,     0,     0,     0,
+    1242,     0,  1937,  1936,     0,     0,     0,     0,  1203,     0,
+    1202,  1416,     0,  2523,  2539,     0,  2336,  1335,  1337,     0,
+    1110,  1109,  1111,  1122,  1115,  1120,  1113,  1117,     0,  1169,
+    2032,  1123,     0,     0,  1151,  2538,  1492,  1152,  1137,  1142,
+    1143,     0,  1140,  1141,     0,  1145,     0,  1144,  1148,  1149,
+    1150,  1153,     0,     0,     0,     0,  1192,  1197,  1367,  1097,
+    1938,     0,  1587,   419,   422,   421,  1598,   420,  1646,     0,
+     964,     0,     0,    72,    74,  1807,  1804,  1803,  1805,  1809,
+    1808,  1806,     0,  1822,  2442,     0,  2423,     0,  2427,  2421,
+    2425,     0,     0,  2413,     0,  2419,  1482,  2107,  2188,     0,
+    1485,  2386,  1612,  2632,  2303,  1849,  1842,     0,  1860,     0,
+       0,     0,  1025,   641,     0,  1097,   453,   452,   451,   450,
+       0,   468,   448,   456,    68,     0,     0,  1838,     0,     0,
+       0,     0,  1001,  1623,     0,  1835,  1831,  1828,     0,     0,
+       0,     0,     0,     0,     0,  2513,  2531,  2530,  2518,  1097,
+    1504,  1098,  1098,  1934,  2324,  2327,  2328,  2331,  2329,     0,
+    2326,  2325,  2340,     0,  1776,  1779,  1780,     0,     0,  1760,
+    1754,  1753,  1745,  1755,  1746,  1763,  1762,  1761,  1718,  1717,
+    1526,  1527,  2242,  1525,  1517,  1520,  1524,  1523,  1713,  1769,
+    1759,  1757,  1743,  1778,  1758,  1756,  1699,  1700,  1701,     0,
+    1513,     0,  1776,  1778,  1768,     0,  1778,  1778,  1737,  1739,
+       0,   978,   987,   975,   982,  1425,  1424,     0,  1381,     0,
+    1383,  1380,  1379,  1378,     0,  1424,  2618,  2626,  2630,     0,
+    1513,  2528,  2526,   532,  1646,  1646,     0,  1964,     0,     0,
+       0,     0,     0,     0,     0,   169,   178,     0,     0,   353,
+     354,  1646,   352,   395,   396,   399,   400,   401,     0,     0,
+       0,     0,     0,     0,     0,     0,   122,   402,  1646,  1646,
+     349,   375,   376,   379,   380,   381,   382,   383,   345,     0,
+     350,   952,   952,     0,  1646,  1646,   952,  1646,     0,     0,
+    1646,  1646,     0,     0,  1646,     0,     0,   952,     0,  1646,
+     950,     0,     0,  1646,  1646,  1646,  1646,   952,     0,     0,
+    1646,  1646,   443,  1646,     0,     0,   970,     0,     0,  1646,
+       0,     0,  1646,  1646,     0,  1646,   898,   949,   544,   565,
+     566,   863,   897,   899,   911,   439,     0,   928,   951,     0,
+       0,   884,   886,  2578,  2579,  2580,  1046,  1038,  1045,  1042,
+    1057,  1055,  1044,   811,   810,     0,  1058,   187,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,  1601,  1022,  1016,   114,   769,
-    1645,  1645,  1645,  1645,   351,   384,   385,   388,   389,   390,
-     391,   394,   392,   393,     0,     0,  1765,     0,  2465,  2466,
-       0,  2464,     0,  2602,     0,     0,     0,   167,   542,     0,
-       0,   823,     0,     0,     0,     0,     0,  1484,     0,  1947,
-    1678,  1406,  1682,  1681,     0,  1271,     0,  1311,     0,  1313,
-    1314,  1315,     0,     0,     0,     0,     0,  1272,     0,  1216,
-    1273,  1274,     0,     0,  1269,     0,     0,     0,     0,  1268,
-       0,     0,     0,     0,  1317,     0,  1105,     0,     0,  1219,
-    1220,  1213,  1205,     0,  1290,     0,     0,  1221,     0,     0,
-       0,     0,  1277,     0,  1291,  1368,     0,  1370,  1937,     0,
-    1323,  1278,  1226,     0,  1321,     0,  1227,  1292,  1293,  1294,
-    1280,  1281,     0,  1296,     0,  1282,     0,     0,     0,     0,
-    1229,  1327,  1325,     0,     0,     0,     0,  1329,  1231,     0,
-       0,     0,  1230,     0,     0,     0,     0,     0,     0,     0,
-    1233,     0,  1214,  1326,  1328,  1286,     0,  1242,     0,  2528,
-    1414,  2536,  1415,     0,     0,  2530,  2520,  2525,  2533,  1206,
-       0,     0,     0,     0,     0,  1938,  1115,  1120,  1113,  1117,
-    2534,     0,     0,     0,     0,  1134,  1133,     0,     0,     0,
-    2534,  1491,  1137,     0,     0,  1307,  1308,  1363,     0,  1589,
-    1587,  1598,  1643,  1644,  1646,     0,  2462,   966,   965,  1594,
-     964,    75,     0,  1800,  1822,  1795,  2478,     0,  2477,     0,
-    2457,  2460,  1944,     0,     0,     0,  2392,  2386,  2393,  2395,
-    2389,  2394,  2396,  2387,  2388,  2383,  2390,  1485,  1514,     0,
-    1849,  1047,  1049,  1050,  1048,  1056,     0,     0,  2371,  2372,
-    2370,  2369,   458,     0,   467,     0,   479,     0,     0,     0,
-    1839,  1838,     0,  1031,  1034,  1035,  1006,  1005,  1007,  1000,
-    1002,  1003,   524,  1628,     0,     0,     0,  1634,  1615,  1625,
-       0,  2075,  2287,  2290,   243,   246,   245,   247,     0,     0,
-       0,     0,     0,     0,  1091,  1406,  1575,  1088,  1076,  1514,
-    1504,  1075,  1098,  1094,     0,  2321,     0,  2284,  2349,     0,
-       0,     0,     0,     0,  2339,  1774,     0,  1721,     0,  1743,
-       0,     0,     0,     0,  1714,     0,  1735,  1695,  1723,  1713,
-    1484,  1767,  1710,  1711,   992,   991,   986,  1423,  1406,     0,
-       0,  1403,  1425,     0,  1425,  1406,  1406,     0,  1406,  1477,
-    1420,     0,     0,  2625,  1505,  2523,     0,     0,   866,   172,
-     175,   173,     0,   174,     0,     0,   404,   403,     0,  1765,
-     397,   126,   125,   127,   128,  1539,  1540,  1536,  1537,  1535,
-    1538,   130,   129,   124,   881,     0,     0,     0,  1765,   377,
-     356,   357,   360,   361,   362,   953,   856,  1025,   932,     0,
-     621,   856,   807,   812,   812,   930,     0,  1025,     0,     0,
-       0,     0,     0,  1025,     0,     0,     0,  1645,     0,   943,
-     893,     0,     0,     0,     0,     0,   944,     0,   894,  1645,
-       0,     0,     0,     0,     0,  1025,     0,     0,     0,   441,
-       0,  1025,   912,   973,   972,   971,     0,  1025,  1025,     0,
-     571,   572,   570,     0,     0,     0,   563,   545,   769,   895,
-     440,   896,   620,     0,   967,   617,   623,  1940,     0,     0,
-       0,     0,   136,  2578,     0,  1444,   190,    97,    86,    82,
-     101,  1549,  1550,  1548,  1546,  1547,   102,    84,    85,    89,
-      88,    90,    91,    92,    87,    93,    83,    94,   103,   104,
-      81,     0,     0,     0,     0,  1765,   386,     0,     0,  1645,
-     346,   363,   364,   367,   368,   369,   370,   371,   374,   372,
-     373,     0,  2469,  2471,     0,     0,   340,   339,     0,   131,
-    2596,     0,     0,   620,   106,   439,   543,   546,   849,   851,
-     850,   837,   836,   107,   109,   111,  1604,  1681,  1406,  1503,
-    1945,  1484,     0,  1680,     0,     0,  1312,  1348,     0,  1374,
-       0,  1210,   724,   724,   724,  1357,   709,  1361,  1352,   724,
-    1353,   724,  1355,     0,   755,     0,   754,     0,  1170,  1185,
-       0,     0,     0,     0,     0,     0,  1319,  1316,     0,     0,
-       0,     0,  1342,     0,     0,     0,  1215,     0,  1302,  1324,
-    1322,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,  1330,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,  1203,  1096,  2537,  2539,  1067,
-       0,  2529,  2531,  2335,  2336,  2337,   858,  1335,     0,  1131,
-    1127,     0,  1125,  1490,  1146,  1145,     0,     0,     0,  1135,
-    1097,  1298,  1096,     0,  1364,  1939,   418,   582,  1585,    73,
-    1798,  2475,     0,  2486,     0,     0,     0,     0,     0,     0,
-       0,  2381,  1515,  1655,     0,  1056,  1060,  1954,  1852,  2374,
-    2375,  2373,     0,   459,   460,   462,  1097,   476,   454,     0,
-     446,   449,     0,   458,     0,  1004,  1081,     0,  1647,  1632,
-    1639,  1633,     0,     0,     0,  1631,  1929,  1928,  1935,  2512,
-       0,     0,  2402,     0,     0,     0,  2515,  1484,  1484,  1569,
-       0,     0,  1073,  1078,  1074,  1077,     0,  1095,  1102,  1101,
-    1930,  1937,     0,     0,     0,     0,   757,   756,   765,     0,
-       0,     0,  2334,     0,   761,   763,   762,  2344,   760,  1776,
-    1512,  1731,  1730,  1527,  1518,     0,  1521,  1520,  1706,  1512,
-    1725,  1777,     0,     0,  2519,  1418,     0,  1405,  1404,  1426,
-       0,  1406,  1425,  1425,     0,  1385,  1384,  1659,  1662,     0,
-    1383,  1442,  1408,  1081,  2615,  2627,     0,   768,   767,   581,
-     764,   580,   177,   176,   182,   183,  1553,  1554,  1551,  1552,
-     410,   423,  1555,   424,   398,   123,   411,   412,   378,     0,
-     358,   622,   857,   915,     0,     0,     0,   812,   616,   856,
-     821,   813,   856,   856,     0,     0,   555,   552,   934,   558,
-     913,   905,   914,   925,   927,     0,   554,   573,     0,     0,
-     561,   856,   900,   941,   942,   964,   549,     0,   592,   593,
-     591,   567,   574,   550,   551,   936,     0,  1499,  1501,  1509,
-     557,   556,  1560,  1559,   560,     0,   553,     0,   947,   920,
-       0,   589,   587,   584,   586,   585,   590,   588,   562,   559,
-     575,   910,     0,   952,   952,   929,     0,   600,   601,   603,
-     604,  1943,     0,   969,   931,     0,   605,   618,   606,     0,
-       0,   579,   578,   576,   577,     0,   146,     0,     0,   883,
-       0,   139,   137,   148,     0,     0,     0,  1447,     0,  1448,
-    1445,  1446,     0,    98,   100,   417,   416,   415,   414,   387,
-       0,     0,     0,  1765,   365,  2470,  2468,  2467,     0,     0,
-    2603,   343,   341,   342,     0,     0,   192,   598,   599,   597,
-     596,     0,   427,     0,  2001,   425,     0,   438,     0,  1863,
-     769,   547,     0,     0,     0,     0,  1484,  1528,  1948,  1674,
-       0,  1243,  1375,     0,     0,   725,  1349,   777,  1359,     0,
-    1360,   711,   710,   726,  1351,  1354,  1358,  1356,  1209,  1217,
-    1265,     0,  1183,  1266,  1267,     0,  1289,  1212,  1211,     0,
-       0,     0,  1249,  1250,     0,  1340,     0,     0,  1223,     0,
-    1225,     0,     0,  1304,  1279,  1295,  1252,  1283,     0,  1228,
-    1204,     0,  1253,     0,  1258,  1256,     0,  1232,     0,     0,
-    1239,     0,  1237,     0,  1238,     0,  1240,  1285,  1287,  1416,
-    2538,  1068,     0,     0,  1337,  1123,     0,  1132,  1129,     0,
-    1126,  1098,  1309,  1299,     0,  1796,  2476,     0,  2407,  2459,
-    2458,  2479,  2479,  2479,     0,  1486,     0,  1612,  1051,  1056,
-    1060,     0,  1052,  1863,   463,     0,     0,     0,   483,     0,
-     481,   457,     0,  1032,  1096,  1629,  1641,     0,  1649,     0,
-       0,  1626,  1636,     0,     0,     0,  1635,   244,     0,  2399,
-    2400,  2398,  1514,  1492,     0,     0,  1581,     0,  1576,  1089,
-       0,  1100,  1099,     0,  2351,     0,  2350,  2362,  2363,  2360,
-    2361,  2359,  2340,     0,  2346,  2345,     0,     0,     0,  2356,
-    2347,     0,     0,  1722,  1517,  1724,  1718,   993,  2525,  1477,
-    1410,  1406,  1381,  1406,  1392,     0,     0,  1406,  1388,  1386,
-    1390,     0,  1484,     0,  1407,  1439,  1096,  1932,  1506,  1509,
-     359,   917,     0,   856,   808,   809,   821,     0,   821,   821,
-       0,     0,   904,     0,  1013,     0,   909,   765,   568,   940,
-     939,   569,     0,   902,     0,  1510,  1511,  1502,   442,   901,
-     922,   907,  1821,   933,   620,   968,   789,   705,   654,   645,
-     724,   648,   647,   691,   724,   659,   709,   707,   677,   709,
-     709,   684,   683,   701,   687,   667,   777,   777,   666,   704,
-     777,   688,   686,   690,     0,   692,   709,   697,   685,   689,
-     706,   682,   679,   703,   724,   724,   724,   663,   702,   777,
-       0,   695,   724,   624,   728,   665,   777,   784,     0,     0,
-     724,   726,  1942,   147,   135,     0,     0,   885,   887,     0,
-       0,   888,  2580,     0,  2582,     0,  1059,     0,    95,     0,
-       0,   348,   413,   366,  2472,     0,   203,  1096,     0,     0,
-     193,   195,   196,     0,     0,     0,   429,  1865,  1864,   426,
-     527,   548,     0,     0,     0,  1681,  1676,     0,  1672,     0,
-    1376,     0,     0,     0,     0,   771,   782,   780,   774,     0,
-     778,   779,  1350,     0,     0,   727,  1362,   724,  1180,   709,
-    1174,  1176,  1172,     0,   692,  1175,   724,     0,   777,  1179,
-    1171,     0,  1320,     0,     0,  1343,     0,     0,     0,     0,
-       0,     0,     0,  1207,     0,  1300,     0,     0,     0,     0,
-       0,     0,  1236,  1234,  1235,  1514,  2519,   859,  1128,     0,
-    1310,     0,     0,     0,  2484,  2484,  2484,  1654,  1653,     0,
-    1652,  1656,  1053,  1061,     0,   461,   464,     0,   456,     0,
-     480,     0,   447,   525,     0,     0,     0,  1650,  1638,  2516,
-    1627,  1630,  1937,  2401,  1080,     0,  1487,  1580,  1577,     0,
-    1570,  1572,  1574,     0,  1931,     0,     0,  2355,  2341,   766,
-       0,     0,     0,     0,  2342,  1411,  1409,  1419,     0,  1377,
-    1406,  1406,     0,  1377,     0,     0,     0,  1661,  1503,  1663,
-    1443,     0,  1421,     0,  1508,     0,     0,   916,     0,     0,
-       0,     0,     0,     0,   946,     0,   967,   906,   926,   948,
-     937,  1025,  1500,   921,   923,  1001,     0,   602,     0,   793,
-     653,   646,   664,   662,   713,   708,     0,   713,   713,   673,
-     691,   668,     0,   777,   681,   672,   693,   696,   698,   700,
-     713,     0,   777,   661,   660,   670,   657,   713,   736,     0,
-       0,     0,     0,   732,     0,   787,     0,   739,     0,   625,
-     729,   731,     0,     0,     0,   694,   777,   650,   785,   784,
-     652,   777,   784,   713,   713,     0,   133,   138,   149,   150,
-     876,  2579,     0,  2577,     0,  1055,  1449,    99,     0,     0,
-     206,   204,   205,     0,   199,   201,   196,  2590,     0,  2597,
-       0,     0,  2595,   428,   431,   542,   528,     0,     0,  1509,
-     854,     0,     0,  2240,  1529,  1244,   722,   720,   723,   721,
-     773,   772,   776,     0,   775,   784,     0,     0,  1182,  1177,
-     693,  1181,  1173,  1178,  1270,  1247,  1248,     0,  1341,  1332,
-    1276,     0,  1224,  1301,     0,     0,  1284,  1254,  1257,  1255,
-    1260,  1261,  1088,  1088,   594,  2532,  1130,  1823,  2487,     0,
-       0,  2483,  2481,     0,  2482,  2480,  2450,     0,  2405,  2406,
-    2404,  2391,     0,     0,     0,  1096,   469,     0,   486,   485,
-     482,  1514,  1640,  1642,  1648,  1637,     0,  1488,  1503,   758,
-    1573,     0,  1090,  2353,  2352,  2354,  2348,     0,     0,     0,
-       0,  1393,     0,  1397,  1402,  1398,     0,  1389,  1387,     0,
-    1528,  1431,  1432,     0,     0,  1437,  1441,  1514,  1509,   919,
-       0,   619,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   945,  1907,   935,   967,   903,     0,   908,   564,
-       0,   792,     0,   797,   717,   718,   719,   674,   714,   716,
-       0,   676,   644,   669,   699,   675,     0,   671,   658,   742,
-     741,  1106,   734,   749,   629,     0,     0,   740,   626,   730,
-     738,   733,     0,   649,   651,   655,   656,   642,   643,  1941,
-     140,   889,   280,  2581,  1071,     0,  2586,   121,  2594,  2604,
-     203,     0,     0,   144,     0,   194,   765,   197,  2516,   439,
-       0,   434,   824,     0,   853,     0,   826,   828,  1530,     0,
-     783,   781,     0,  1344,  1509,     0,  1303,  1305,  1417,   595,
-       0,  1799,  2456,  2455,  2454,  2451,     0,     0,     0,     0,
-       0,     0,  2485,  2489,  1651,     0,     0,     0,   477,     0,
-       0,   511,   526,  1496,  1509,     0,  1514,     0,  1578,  1571,
-    2358,  2357,  2343,  1412,     0,     0,     0,     0,     0,  1450,
-    1660,  1427,  1427,  1438,  1422,  1507,   918,     0,     0,   607,
-       0,     0,  1909,  1908,   938,     0,   790,     0,   794,   795,
-     796,     0,   788,   715,     0,   860,     0,   748,  1106,   737,
-       0,   746,   745,   743,   744,     0,   142,   306,     0,   292,
-     278,     0,     0,     0,   282,   151,   154,   152,     0,   153,
-     159,     0,   160,   161,   162,   163,   164,   155,   304,   305,
-     158,   156,   157,     0,  1957,     0,  1958,  2584,     0,     0,
-    2583,   170,   200,     0,     0,   136,   145,  2598,   747,   432,
-    1863,     0,  2512,     0,  1645,   108,   825,   845,   844,   830,
-       0,  1509,     0,     0,   110,   827,   847,   834,   112,   829,
-     846,   832,  1531,   712,     0,  1346,  1222,     0,  2452,  2490,
-    2493,  2491,  2492,  1532,     0,  2494,  2488,     0,  1853,  1097,
-       0,   470,     0,   473,   475,   489,     0,  1645,  1645,     0,
-       0,  1645,  1645,  1645,  1645,   504,   512,   514,     0,  1497,
-    1498,     0,  1493,  1495,  1489,  1561,   759,  1866,  2519,  1394,
-       0,  1399,     0,  1391,     0,     0,  1435,  1433,     0,   613,
-     824,   609,   611,     0,   791,     0,     0,   777,     0,   777,
-     735,  1096,   141,     0,   134,     0,     0,   291,   294,     0,
-       0,   297,   287,   286,   288,     0,   281,   280,   280,   334,
-     285,   331,   330,   323,  2516,     0,     0,     0,  2605,   202,
-    1096,   148,     0,   430,   436,   435,   839,     0,   831,     0,
-     852,   855,     0,   835,   833,  1509,  1824,  1534,  1533,  1657,
-    1665,     0,   758,     0,   478,   471,     0,     0,   487,     0,
-       0,  1645,  1645,     0,     0,     0,     0,     0,   484,   513,
-    1645,  1509,     0,  1079,     0,  1874,  1413,     0,     0,  1451,
-       0,  1428,     0,     0,     0,   615,   824,   608,   826,   828,
-       0,   803,     0,   802,     0,   799,   798,   678,   861,   680,
-       0,   143,   307,   318,   321,   313,   293,     0,     0,     0,
-     283,   280,     0,   267,   265,   266,   272,   273,   274,   275,
-     276,   277,   268,   271,   269,   270,   280,     0,   211,     0,
-       0,  2585,     0,  2587,     0,   180,   179,   171,     0,   280,
-    2591,     0,  2599,  2516,   838,   843,   842,   840,   841,   848,
-    1345,     0,     0,  1854,   465,   477,   474,   497,   490,   493,
-       0,   523,   517,     0,     0,   519,   520,   518,   515,   508,
-       0,   506,     0,  1494,  1562,     0,     0,     0,     0,  1867,
-    1869,     0,  1579,  1396,  1401,  1430,  1429,  1444,     0,   614,
-     610,   612,   924,   805,   806,   804,     0,     0,   630,     0,
-       0,   280,   314,     0,   289,     0,     0,     0,     0,   209,
-     337,     0,   207,   325,   325,  2588,  2589,   181,  2606,     0,
-     150,   170,   437,  1664,  1666,  1880,   472,   497,     0,   495,
-       0,   491,   488,   492,   521,   522,     0,   505,     0,   516,
-       0,     0,     0,     0,     0,  1868,     0,     0,  1875,  1877,
-       0,     0,     0,     0,   632,   631,   633,   315,   321,   311,
-     319,   280,     0,     0,   279,   298,   333,   210,     0,   335,
-       0,   280,     0,   324,   326,   328,     0,   132,  2600,     0,
-    1866,   494,     0,   502,   498,   500,   503,   511,   510,   507,
-    1096,  1872,  1873,     0,  1870,     0,     0,  1876,  1436,  1434,
-     801,   800,     0,   637,   627,   634,   636,     0,   312,     0,
-       0,   310,   290,   295,   280,     0,   280,   222,   221,     0,
-     213,   261,   332,     0,   212,  2592,   280,     0,  1874,   496,
-       0,     0,   509,     0,     0,  1565,  1567,  1871,  1879,  1878,
-     639,   638,   635,   316,     0,   280,     0,   280,     0,   280,
-       0,     0,     0,     0,     0,   208,   280,  2601,     0,  1882,
-     501,   499,  1097,  1563,  1096,     0,   308,   280,   296,   301,
-     338,     0,   216,   262,   263,     0,   219,  2593,  1881,     0,
-    1886,  1568,  1566,   280,   280,   297,   300,   336,     0,     0,
-     214,   215,   227,   226,   218,     0,     0,     0,  1893,   280,
-     280,   302,   235,   233,   280,   223,   231,   225,     0,   232,
-     264,   220,  1884,  1885,  1883,  1888,     0,     0,  1890,  1891,
-       0,  1855,     0,   217,   234,  1892,  1887,     0,  1894,  1896,
-       0,   224,  1889,     0,  1096,  1895,     0,  1097,  1897
+       0,     0,     0,     0,     0,     0,     0,     0,  1602,  1023,
+    1017,   114,   769,  1646,  1646,  1646,  1646,   351,   384,   385,
+     388,   389,   390,   391,   394,   392,   393,     0,     0,  1766,
+       0,  2469,  2470,     0,  2468,     0,  2606,     0,     0,     0,
+     167,   542,     0,     0,   823,     0,     0,     0,     0,     0,
+    1485,     0,  1948,  1679,  1407,  1683,  1682,     0,  1272,     0,
+    1312,     0,  1314,  1315,  1316,     0,     0,     0,     0,     0,
+    1273,     0,  1217,  1274,  1275,     0,     0,  1270,     0,     0,
+       0,     0,  1269,     0,     0,     0,     0,  1318,     0,  1106,
+       0,     0,  1220,  1221,  1214,  1206,     0,  1291,     0,     0,
+    1222,     0,     0,     0,     0,  1278,     0,  1292,  1369,     0,
+    1371,  1938,     0,  1324,  1279,  1227,     0,  1322,     0,  1228,
+    1293,  1294,  1295,  1281,  1282,     0,  1297,     0,  1283,     0,
+       0,     0,     0,  1230,  1328,  1326,     0,     0,     0,     0,
+    1330,  1232,     0,     0,     0,  1231,     0,     0,     0,     0,
+       0,     0,     0,  1234,     0,  1215,  1327,  1329,  1287,     0,
+    1243,     0,  2532,  1415,  2540,  1416,     0,     0,  2534,  2524,
+    2529,  2537,  1207,     0,     0,     0,     0,     0,  1939,  1116,
+    1121,  1114,  1118,  2538,     0,     0,     0,     0,  1135,  1134,
+       0,     0,     0,  2538,  1492,  1138,     0,     0,  1308,  1309,
+    1364,     0,  1590,  1588,  1599,  1644,  1645,  1647,     0,  2466,
+     966,   965,  1595,   964,    75,     0,  1801,  1823,  1796,  2482,
+       0,  2481,     0,  2461,  2464,  1945,     0,     0,     0,  2396,
+    2390,  2397,  2399,  2393,  2398,  2400,  2391,  2392,  2387,  2394,
+    1486,  1515,     0,  1850,  1048,  1050,  1051,  1049,  1057,     0,
+       0,  2375,  2376,  2374,  2373,   458,     0,   467,     0,   479,
+       0,     0,     0,  1840,  1839,     0,  1032,  1035,  1036,  1006,
+       0,  1005,  1007,  1000,  1002,  1003,   524,  1629,     0,     0,
+       0,  1635,  1616,  1626,     0,  2076,  2289,  2292,   243,   246,
+     245,   247,     0,     0,     0,     0,     0,     0,  1092,  1407,
+    1576,  1089,  1077,  1515,  1505,  1076,  1099,  1095,     0,  2323,
+       0,  2286,  2351,     0,     0,     0,     0,     0,  2341,  1775,
+       0,  1722,     0,  1744,     0,     0,     0,     0,  1715,     0,
+    1736,  1696,  1724,  1714,  1485,  1768,  1711,  1712,   992,   991,
+     986,  1424,  1407,     0,     0,  1404,  1426,     0,  1426,  1407,
+    1407,     0,  1407,  1478,  1421,     0,     0,  2629,  1506,  2527,
+       0,     0,   866,   172,   175,   173,     0,   174,     0,     0,
+     404,   403,     0,  1766,   397,   126,   125,   127,   128,  1540,
+    1541,  1537,  1538,  1536,  1539,   130,   129,   124,   881,     0,
+       0,     0,  1766,   377,   356,   357,   360,   361,   362,   953,
+     856,  1026,   932,     0,   621,   856,   807,   812,   812,   930,
+       0,  1026,     0,     0,     0,     0,     0,  1026,     0,     0,
+       0,  1646,     0,   943,   893,     0,     0,     0,     0,     0,
+     944,     0,   894,  1646,     0,     0,     0,     0,     0,  1026,
+       0,     0,     0,   441,     0,  1026,   912,   973,   972,   971,
+       0,  1026,  1026,     0,   571,   572,   570,     0,     0,     0,
+     563,   545,   769,   895,   440,   896,   620,     0,   967,   617,
+     623,  1941,     0,     0,     0,     0,   136,  2582,     0,  1445,
+     190,    97,    86,    82,   101,  1550,  1551,  1549,  1547,  1548,
+     102,    84,    85,    89,    88,    90,    91,    92,    87,    93,
+      83,    94,   103,   104,    81,     0,     0,     0,     0,  1766,
+     386,     0,     0,  1646,   346,   363,   364,   367,   368,   369,
+     370,   371,   374,   372,   373,     0,  2473,  2475,     0,     0,
+     340,   339,     0,   131,  2600,     0,     0,   620,   106,   439,
+     543,   546,   849,   851,   850,   837,   836,   107,   109,   111,
+    1605,  1682,  1407,  1504,  1946,  1485,     0,  1681,     0,     0,
+    1313,  1349,     0,  1375,     0,  1211,   724,   724,   724,  1358,
+     709,  1362,  1353,   724,  1354,   724,  1356,     0,   755,     0,
+     754,     0,  1171,  1186,     0,     0,     0,     0,     0,     0,
+    1320,  1317,     0,     0,     0,     0,  1343,     0,     0,     0,
+    1216,     0,  1303,  1325,  1323,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,  1331,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,  1204,
+    1097,  2541,  2543,  1068,     0,  2533,  2535,  2337,  2338,  2339,
+     858,  1336,     0,  1132,  1128,     0,  1126,  1491,  1147,  1146,
+       0,     0,     0,  1136,  1098,  1299,  1097,     0,  1365,  1940,
+     418,   582,  1586,    73,  1799,  2479,     0,  2490,     0,     0,
+       0,     0,     0,     0,     0,  2385,  1516,  1656,     0,  1057,
+    1061,  1955,  1853,  2378,  2379,  2377,     0,   459,   460,   462,
+    1098,   476,   454,     0,   446,   449,     0,   458,     0,  1008,
+    1004,  1082,     0,  1648,  1633,  1640,  1634,     0,     0,     0,
+    1632,  1930,  1929,  1936,  2516,     0,     0,  2406,     0,     0,
+       0,  2519,  1485,  1485,  1570,     0,     0,  1074,  1079,  1075,
+    1078,     0,  1096,  1103,  1102,  1931,  1938,     0,     0,     0,
+       0,   757,   756,   765,     0,     0,     0,  2336,     0,   761,
+     763,   762,  2346,   760,  1777,  1513,  1732,  1731,  1528,  1519,
+       0,  1522,  1521,  1707,  1513,  1726,  1778,     0,     0,  2523,
+    1419,     0,  1406,  1405,  1427,     0,  1407,  1426,  1426,     0,
+    1386,  1385,  1660,  1663,     0,  1384,  1443,  1409,  1082,  2619,
+    2631,     0,   768,   767,   581,   764,   580,   177,   176,   182,
+     183,  1554,  1555,  1552,  1553,   410,   423,  1556,   424,   398,
+     123,   411,   412,   378,     0,   358,   622,   857,   915,     0,
+       0,     0,   812,   616,   856,   821,   813,   856,   856,     0,
+       0,   555,   552,   934,   558,   913,   905,   914,   925,   927,
+       0,   554,   573,     0,     0,   561,   856,   900,   941,   942,
+     964,   549,     0,   592,   593,   591,   567,   574,   550,   551,
+     936,     0,  1500,  1502,  1510,   557,   556,  1561,  1560,   560,
+       0,   553,     0,   947,   920,     0,   589,   587,   584,   586,
+     585,   590,   588,   562,   559,   575,   910,     0,   952,   952,
+     929,     0,   600,   601,   603,   604,  1944,     0,   969,   931,
+       0,   605,   618,   606,     0,     0,   579,   578,   576,   577,
+       0,   146,     0,     0,   883,     0,   139,   137,   148,     0,
+       0,     0,  1448,     0,  1449,  1446,  1447,     0,    98,   100,
+     417,   416,   415,   414,   387,     0,     0,     0,  1766,   365,
+    2474,  2472,  2471,     0,     0,  2607,   343,   341,   342,     0,
+       0,   192,   598,   599,   597,   596,     0,   427,     0,  2002,
+     425,     0,   438,     0,  1864,   769,   547,     0,     0,     0,
+       0,  1485,  1529,  1949,  1675,     0,  1244,  1376,     0,     0,
+     725,  1350,   777,  1360,     0,  1361,   711,   710,   726,  1352,
+    1355,  1359,  1357,  1210,  1218,  1266,     0,  1184,  1267,  1268,
+       0,  1290,  1213,  1212,     0,     0,     0,  1250,  1251,     0,
+    1341,     0,     0,  1224,     0,  1226,     0,     0,  1305,  1280,
+    1296,  1253,  1284,     0,  1229,  1205,     0,  1254,     0,  1259,
+    1257,     0,  1233,     0,     0,  1240,     0,  1238,     0,  1239,
+       0,  1241,  1286,  1288,  1417,  2542,  1069,     0,     0,  1338,
+    1124,     0,  1133,  1130,     0,  1127,  1099,  1310,  1300,     0,
+    1797,  2480,     0,  2411,  2463,  2462,  2483,  2483,  2483,     0,
+    1487,     0,  1613,  1052,  1057,  1061,     0,  1053,  1864,   463,
+       0,     0,     0,   483,     0,   481,   457,     0,  1033,  1097,
+    1630,  1642,     0,  1650,     0,     0,  1627,  1637,     0,     0,
+       0,  1636,   244,     0,  2403,  2404,  2402,  1515,  1493,     0,
+       0,  1582,     0,  1577,  1090,     0,  1101,  1100,     0,  2353,
+       0,  2352,  2364,  2365,  2362,  2363,  2361,  2342,     0,  2348,
+    2347,     0,     0,     0,  2358,  2349,     0,     0,  1723,  1518,
+    1725,  1719,   993,  2529,  1478,  1411,  1407,  1382,  1407,  1393,
+       0,     0,  1407,  1389,  1387,  1391,     0,  1485,     0,  1408,
+    1440,  1097,  1933,  1507,  1510,   359,   917,     0,   856,   808,
+     809,   821,     0,   821,   821,     0,     0,   904,     0,  1014,
+       0,   909,   765,   568,   940,   939,   569,     0,   902,     0,
+    1511,  1512,  1503,   442,   901,   922,   907,  1822,   933,   620,
+     968,   789,   705,   654,   645,   724,   648,   647,   691,   724,
+     659,   709,   707,   677,   709,   709,   684,   683,   701,   687,
+     667,   777,   777,   666,   704,   777,   688,   686,   690,     0,
+     692,   709,   697,   685,   689,   706,   682,   679,   703,   724,
+     724,   724,   663,   702,   777,     0,   695,   724,   624,   728,
+     665,   777,   784,     0,     0,   724,   726,  1943,   147,   135,
+       0,     0,   885,   887,     0,     0,   888,  2584,     0,  2586,
+       0,  1060,     0,    95,     0,     0,   348,   413,   366,  2476,
+       0,   203,  1097,     0,     0,   193,   195,   196,     0,     0,
+       0,   429,  1866,  1865,   426,   527,   548,     0,     0,     0,
+    1682,  1677,     0,  1673,     0,  1377,     0,     0,     0,     0,
+     771,   782,   780,   774,     0,   778,   779,  1351,     0,     0,
+     727,  1363,   724,  1181,   709,  1175,  1177,  1173,     0,   692,
+    1176,   724,     0,   777,  1180,  1172,     0,  1321,     0,     0,
+    1344,     0,     0,     0,     0,     0,     0,     0,  1208,     0,
+    1301,     0,     0,     0,     0,     0,     0,  1237,  1235,  1236,
+    1515,  2523,   859,  1129,     0,  1311,     0,     0,     0,  2488,
+    2488,  2488,  1655,  1654,     0,  1653,  1657,  1054,  1062,     0,
+     461,   464,     0,   456,     0,   480,     0,   447,   525,     0,
+       0,     0,  1651,  1639,  2520,  1628,  1631,  1938,  2405,  1081,
+       0,  1488,  1581,  1578,     0,  1571,  1573,  1575,     0,  1932,
+       0,     0,  2357,  2343,   766,     0,     0,     0,     0,  2344,
+    1412,  1410,  1420,     0,  1378,  1407,  1407,     0,  1378,     0,
+       0,     0,  1662,  1504,  1664,  1444,     0,  1422,     0,  1509,
+       0,     0,   916,     0,     0,     0,     0,     0,     0,   946,
+       0,   967,   906,   926,   948,   937,  1026,  1501,   921,   923,
+    1001,     0,   602,     0,   793,   653,   646,   664,   662,   713,
+     708,     0,   713,   713,   673,   691,   668,     0,   777,   681,
+     672,   693,   696,   698,   700,   713,     0,   777,   661,   660,
+     670,   657,   713,   736,     0,     0,     0,     0,   732,     0,
+     787,     0,   739,     0,   625,   729,   731,     0,     0,     0,
+     694,   777,   650,   785,   784,   652,   777,   784,   713,   713,
+       0,   133,   138,   149,   150,   876,  2583,     0,  2581,     0,
+    1056,  1450,    99,     0,     0,   206,   204,   205,     0,   199,
+     201,   196,  2594,     0,  2601,     0,     0,  2599,   428,   431,
+     542,   528,     0,     0,  1510,   854,     0,     0,  2242,  1530,
+    1245,   722,   720,   723,   721,   773,   772,   776,     0,   775,
+     784,     0,     0,  1183,  1178,   693,  1182,  1174,  1179,  1271,
+    1248,  1249,     0,  1342,  1333,  1277,     0,  1225,  1302,     0,
+       0,  1285,  1255,  1258,  1256,  1261,  1262,  1089,  1089,   594,
+    2536,  1131,  1824,  2491,     0,     0,  2487,  2485,     0,  2486,
+    2484,  2454,     0,  2409,  2410,  2408,  2395,     0,     0,     0,
+    1097,   469,     0,   486,   485,   482,  1515,  1641,  1643,  1649,
+    1638,     0,  1489,  1504,   758,  1574,     0,  1091,  2355,  2354,
+    2356,  2350,     0,     0,     0,     0,  1394,     0,  1398,  1403,
+    1399,     0,  1390,  1388,     0,  1529,  1432,  1433,     0,     0,
+    1438,  1442,  1515,  1510,   919,     0,   619,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   945,  1908,   935,
+     967,   903,     0,   908,   564,     0,   792,     0,   797,   717,
+     718,   719,   674,   714,   716,     0,   676,   644,   669,   699,
+     675,     0,   671,   658,   742,   741,  1107,   734,   749,   629,
+       0,     0,   740,   626,   730,   738,   733,     0,   649,   651,
+     655,   656,   642,   643,  1942,   140,   889,   280,  2585,  1072,
+       0,  2590,   121,  2598,  2608,   203,     0,     0,   144,     0,
+     194,   765,   197,  2520,   439,     0,   434,   824,     0,   853,
+       0,   826,   828,  1531,     0,   783,   781,     0,  1345,  1510,
+       0,  1304,  1306,  1418,   595,     0,  1800,  2460,  2459,  2458,
+    2455,     0,     0,     0,     0,     0,     0,  2489,  2493,  1652,
+       0,     0,     0,   477,     0,     0,   511,   526,  1497,  1510,
+       0,  1515,     0,  1579,  1572,  2360,  2359,  2345,  1413,     0,
+       0,     0,     0,     0,  1451,  1661,  1428,  1428,  1439,  1423,
+    1508,   918,     0,     0,   607,     0,     0,  1910,  1909,   938,
+       0,   790,     0,   794,   795,   796,     0,   788,   715,     0,
+     860,     0,   748,  1107,   737,     0,   746,   745,   743,   744,
+       0,   142,   306,     0,   292,   278,     0,     0,     0,   282,
+     151,   154,   152,     0,   153,   159,     0,   160,   161,   162,
+     163,   164,   155,   304,   305,   158,   156,   157,     0,  1958,
+       0,  1959,  2588,     0,     0,  2587,   170,   200,     0,     0,
+     136,   145,  2602,   747,   432,  1864,     0,  2516,     0,  1646,
+     108,   825,   845,   844,   830,     0,  1510,     0,     0,   110,
+     827,   847,   834,   112,   829,   846,   832,  1532,   712,     0,
+    1347,  1223,     0,  2456,  2494,  2497,  2495,  2496,  1533,     0,
+    2498,  2492,     0,  1854,  1098,     0,   470,     0,   473,   475,
+     489,     0,  1646,  1646,     0,     0,  1646,  1646,  1646,  1646,
+     504,   512,   514,     0,  1498,  1499,     0,  1494,  1496,  1490,
+    1562,   759,  1867,  2523,  1395,     0,  1400,     0,  1392,     0,
+       0,  1436,  1434,     0,   613,   824,   609,   611,     0,   791,
+       0,     0,   777,     0,   777,   735,  1097,   141,     0,   134,
+       0,     0,   291,   294,     0,     0,   297,   287,   286,   288,
+       0,   281,   280,   280,   334,   285,   331,   330,   323,  2520,
+       0,     0,     0,  2609,   202,  1097,   148,     0,   430,   436,
+     435,   839,     0,   831,     0,   852,   855,     0,   835,   833,
+    1510,  1825,  1535,  1534,  1658,  1666,     0,   758,     0,   478,
+     471,     0,     0,   487,     0,     0,  1646,  1646,     0,     0,
+       0,     0,     0,   484,   513,  1646,  1510,     0,  1080,     0,
+    1875,  1414,     0,     0,  1452,     0,  1429,     0,     0,     0,
+     615,   824,   608,   826,   828,     0,   803,     0,   802,     0,
+     799,   798,   678,   861,   680,     0,   143,   307,   318,   321,
+     313,   293,     0,     0,     0,   283,   280,     0,   267,   265,
+     266,   272,   273,   274,   275,   276,   277,   268,   271,   269,
+     270,   280,     0,   211,     0,     0,  2589,     0,  2591,     0,
+     180,   179,   171,     0,   280,  2595,     0,  2603,  2520,   838,
+     843,   842,   840,   841,   848,  1346,     0,     0,  1855,   465,
+     477,   474,   497,   490,   493,     0,   523,   517,     0,     0,
+     519,   520,   518,   515,   508,     0,   506,     0,  1495,  1563,
+       0,     0,     0,     0,  1868,  1870,     0,  1580,  1397,  1402,
+    1431,  1430,  1445,     0,   614,   610,   612,   924,   805,   806,
+     804,     0,     0,   630,     0,     0,   280,   314,     0,   289,
+       0,     0,     0,     0,   209,   337,     0,   207,   325,   325,
+    2592,  2593,   181,  2610,     0,   150,   170,   437,  1665,  1667,
+    1881,   472,   497,     0,   495,     0,   491,   488,   492,   521,
+     522,     0,   505,     0,   516,     0,     0,     0,     0,     0,
+    1869,     0,     0,  1876,  1878,     0,     0,     0,     0,   632,
+     631,   633,   315,   321,   311,   319,   280,     0,     0,   279,
+     298,   333,   210,     0,   335,     0,   280,     0,   324,   326,
+     328,     0,   132,  2604,     0,  1867,   494,     0,   502,   498,
+     500,   503,   511,   510,   507,  1097,  1873,  1874,     0,  1871,
+       0,     0,  1877,  1437,  1435,   801,   800,     0,   637,   627,
+     634,   636,     0,   312,     0,     0,   310,   290,   295,   280,
+       0,   280,   222,   221,     0,   213,   261,   332,     0,   212,
+    2596,   280,     0,  1875,   496,     0,     0,   509,     0,     0,
+    1566,  1568,  1872,  1880,  1879,   639,   638,   635,   316,     0,
+     280,     0,   280,     0,   280,     0,     0,     0,     0,     0,
+     208,   280,  2605,     0,  1883,   501,   499,  1098,  1564,  1097,
+       0,   308,   280,   296,   301,   338,     0,   216,   262,   263,
+       0,   219,  2597,  1882,     0,  1887,  1569,  1567,   280,   280,
+     297,   300,   336,     0,     0,   214,   215,   227,   226,   218,
+       0,     0,     0,  1894,   280,   280,   302,   235,   233,   280,
+     223,   231,   225,     0,   232,   264,   220,  1885,  1886,  1884,
+    1889,     0,     0,  1891,  1892,     0,  1856,     0,   217,   234,
+    1893,  1888,     0,  1895,  1897,     0,   224,  1890,     0,  1097,
+    1896,     0,  1098,  1898
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,    58,   603,  1448,    59,    60,    61,    62,    63,  1319,
-      64,   815,  1246,  1750,  1751,    65,   542,    66,  1024,  1505,
-    1506,  2972,  2973,  1507,    67,  2088,  3012,  3013,  3014,  1524,
-     512,   513,  1942,  1943,  1049,  2995,  2959,  3770,  2963,  3886,
-    4024,  3925,  2018,  3311,  3771,  3772,  3895,   537,  2086,  1462,
-    4048,  1922,  4157,  1923,    68,   638,  1022,  1484,  1485,  3329,
-    3330,  3591,  3331,  3583,  3584,  3585,  3586,  4291,  4131,  4232,
-    4292,  4372,  4408,  4414,  4415,  4339,  4424,  4425,  4426,  4412,
-     887,  4427,    69,   565,   566,   889,  1348,  2334,  1349,    70,
-    4340,  4410,  4132,  4133,  4031,  4134,  3898,  4135,  4035,  4136,
-    3901,  4137,  4138,  4139,  4140,  4283,  4141,  4030,  4332,  4128,
-    4129,  4334,  4389,  4406,  4142,  3908,  4025,  4219,  3909,  4026,
-    4278,  4124,  4279,  4327,  4385,  4125,  4220,  4330,  4223,  4143,
-    4149,  4293,  4144,  4150,  4145,  3913,  4042,  4148,  4040,  4147,
-    4336,  4288,  2578,  2994,   621,   622,   649,  2076,   623,  1038,
-     996,  1464,  1955,  1956,  2440,  2441,  2560,  2561,  2562,  1947,
-    1948,  1949,  2064,  2065,  2066,  1929,  1930,  1931,  1468,  1926,
-    1927,   624,   997,  1007,  1950,  1951,  1952,  2566,  2068,  2069,
-    2070,  2071,  1953,  1743,  1954,  2850,  2584,  3005,  3595,  3788,
-    3339,  3932,  4163,  3006,  3007,  2510,  2915,  2489,    71,   554,
-     867,  1316,  2307,  1317,  2309,  2732,  2733,  2734,  1793,  1794,
-    3666,  1798,  2306,  3828,  4175,  3972,  3973,  2736,  3971,  2740,
-    3129,  3130,  3429,  3668,  3831,  4180,  4077,  4252,  4178,  4248,
-    4179,  4250,  4351,  4304,  4305,  4088,  4190,  4191,  4256,  4307,
-    3985,  3986,  3987,  2327,  2746,  3671,  3597,  2058,  1454,  1455,
-     514,   515,   516,   646,  2585,  2004,  2586,  2587,  2932,  2006,
-    2007,  2706,  1382,  2928,  2901,  3642,  3001,  2936,  2937,  2938,
-    2939,  2940,  4010,  4108,  4109,  4106,  2946,  2868,  2449,  2450,
-    2515,  2949,  3293,  3880,  3548,  4276,  4324,  4325,  4326,    72,
-     864,  3786,  3516,  3531,  3295,  3296,  3297,  3298,  3299,  3300,
-    3301,  3030,  3031,  3737,  3738,  3739,  3025,  3026,  3366,  3549,
-    3550,  3551,  3787,  3752,  1170,  3359,  2787,  2788,  3838,  2796,
-    2797,  2838,  3174,  2839,  1458,  3360,  3361,  3362,  3560,  3552,
-    2948,  3509,  3730,  3733,  3872,  4115,  2451,  2869,  2452,  2872,
-     950,   517,  2453,  2454,  1538,  1539,  3935,  3944,  3948,  3936,
-    3949,  3945,  3937,  3938,  3939,  3951,  3947,  2591,  3598,  3599,
-    2861,  3094,  3874,    73,  1472,   990,   999,   995,  1014,   633,
-    1473,  2019,  2522,  3570,   611,  2008,  3501,  3224,  3505,  2009,
-    2881,  2010,  3211,  3487,  2011,  3240,  3503,  3727,  2882,  2883,
-    2012,  2013,  2014,  3223,  3232,  3725,  2455,  1298,   126,   127,
-     629,   630,   631,  2259,  2944,  2496,    74,  1430,  1425,    75,
-     962,   957,   958,  1428,  1429,  1888,  2385,    76,   641,  1511,
-      77,  1327,  2319,  2320,  2321,    78,  1015,    79,    80,   642,
-    1518,  1519,  1520,    81,  1310,   134,    82,   875,  1322,  1324,
-    1325,    83,   637,  1016,  1017,  1018,  1019,  2024,    84,  1784,
-    2291,  2292,  2293,  2294,  1481,  2524,  1482,  1483,  2033,  3122,
-      85,    86,   600,  2214,   571,   896,   572,   573,  1827,  2347,
-    3643,   907,   908,   909,  2772,  1360,  1361,  1362,  1790,  2777,
-    1103,  1100,   780,   781,   782,   783,  1194,  1195,  3553,   784,
-    1204,  1709,  3042,  3380,  1569,  1570,   785,   786,   787,   788,
-     789,   790,  1736,  3062,  3063,  3395,  2244,  2245,  2246,   791,
-    2133,  3049,  2146,   792,  1187,  1694,  1627,  3387,  3055,  3627,
-    3803,  1555,  2108,  2623,  3033,  2703,  2208,  1126,  1127,  1084,
-    2115,  1561,  1895,  1896,  1897,  1898,  1899,  3475,  3474,  3476,
-    3844,  3692,  3846,  3696,  2396,  1900,  1901,  2813,  3690,  3998,
-    2209,  2210,  2211,  3405,  2814,  3191,  2832,  2833,  3707,  2387,
-    1902,  2820,  4006,  3704,  3705,  4104,  4103,  3706,  3480,  3481,
-    3204,  3205,  2968,  2969,  2970,  3848,  1618,  1619,  1625,  1293,
-    1294,  1556,  2288,  2720,  3678,  3835,  2235,  3446,  3833,  3992,
-    2015,  2907,  2908,  2349,  2350,  2836,  3208,  3237,  1385,  3644,
-    2722,  1861,  2803,  2804,  3348,  3965,  4413,  1588,  2536,  2851,
-    2852,  1590,  2914,  4093,  4260,  4354,  4355,  4356,  3156,  3157,
-    3450,  3451,  2351,  2769,  3158,  3679,  3997,    87,   521,    88,
-    1748,  2250,  1243,  2264,  1026,  1542,  1543,   803,   534,    89,
-     543,  2289,    90,   561,  1811,   854,   879,  1330,  1331,  2328,
-    2747,  2754,  2329,  2759,  3439,  2749,  3135,  3136,  2254,  2255,
-    2750,  3138,  3436,  3419,  3420,  3117,  3663,    91,   588,  3202,
-    2827,  2828,  4069,  4070,   880,    92,   520,  1071,  2097,  1548,
-    2096,  1072,  1073,  2099,   667,   668,    93,   964,   584,  1407,
-    1408,  1409,  1877,    94,   576,   951,  2800,  2809,  1855,   871,
-    1239,  1389,   954,  1390,  1841,  2367,  1371,    95,   986,   985,
-      96,   607,  1450,    97,   816,  1266,  1760,  2710,  3105,  1267,
-    1268,  2265,  3811,    98,   562,   884,   885,  1333,  1813,    99,
-     556,   872,  1804,   100,   546,   859,  1302,  1783,   101,   102,
-     861,  3123,  4072,  4245,   550,  1786,  1306,  3340,  4095,  4199,
-    4200,  4202,  4268,  4269,  4300,  4400,  4434,  4418,  4437,  4438,
-    4441,  4448,  4449,   794,   973,   795,  3722,   796,   797,  2755,
-    2756,  3209,   798,  2757,   799,  2862,  1027,  1545,   540,   492,
-     618,   974,  2728,   801,  3915,   993,  1042,   494,   495,   103,
-     911,   575,  1364,  1365,  1366,  1836,  1837,   955,  2223,  1838,
-    1839,  2364,  2359,  3458,  3180,  3172,   104,   862,   499,  1308,
-    1309,  2300,   105,   587,   106,  1295,  1777,  1778,  2285,  2719,
-    2286,   107,   892,   108,   841,  1771,   842,  1271,   843,   844,
-    1285,  1279,  1288,  1282,  3816,  3655,  3656,  2273,  1242,  1043,
-    2080,  2988,  1044,  1763,  2267,  2268,  3414,  3658,  3108,  3822,
-    3823,   109,   135,   502,   644,  1033,  1354,   110,   111,   112,
-     113,  1357,  1443,  2343,  1444,  2215,  1445,  1446,  1909,  1825,
-    1690,  1691,  3092,  1184,  1185,  2218,  2676,  2677,   910,   653,
-    1059,  1051,   128,   129,   130,   656,   657,   131,  1012,  1013,
-    2523,  2965,  3313,  3573,  3574,  3776,  3920,  1053,  3782,  4239,
-    4376,  1054,  1055,  2996,  3784,  4052,  4241,  4346,  1056,  2575,
-    3326,  3921,  4159,   114,   975,   597,  1441,  1436,  1438,  1905,
-    2403,   115,   116,   117
+      -1,    58,   606,  1451,    59,    60,    61,    62,    63,  1322,
+      64,   818,  1249,  1753,  1754,    65,   545,    66,  1027,  1508,
+    1509,  2977,  2978,  1510,    67,  2091,  3017,  3018,  3019,  1527,
+     515,   516,  1945,  1946,  1052,  3000,  2964,  3775,  2968,  3891,
+    4029,  3930,  2021,  3316,  3776,  3777,  3900,   540,  2089,  1465,
+    4053,  1925,  4162,  1926,    68,   641,  1025,  1487,  1488,  3334,
+    3335,  3596,  3336,  3588,  3589,  3590,  3591,  4296,  4136,  4237,
+    4297,  4377,  4413,  4419,  4420,  4344,  4429,  4430,  4431,  4417,
+     890,  4432,    69,   568,   569,   892,  1351,  2338,  1352,    70,
+    4345,  4415,  4137,  4138,  4036,  4139,  3903,  4140,  4040,  4141,
+    3906,  4142,  4143,  4144,  4145,  4288,  4146,  4035,  4337,  4133,
+    4134,  4339,  4394,  4411,  4147,  3913,  4030,  4224,  3914,  4031,
+    4283,  4129,  4284,  4332,  4390,  4130,  4225,  4335,  4228,  4148,
+    4154,  4298,  4149,  4155,  4150,  3918,  4047,  4153,  4045,  4152,
+    4341,  4293,  2582,  2999,   624,   625,   652,  2079,   626,  1041,
+     999,  1467,  1958,  1959,  2444,  2445,  2564,  2565,  2566,  1950,
+    1951,  1952,  2067,  2068,  2069,  1932,  1933,  1934,  1471,  1929,
+    1930,   627,  1000,  1010,  1953,  1954,  1955,  2570,  2071,  2072,
+    2073,  2074,  1956,  1746,  1957,  2855,  2588,  3010,  3600,  3793,
+    3344,  3937,  4168,  3011,  3012,  2514,  2920,  2493,    71,   557,
+     870,  1319,  2310,  1320,  2312,  2736,  2737,  2738,  1796,  1797,
+    3671,  1801,  2309,  3833,  4180,  3977,  3978,  2740,  3976,  2744,
+    3134,  3135,  3434,  3673,  3836,  4185,  4082,  4257,  4183,  4253,
+    4184,  4255,  4356,  4309,  4310,  4093,  4195,  4196,  4261,  4312,
+    3990,  3991,  3992,  2331,  2751,  3676,  3602,  2061,  1457,  1458,
+     517,   518,   519,   649,  2589,  2007,  2590,  2591,  2937,  2009,
+    2010,  2710,  1385,  2933,  2906,  3647,  3006,  2941,  2942,  2943,
+    2944,  2945,  4015,  4113,  4114,  4111,  2951,  2873,  2453,  2454,
+    2519,  2954,  3298,  3885,  3553,  4281,  4329,  4330,  4331,    72,
+     867,  3791,  3521,  3536,  3300,  3301,  3302,  3303,  3304,  3305,
+    3306,  3035,  3036,  3742,  3743,  3744,  3030,  3031,  3371,  3554,
+    3555,  3556,  3792,  3757,  1173,  3364,  2792,  2793,  3843,  2801,
+    2802,  2843,  3179,  2844,  1461,  3365,  3366,  3367,  3565,  3557,
+    2953,  3514,  3735,  3738,  3877,  4120,  2455,  2874,  2456,  2877,
+     953,   520,  2457,  2458,  1541,  1542,  3940,  3949,  3953,  3941,
+    3954,  3950,  3942,  3943,  3944,  3956,  3952,  2595,  3603,  3604,
+    2866,  3099,  3879,    73,  1475,   993,  1002,   998,  1017,   636,
+    1476,  2022,  2526,  3575,   614,  2011,  3506,  3229,  3510,  2012,
+    2886,  2013,  3216,  3492,  2014,  3245,  3508,  3732,  2887,  2888,
+    2015,  2016,  2017,  3228,  3237,  3730,  2459,  1301,   126,   127,
+     632,   633,   634,  2262,  2949,  2500,    74,  1433,  1428,    75,
+     965,   960,   961,  1431,  1432,  1891,  2389,    76,   644,  1514,
+      77,  1330,  2323,  2324,  2325,    78,  1018,    79,    80,   645,
+    1521,  1522,  1523,    81,  1313,   134,    82,   878,  1325,  1327,
+    1328,    83,   640,  1019,  1020,  1021,  1022,  2027,    84,  1787,
+    2294,  2295,  2296,  2297,  1484,  2528,  1485,  1486,  2036,  3127,
+      85,    86,   603,  2217,   574,   899,   575,   576,  1830,  2351,
+    3648,   910,   911,   912,  2777,  1363,  1364,  1365,  1793,  2782,
+    1106,  1103,   783,   784,   785,   786,  1197,  1198,  3558,   787,
+    1207,  1712,  3047,  3385,  1572,  1573,   788,   789,   790,   791,
+     792,   793,  1739,  3067,  3068,  3400,  2247,  2248,  2249,   794,
+    2136,  3054,  2149,   795,  1190,  1697,  1630,  3392,  3060,  3632,
+    3808,  1558,  2111,  2627,  3038,  2707,  2211,  1129,  1130,  1087,
+    2118,  1564,  1898,  1899,  1900,  1901,  1902,  3480,  3479,  3481,
+    3849,  3697,  3851,  3701,  2400,  1903,  1904,  2818,  3695,  4003,
+    2212,  2213,  2214,  3410,  2819,  3196,  2837,  2838,  3712,  2391,
+    1905,  2825,  4011,  3709,  3710,  4109,  4108,  3711,  3485,  3486,
+    3209,  3210,  2973,  2974,  2975,  3853,  1621,  1622,  1628,  1296,
+    1297,  1559,  2291,  2724,  3683,  3840,  2238,  3451,  3838,  3997,
+    2018,  2912,  2913,  2353,  2354,  2841,  3213,  3242,  1388,  3649,
+    2726,  1864,  2808,  2809,  3353,  3970,  4418,  1591,  2540,  2856,
+    2857,  1593,  2919,  4098,  4265,  4359,  4360,  4361,  3161,  3162,
+    3455,  3456,  2355,  2774,  3163,  3684,  4002,    87,   524,    88,
+    1751,  2253,  1246,  2267,  1029,  1545,  1546,   806,   537,    89,
+     546,  2292,    90,   564,  1814,   857,   882,  1333,  1334,  2332,
+    2752,  2759,  2333,  2764,  3444,  2754,  3140,  3141,  2257,  2258,
+    2755,  3143,  3441,  3424,  3425,  3122,  3668,    91,   591,  3207,
+    2832,  2833,  4074,  4075,   883,    92,   523,  1074,  2100,  1551,
+    2099,  1075,  1076,  2102,   670,   671,    93,   967,   587,  1410,
+    1411,  1412,  1880,    94,   579,   954,  2805,  2814,  1858,   874,
+    1242,  1392,   957,  1393,  1844,  2371,  1374,    95,   989,   988,
+      96,   610,  1453,    97,   819,  1269,  1763,  2714,  3110,  1270,
+    1271,  2268,  3816,    98,   565,   887,   888,  1336,  1816,    99,
+     559,   875,  1807,   100,   549,   862,  1305,  1786,   101,   102,
+     864,  3128,  4077,  4250,   553,  1789,  1309,  3345,  4100,  4204,
+    4205,  4207,  4273,  4274,  4305,  4405,  4439,  4423,  4442,  4443,
+    4446,  4453,  4454,   797,   976,   798,  3727,   799,   800,  2760,
+    2761,  3214,   801,  2762,   802,  2867,  1030,  1548,   543,   493,
+     621,   977,  2732,   804,  3920,   996,  1045,   495,   496,   103,
+     914,   578,  1367,  1368,  1369,  1839,  1840,   958,  2226,  1841,
+    1842,  2368,  2363,  3463,  3185,  3177,   104,   865,   502,   503,
+    1311,  1312,  2303,   105,   590,   106,  1298,  1780,  1781,  2288,
+    2723,  2289,   107,   895,   108,   844,  1774,   845,  1274,   846,
+     847,  1288,  1282,  1291,  1285,  3821,  3660,  3661,  2276,  1245,
+    1046,  2083,  2993,  1047,  1766,  2270,  2271,  3419,  3663,  3113,
+    3827,  3828,   109,   135,   505,   647,  1036,  1357,   110,   111,
+     112,   113,  1360,  1446,  2347,  1447,  2218,  1448,  1449,  1912,
+    1828,  1693,  1694,  3097,  1187,  1188,  2221,  2680,  2681,   913,
+     656,  1062,  1054,   128,   129,   130,   659,   660,   131,  1015,
+    1016,  2527,  2970,  3318,  3578,  3579,  3781,  3925,  1056,  3787,
+    4244,  4381,  1057,  1058,  3001,  3789,  4057,  4246,  4351,  1059,
+    2579,  3331,  3926,  4164,   114,   978,   600,  1444,  1439,  1441,
+    1908,  2407,   115,   116,   117
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -3536
+#define YYPACT_NINF -3833
 static const int yypact[] =
 {
-    3639,  2416,    79, -3536,  -141,   186, 48446,   109,  -133,  -133,
-     406,  3105, -3536, -3536, -3536, -3536, -3536,  3362, -3536, 48446,
-      79, -3536, 24629, -3536, -3536,   -66, -3536,    58,  -133,    79,
-     508, -3536, 48446, -3536,   705,  1132,    79, -3536, -3536, 43566,
-   -3536,   406, 48446, -3536,   907, -3536, 43566,  1285,   961,   754,
-     842,   -41, -3536, -3536, 48446,  1762, -3536,   589,  1357,  1266,
-   -3536, -3536,  1047, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, 25243, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,  1297, 48446,
-    1320, 48446,  1304, 48446, 41736, 48446,   969,    94,  1400, -3536,
-   -3536,  1493, -3536, -3536,  -133,   406, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536,   998, -3536, -3536,  1113, -3536, -3536, -3536,
-   -3536, -3536,  1623,  1454, -3536,  1488, 41736, -3536, 48446, -3536,
-   -3536, -3536,   202, -3536,  1169, -3536,  1180,  1494,  1523,  1553,
-    1206, 11524,  1561,  1561,  1561, 48446,  1514,  1561,  1561, 48446,
-   -3536,  1561, -3536,  1561,  -133, -3536, -3536,  4198, 48446,  1426,
-     188,  -123, 41736,   194, 48446,  -141,   126, -3536,  1562, -3536,
-   -3536, -3536,  -133, -3536,  1769,  1631,   228, 48446, -3536, -3536,
-    -133,   180,   -11,  1240, -3536, -3536,  1362, -3536,  5054,   140,
-   -3536, -3536, -3536,  2198, -3536, -3536,  4601,  1362, -3536, -3536,
-   -3536,  1249, -3536, -3536, -3536, 48446,  -141,  -133,  1564, -3536,
-   -3536,   214,   214,   214, -3536,   214, -3536,   214, -3536,   589,
-    1239, -3536, -3536,  1272, 48446,   622,   632, -3536, -3536,  1274,
-     884, -3536,  1330, 39296, -3536, 48446, -3536, -3536, -3536, -3536,
-    1560, -3536, -3536, -3536,  2396, -3536, 24629, -3536, -3536, -3536,
-      94, -3536, 48446,  1409, -3536, -3536, -3536, 24629,  1305, 48446,
-   -3536, 24629, 24629,   235,     4,  1244, 48446, 48446,  1754, -3536,
-    1940, 39296,  1508, -3536,   177,   989,  1493,  1939, -3536,  1454,
-   -3536, 48446, 48446, 48446, -3536, -3536, -3536, 44176,  1206,  1340,
-    1344,  1352, 16580, -3536,  1360,  1363,  1374, 11524,  1376,  1378,
-    1380,  1382,  1408,  1418,  1423,  1428,  1432,  1439,  1450,  1473,
-    1491,  1495,  1499,  1499,  1511,  1524,  1526,  1540,   922,  1559,
-   -3536,  1572,  1575,  1583, -3536, -3536,  1590,  1600,  1603, -3536,
-   -3536,  1609,  1612,  1634, 12156,  1638,  1641,  1650, -3536, 21550,
-    1653,  1662,  1669,  1702,  1710,  1713,  1716,  1724,  1727, -3536,
-   -3536, 11524,  1511, -3536, -3536,  1751, -3536,  1756,  1770,  1775,
-    1788,  1794,  1796,  1801,  1806,  1813,  1823,  1827,  1835,  1839,
-    1849,  1856,  1511, -3536,  1194,  1861,  1870,  1313,  1873, -3536,
-    1898, -3536,   290,  1902,  1499,  1511,  1511,  1907,  1918,  1922,
-    1932,  1938, 16580, 16580, 16580, 11524, -3536, 48446, -3536, 48446,
-    1958,  3374, -3536,  2650, 16580,   782, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536,  1331,  1424, -3536, -3536, -3536, -3536, -3536,
-    1941,  1349,  1871, 48446, 48446, 48446,  1811, 48446, 48446, 41736,
-    1577, 48446, 39296, -3536,  1561,  1605,  5163,  1832,  1640,  1771,
-   -3536, -3536, -3536, -3536, -3536,  1957, -3536, -3536,  1834, -3536,
-    1999, -3536, -3536,   375, -3536,    62, -3536, -3536, -3536, -3536,
-   -3536, -3536,  2003,  1739, -3536, -3536,   141, -3536, -3536, 48446,
-   -3536, -3536, -3536, -3536,  2260,  2053, -3536, -3536, -3536,   155,
-    2526,   208, 24629, -3536,  1950, 11524,   997, -3536,  -183, -3536,
-   -3536,  2327, -3536, -3536, 39296, 24629, -3536, -3536, -3536, 22166,
-   -3536, -3536,  2563, -3536,  1992, -3536, -3536,  1424,  3458, -3536,
-    1832,  2262, -3536,  2264,  2169,     4,  2070, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536,  2021,  2198, -3536,
-   -3536, -3536, -3536,  2483, -3536,  2182, -3536,    11, -3536,  2043,
-    1212,    11, 39906,  2394,   856, -3536,   108, -3536,  2479, -3536,
-   -3536, -3536, -3536, -3536,  2173,  2156, -3536, -3536,   128,  2630,
-   -3536,  2528, -3536,    54, -3536, -3536,  2195, -3536,  2394,    11,
-     856, -3536,  2435,  2559,   445,  -150, -3536, -3536,   -44, -3536,
-   -3536,  2628, -3536, -3536, 24629, -3536, -3536, -3536,  2260, -3536,
-   -3536, -3536, -3536,  2094, -3536,  2364,  2205, -3536, -3536,    60,
-   -3536,  2127,    14,  2623, -3536,   737, 35636, -3536, -3536, -3536,
-    2654,  2674,  1499,  2158, -3536, -3536, -3536,  2785, -3536, -3536,
-    2180,  2696,  2696,  2696,  2806, -3536, -3536, -3536, -3536, -3536,
-   -3536,  2352,  2221, -3536,  1409, 24629,  2577,  2201, -3536, -3536,
-    2437, 11524, -3536, -3536,  4644,    24, -3536, -3536,  2101, -3536,
-    2776,  2401, -3536, -3536, -3536, -3536,  2664, -3536, -3536,  2785,
-    2723,  2696,  2615,  2209, -3536, -3536, -3536, -3536, -3536, -3536,
-     244, -3536, -3536, -3536, -3536, -3536, -3536, -3536,   879, -3536,
-   -3536, -3536, -3536, -3536,  1409, -3536, 24629, -3536, -3536, -3536,
-   24629, -3536,  2212, -3536,  2207, -3536, 11524, 11524,  1145,  2777,
-    2835,  2835,  2835,  1958,  2247, 11524, 11524, 11524, 11524, 11524,
-   11524, 11524, 11524, 11524, 11524, 11524, 11524, 11524,  1152,  2222,
-   -3536, -3536,   977, -3536,  2226, 11524, 11524,  2317, 11524,  1424,
-   11524, 25857, -3536,  5642, 11524,   274,  2718, 11524, 11524, 11524,
-   11524,  3240, 11524, 11524, 11524, 25857,  2851,  2231, -3536,  2228,
-    1406, 11524, 11524,  1448, 11524, 11524, 11524, 11524, 11524, -3536,
-   -3536, 11524, 11524, 11524, 11524, 16580, 11524, 11524, 11524, 11524,
-   11524, 11524,  2835,  2835, 11524, 11524,  1533, -3536, 11524,  1424,
-    2495,  2495, 11524,  1424,  8364, 11524, -3536, -3536, -3536, -3536,
-   -3536,  2233, -3536, -3536, -3536, 25857,  2835,  2835, 11524, 11524,
-    2777,  2777,  2777,   151,  2239,   847, 11524, 27085,  2236, -3536,
-   -3536, -3536, -3536, 11524, 11524, 11524, -3536, 16580, -3536, -3536,
-    1008, -3536, -3536, -3536, 12788, 16580, 16580,  2246, 16580, 16580,
-   16580, 16580, 16580,  2608, 16580, 16580, 17212, 17844, 16580, 16580,
-   16580, 16580,   201,  2777, 41736, 16580, 11524, -3536, -3536, 48446,
-   -3536, -3536, -3536,  2245, 24629,  1577, -3536, -3536,   -88,  2724,
-   -3536, -3536,  2254, 24629, -3536,  2251, -3536,  2610, -3536, -3536,
-    2617,  2631,  2633, -3536, -3536, -3536, -3536, -3536,  2860,  2634,
-   -3536, -3536,  2636, -3536, -3536, -3536, -3536,  2286, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536,  2361, -3536, -3536, -3536,  2290,
-   -3536, 39296,  2290, -3536, -3536,  2290, -3536, -3536,  2290,    21,
-    5670, -3536, -3536, 48446, -3536, 49056, -3536, -3536, 22166,  -141,
-   -3536, -3536, 13420, -3536, -3536, -3536,  2645,   349,  2291, -3536,
-   24629, -3536,  1958, -3536,    83,    83,  2535,   169, 41736, -3536,
-   -3536,   198,  2293,  2376,  2297, -3536,  2380, 24629, 24629, -3536,
-   -3536, -3536, -3536,  2920,   -11, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,  2304,  2772,
-    2305, 39296,    40, -3536, 48446, -3536,  1545, -3536, -3536, -3536,
-    2311, -3536, 11524, -3536,  2313, -3536,   927,  2701, -3536,  -141,
-   11524, -3536,  2328,  1454, 48446, 48446, 48446, 24629, 48446, 24629,
-   -3536,   742,   742, -3536, 36246, -3536, -3536, -3536, -3536,    11,
-   48446, 48446,    11, 39296, -3536,   856, 48446,    11, -3536,  2705,
-    2428, -3536, -3536, -3536,  2781, -3536, -3536,  2766,  2333, -3536,
-    2701, -3536, -3536,   856, -3536, -3536, 24629, -3536, -3536,   856,
-   -3536,   856,   856,    11,    11,  2381, -3536, -3536,  2335, -3536,
-    2381,  2480, -3536,   976,   214,  2575, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536,    50, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536,   185, -3536, -3536, -3536,  2061,  2833,
-   -3536, 41736,  3409,   945,   875,  3409,  1737,  -141,   983, -3536,
-     983, -3536,  3015,  2609,   205, 24629, -3536,  2342, 44786, 24629,
-   -3536, -3536, -3536,   160,  2347,  2349,  1958,  2816,  2820,  2823,
-    2824,  2826,  2831,  2838,  2843,  2844,  2845,  2846,  2855,  2856,
-    2857,  2861,  2862,  2864,  2865,  2366, -3536, -3536, -3536, -3536,
-   24629, -3536, -3536, -3536, -3536,  2434, -3536, -3536, -3536, -3536,
-    1606, -3536, -3536, -3536,   189,  2082,  2423,  2452,   174, 39296,
-    2849, 48446, 48446,  1454, 48446, 48446, -3536, -3536,   603,  2683,
-    2686,  2687,  2424, -3536, -3536, -3536,  1014, 48446,  2863, 30146,
-   -3536,   353,   386, -3536,  2835,  2430, -3536,  2436,  2438,  2439,
-   11524,    74,  1177,   481,  1093,  1028,   893,   357,   388, -3536,
-    1291,   437,   439,   454,  1070,   459,   230, -3536,  2440,  2447,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,  2445, -3536,
-   -3536, -3536,   471,   490,  1096,  1144,  2453,  2454, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,  2871, -3536,
-    1306, -3536, -3536, -3536, -3536,  2451, -3536, -3536,  1160,   511,
-     725,   163,  2431,  1368,   747,  1386,  1441,  2458, 25857, 48446,
-    2835,  2459,  1204,  1214,  2835,  2460,   824,  1226,  1455,  1516,
-    1527,  1257,  1265,   833,  1565,  2708,  1267,   880,   887,   906,
-     928,  1333,  2461,  2462,   932,   115,  2835,  2463,   258,  2464,
-    2468,  1335,  9628, 10260, 10892,   251,   940, -3536,  2470, -3536,
-    2228,  2471,  2472,   278,  1365, -3536, 11524, -3536, -3536,   872,
-      86,  2522,   111,  1138, -3536,  2629, 48446,  2197,   125, -3536,
-   -3536, -3536, -3536, -3536, -3536,    64, -3536,  2478, -3536,  2484,
-    2143,  2482, 11524,   795,  2482,  2895,  1750,  1750, 16580,  3022,
-    2841, 12156,  1105, 12156,  1105,  2482,  2482,  2482, -3536, 16580,
-    2489, 16580, 16580, -3536,  2777,  1958,  2496,   943, 48446, -3536,
-     -88, -3536, -3536, -3536, -3536,   102, 39296,    93, 24629, 41736,
-    2488, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,  4561,
-   24629, -3536, 48446, -3536,  2574, -3536, -3536, -3536, 22780, 22780,
-   -3536, 22780, -3536, -3536,   223,   729,  3373,  2523, -3536, -3536,
-   -3536, 29534,  1958, -3536, 24629, -3536,  2898,   -20, 24629,  2342,
-   -3536,  2503, -3536, -3536, -3536, -3536, -3536,  2303,  2612, -3536,
-    3125, -3536, 11524,  -141, -3536, 39296, 39296, 24629, 24629,   703,
-   -3536,  1818, -3536, -3536, -3536,  3458, 18476,  2934,  2948, 22780,
-   22780, 22780, -3536, -3536, -3536, -3536, -3536,   837,  1958, -3536,
-    2508, -3536, -3536, -3536, -3536, -3536, 45396,   137, -3536, -3536,
-    -141,  2953, -3536,  1958,  2518, 48446, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,  2978,
-   -3536,  2693,   519, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-      11, -3536, -3536, -3536, -3536, -3536,  2743,  2394,  2630,  2953,
-      11,   856, 24629,    11,    11, -3536, -3536,  1522, -3536,   -44,
-   -3536, -3536, -3536, -3536, 48446,  2740,  2678, -3536,  2529, -3536,
-   -3536, 24629, -3536,  2531, -3536,  2968,  3115,  2394, -3536, -3536,
-   -3536,   102,   102,  2827, -3536,  -141,  2662,  2665,  2666,  2672,
-    2673,  2713, -3536, -3536,  -141,  -141, -3536, -3536,   102, -3536,
-    1167, -3536, -3536, -3536, -3536,  -141,  -141,  -141,  -141,  2540,
-    -141,  -141,  1618, -3536, -3536,   102,   102, -3536,  2034, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536,  1020, -3536,  2641,  3099,
-    2792,   102,   102,  3099,   102,  2793,  2794,   102,   102,  2638,
-    3046,   102,  2937,  2660,  2490,  2941,   102, -3536,  2667,  3057,
-     102,   102,   102,   102,  3099,  2811,  3153,   102,   102, -3536,
-     102,  2813,  2818,   154,  2814,  2817,   102,   192, 48446,   102,
-     102,  2822,   102, -3536, -3536,  5934, -3536, -3536, -3536, -3536,
-   -3536, -3536,  -109, 23397, -3536, -3536,   102,   117, -3536,  2771,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536,  2580, -3536, -3536, 11524,  2583,  2540,  -141,  -141,
-     869,  -141,  2540,  -141,  -141,  -141,  -141,  -141,  2540,  2540,
-    -141,  1048,  -141,  2540,  4644, -3536, -3536, -3536, -3536,   193,
-     102,   102,   102,   102, -3536,  2332, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, 41736,  2940,  2299,   -56, -3536, -3536,
-   41736, -3536, 48446, -3536,  1211, 48446,  2584,  -137,  4165,   362,
-     362, -3536, 24629, 24629, 24629, 48446,  2637,  2523, 30146, -3536,
-   -3536,   976, -3536,  2579, 14052, -3536,  2591, -3536, 11524, -3536,
-   -3536, -3536,   774, 11524, 11524,  3069,  2487, -3536, 40516, -3536,
-   -3536, -3536, 11524, 11524, -3536, 11524, 11524, 11524, 11524, -3536,
-   11524, 40516,  2487, 11524, -3536,  2597, -3536,  2987,  2989, -3536,
-   -3536, -3536, -3536, 11524, -3536, 11524, 11524, -3536, 11524, 11524,
-   11524, 11524, -3536, 11524, -3536, -3536, 16580, -3536,  2594,  2604,
-   -3536, -3536, -3536,  2613, -3536, 11524, -3536, -3536, -3536, -3536,
-   -3536, -3536, 11524, -3536, 11524, -3536, 11524, 11524, 11524, 11524,
-   -3536, -3536, -3536, 14684, 11524, 11524,  2618, -3536, -3536, 11524,
-   11524, 11524, -3536, 11524,  1228, 11524,  1908, 11524,  2047, 11524,
-   -3536, 11524, -3536, -3536, -3536, -3536, 11524, -3536,  1630, -3536,
-   -3536,  1202, -3536,   872,  2619, -3536, -3536,  1545, -3536, -3536,
-    2614,  2624,  2625, 41736, 11524, -3536, -3536, -3536, -3536, -3536,
-   -3536, 16580,   323,  2620, 16580, -3536,  2895,  3240,  3240,  2181,
-   11524,   795,  2895, 11524,  2622,  2616, -3536, 11524, 48446, -3536,
-   -3536, -3536, -3536, -3536, -3536, 41736, -3536, -3536, -3536, -3536,
-      93, -3536,  2251, -3536,  2342, -3536, -3536,  1635, -3536, 39296,
-    2626, -3536,  2627,  2690,  2694,  2704, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,  2394,  1818,
-   -3536, -3536,  2635, -3536, -3536,  2437,  2720,  2657,  3005,  3192,
-   -3536, -3536, 48446, 16580, -3536,  3234,  2656,  2658,  3124,  2659,
-    1958, -3536,  2738, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536,   696, -3536, -3536,  2663,  2663, 20320, -3536, -3536, -3536,
-    3129,   585,   585,   585, -3536, -3536, -3536, -3536,  2923, 39296,
-    3101,  3106,  3109,   737, -3536,   498, -3536,   845,  3062,  2394,
-   -3536,  3114, 42346, -3536, 30756, -3536,  2679,  3060,  2680,   102,
-   35026,   933, 27698, 36856, -3536, -3536,   869, -3536,    75, -3536,
-   37466,  3139, 37466, 37466, -3536,  2960, -3536, -3536, -3536, -3536,
-    2523,   856, -3536, -3536, -3536,  2684, -3536, -3536,   949,  3059,
-    3072, -3536,  2949,   877,  2949,   949,   949, 25857,   976,  2274,
-   -3536,  2540,  3004, -3536, -3536, -3536, 41126, 38076, -3536, -3536,
-   -3536, -3536,  3225, -3536,  3229,  1213, -3536, -3536,  2716,   875,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536,  1737,  2716,  2716,   983, -3536,
-     138, -3536, -3536, -3536, -3536, -3536, 26471,    79, -3536,   217,
-   -3536, 26471, -3536,   160,   160, -3536, 26471,    79,   869,  2540,
-   26471,  2540, 46006,    79,  -141,  -141,  2163,   102,  2540, -3536,
-   -3536,  3091, 48446,  3093, 26471, 26471, -3536, 41736, -3536,   102,
-     161,  2540,   869,   869, 26471,    79, 25857,  1258,  1741, -3536,
-    -141,    79, -3536, -3536, -3536, -3536, 24629,    79,    79,  2410,
-   -3536, -3536, -3536,  2540,  1741, 46006, -3536, -3536,  6208, -3536,
-   -3536, -3536, 19706, 48446,  1134,   175, -3536,  2714, 33196,    26,
-     293,  2801,   908,  2726,  2728, 46616,  1958,  2540, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536,  -141,  2303,  2716,  2716,  2082, -3536,  2990,  3152,   102,
-   -3536,  2085, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536,  2836, -3536,   171,  2925,  2751, -3536, -3536,   144, -3536,
-   -3536,   791, 24629, 19092, -3536,  2988, -3536,  3365, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536,  2749,   976,  3009,
-    1263,  2523,  2765, -3536, 12156,  1433, -3536,  1958, 11524,  1958,
-    1613, -3536,  2761,  2761,  2761, -3536,  2762, -3536, -3536,  2761,
-    3155,  2761,  3156,  2770, -3536,  2773, -3536,  1645,  1463, -3536,
-    1658,  1461,  2146,  1467,  2779,  2780,  1331, -3536, 11524, 11524,
-    1479,  1489,   567,   953,  1021,   348, -3536,  1595,  2745, -3536,
-   -3536,  1607,  1629,  1643,  1681,  1023,  1698,  1679, 12156,  1731,
-     276,   359, -3536,  1733,  1055,  1059,  1763, 11524,  1845, 11524,
-    1858, 11524,  1867,  1899,  1915, -3536,  2021,  1202, -3536, -3536,
-    2786, -3536, -3536, -3536, -3536, -3536,  2759,  1958,  2788, -3536,
-   -3536, 11524, -3536,   782, -3536, -3536, 16580,   414,  2789, -3536,
-    1958, -3536, -3536,  2790,  1331, -3536, -3536, -3536, -3536, -3536,
-    2795, -3536, 48446,  -198,  2783, 31366, 39296, 39296, 39296,  2782,
-   11524, -3536, -3536,  3052, 24629, -3536,  3194, -3536, -3536, -3536,
-   -3536, -3536,  2797,  2791, -3536, -3536, -3536,  2895,  3160,  3034,
-   -3536, -3536,  2303, 48446, 39296, -3536,  2198, 25857, -3536,  2803,
-   -3536,  2803,   910,  2802,  1692, -3536, -3536, -3536,  2804,  2070,
-   18476,  3245,  2254, 39296, 39296, 39296, -3536,  2523,  2523,   167,
-    2867,  3197, -3536, -3536, -3536, -3536, 47226, -3536, -3536, -3536,
-   -3536,  1040, 48446,  3180, 48446,  8996, -3536, -3536,  3377, 11524,
-   39296,   964,  1138,   102, -3536, -3536, -3536, -3536, -3536, -3536,
-    2394, -3536, -3536, -3536, -3536, 37466, -3536, -3536, -3536,  2394,
-   -3536,    11,  1522,  -212,    86, -3536,  1128, -3536, -3536, -3536,
-    3203,   949,  2949,  2949,  3205,  3095,   948,  2840, -3536,   102,
-   -3536, -3536, -3536,  2198, -3536, -3536, 11524, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,  1020,
-   -3536, -3536, -3536, -3536,  2847,  3220,  3222,   160, -3536, 26471,
-   -3536, -3536, 26471, 26471,   753, 46006, -3536, -3536, -3536, -3536,
-   -3536, -3536,  2848, -3536, -3536,  2303, -3536, -3536, 38076,  -141,
-   -3536, 26471,  2848, -3536, -3536,   340, -3536,  -141, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, 46006,  2850, -3536,   318,
-   -3536, -3536, -3536, -3536, -3536,  1769, -3536, 46006, -3536, -3536,
-   46006, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536,  2866,  2748,  1090, -3536,  2854,  2858, -3536, -3536,
-   -3536, -3536, 48446, -3536, -3536, 24629, -3536, -3536, -3536,  5384,
-   48446, -3536, -3536, -3536, -3536,  3077, -3536, 11524, 11524,  3122,
-   48446,  3127, -3536,  3408, 48446,  3473, 46006, -3536,  2868, -3536,
-    2874, -3536,  1706, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-    2873, 48446,  2716,  2299, -3536, -3536, -3536, -3536,  -141,   791,
-   -3536, -3536, -3536, -3536,  3133,  3145, 48446, -3536, -3536, -3536,
-   -3536,  3018, -3536, 24629,  3462, -3536,  3044, -3536,  2882,   152,
-    3791, -3536,  2884,  2894,  2897, 30146,  2523,  3258, -3536, -3536,
-    3240, -3536,  1958, 11524,   851, -3536, -3536,   181, -3536,   990,
-   -3536, -3536, -3536,  2899, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536,  2893, -3536, -3536, -3536,  2487, -3536, -3536, -3536,  2903,
-    3240,  3240, -3536, -3536,  3481,  3070, 11524, 11524, -3536, 11524,
-   -3536,   832,  2908,  2935, -3536, -3536, -3536, -3536, 11524, -3536,
-   -3536,  3240, -3536, 11524, -3536, -3536, 11524, -3536, 11524, 11524,
-   -3536,  1942, -3536,  1954, -3536,  1960, -3536, -3536, -3536,  2311,
-   -3536, -3536,   847, 48446, -3536, -3536,  1729, -3536, -3536, 11524,
-   -3536, 42346, -3536, -3536,  3126, -3536, -3536,  3338, -3536, -3536,
-   -3536,  -153,  -153,  -153, 15316,  1958,  3394, -3536, -3536, -3536,
-    3194,  3283, -3536,   785, -3536, 48446,  2917,  1046, -3536,  1757,
-   -3536, -3536,  2918, -3536,  2021,  2928, -3536,   102, 15316,  2663,
-    3044, -3536, -3536,   910, 25857, 30756, -3536, -3536, 39296,  2254,
-    2254,  2254,  2394,  3343,  2720,  2720, -3536, 28311, -3536, -3536,
-    3079, -3536, -3536, 31976, -3536,  1442, -3536, -3536, 16580,  1572,
-   -3536,  1958, -3536, 41126, -3536,  1958,   102,  2944,  2947, -3536,
-   -3536, 47836, 11524, -3536, -3536, -3536, -3536, -3536,  1545,  1415,
-   -3536,   976, -3536,   949, -3536,  3314,  3325,   949, -3536, -3536,
-   -3536, 25857,  2523, 15316, -3536,   275,  2021,  1958,  2952,   318,
-   -3536,   -86, 11524, 26471, -3536, -3536, -3536,  2950, -3536, -3536,
-    3451,  3455, -3536, 26471,  1606, 48446, -3536,  3377, -3536, -3536,
-   -3536, -3536,  5384, -3536, 25857, -3536, -3536, -3536, -3536, -3536,
-   48446, -3536, 24629, -3536, 19706, -3536,  2962, -3536,  2761,  2761,
-    2761, -3536, -3536, -3536,  2761, -3536,  2762,  3187, -3536,  2762,
-    2762, -3536, -3536, -3536, -3536, -3536,   181,   324, -3536, -3536,
-     181, -3536, -3536, -3536,   105,   372,  2762, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536,  2761,  2761,  2761, -3536, -3536,   181,
-    2761, -3536,  2761, -3536,  3535, -3536,   307,    92,  2761,  2761,
-    2761,  2899,  2955, -3536,  1958,  3240,  3502, -3536, -3536,  3110,
-    -141,  3449, -3536,  1760, -3536,  2967, -3536, 46616, -3536,  2540,
-    1737, -3536, -3536, -3536, -3536,  3107,   234, -3536,  3138,  2971,
-    2972, -3536, -3536,  -141,  2975,  2976, -3536, -3536, -3536, -3536,
-    3582, -3536, 48446, 48446, 48446,  2579, -3536, 38686, -3536,   835,
-    1958,  2981,  2983,  2984,  2986,  3585,   213, -3536,  3588, 40516,
-   -3536, -3536, -3536,  1814,  3259, -3536, -3536,  2761, -3536,  2762,
-   -3536, -3536, -3536,  3563, -3536, -3536,  2761,  3384,   181, -3536,
-   -3536,  2998, -3536,  2999,  3000, -3536,   214,  3002,  1966,  1066,
-    1828,  3307,  3380, -3536,  3227, -3536,  1979,  1065,  2009,  2011,
-    2023,  2025, -3536, -3536, -3536,   237,    86, -3536, -3536,  1831,
-   -3536,  3376,  3281,   730,  3051,  3051,  3051,  1572,  1958,  1864,
-   -3536, -3536, -3536, -3536,  3416, -3536, -3536,  3030,  3125, 48446,
-   -3536,  3034, -3536,  2311, 25857, 15316,  3032,  3036, -3536,    14,
-   -3536, -3536,  3026,  2254, -3536,  3617,  3456, -3536, -3536, 41736,
-    3038, -3536, -3536,  3342, -3536,   106,  3254, -3536, -3536, -3536,
-     964,  3134,  3140,   102,  1958, -3536, -3536,  2529,  2869,  3094,
-     949,   949,  3504,  3096, 11524, 11524,  3053, -3536,  3009, -3536,
-   -3536,   345,  2311, 11524, -3536,  2303,  3034, -3536,  2037,  3054,
-    3055, 48446,  3056,  3058, -3536,  3661,  1134, -3536, -3536, -3536,
-   -3536,    79, -3536, -3536,  2848,   696,  3063, -3536, 48446,  3383,
-   -3536, -3536, -3536, -3536,  1143, -3536,  3066,  1143,  1143, -3536,
-    2182, -3536,  3097,   181, -3536, -3536,  3104, -3536, -3536, -3536,
-    1143,  3067,   181, -3536, -3536, -3536, -3536,  1143, -3536, 41736,
-    -141,  3268,  3685, -3536,  3123, -3536,  3577,  3454,  3692, -3536,
-    2421, -3536,  3459,  3356,   102, -3536,   181, -3536, -3536,  3680,
-   -3536,   181,  3680,  1143,  1143, 48446, -3536, -3536, -3536, -3536,
-   -3536, -3536, 48446, -3536,   973, -3536, -3536, -3536,  1880,  -141,
-   -3536, -3536, -3536,  3086,  3087, -3536, -3536, -3536,   293, -3536,
-   48446,  5384, -3536, -3536, -3536,  5934, -3536,   986,  1894,   318,
-    3088,  1910,  1928,  3549,  3265, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, 40516, -3536,  3680,  3367,  3092, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, 11524, -3536, -3536,
-   -3536, 11524, -3536, -3536,  3398,  3552, -3536, -3536, -3536, -3536,
-   -3536, -3536,   845,   845, -3536, -3536, -3536,  3710, -3536,  3189,
-    3190, -3536, -3536,  3193, -3536, -3536,   113,  2099, -3536, -3536,
-   -3536, -3536, 15316,  3477,  3202, -3536, -3536,  3108,  3151, -3536,
-   -3536,   237, -3536, -3536, -3536, -3536, 11524, -3536,  3009,  2163,
-   -3536, 28311, -3536, -3536, -3536, -3536, -3536,  3111,  3112,  8996,
-     847, -3536,  3159, -3536, -3536, -3536,  3161,  1958,  1958, 48446,
-    3258, -3536, -3536,   160,   160, -3536,   345,   237,   318, -3536,
-    1934, -3536, 48446, 48446,  1962, 48446, 48446,   585,   585,   585,
-    1048,  1048, -3536, -3536, -3536,  1134, -3536,  3506, -3536, -3536,
-    1968, -3536,    65,  3386, -3536, -3536, -3536, -3536,  1143, -3536,
-     214, -3536, -3536, -3536, -3536, -3536,   214, -3536, -3536, -3536,
-   -3536,  1499, -3536, -3536, -3536,  3397,  3162, -3536, -3536, -3536,
-   -3536, -3536, 33806, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-    3242, -3536, 54546, -3536, -3536,   589,  3147, -3536, -3536, -3536,
-    1500, 48446, 24629,  3122,  3304, -3536,  3377, -3536,    14,  2988,
-    3044, -3536,   930, 48446, -3536,  3403,    84,  1875, -3536,  3594,
-   -3536, -3536,  3141,  3148,   318,  2041, -3536, -3536, -3536, -3536,
-    3630, -3536, -3536, -3536, -3536, -3536,   191,  3400,  2540,  2540,
-    2540,   -80,  2099, -3536, -3536,  3204, 24629, 16580,  3260, 48446,
-     149,  2957, -3536,  1383,   318, 11524,  2394, 38076, -3536, -3536,
-   -3536, -3536, -3536, -3536, 11524,  3154, 11524,  3157,  1971, -3536,
-   -3536,  3598,  3598, -3536, -3536, -3536, -3536,  1974,  1980, -3536,
-    1987,  2002, -3536, -3536, -3536,  3163, -3536, 48446, -3536, -3536,
-   -3536,    69, -3536, -3536,  2005, -3536,  2038, -3536,  1499, -3536,
-    3164, -3536, -3536, -3536, -3536, 11524,  3634,  3191, 48446,   901,
-   -3536, 55766, 55766, 48446, -3536, -3536, -3536, -3536,  4784, -3536,
-   -3536,   658, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536,  3764, -3536,  3165, -3536, -3536,  3168,  1373,
-   -3536, -3536, -3536,  5384,  3608,   908, -3536, -3536, -3536, -3536,
-     152,  3171,  2070,  -141,   102, -3536,   930, -3536, -3536, -3536,
-     102,   318,  3172,  3420, -3536,    84, -3536, -3536, -3536,  1875,
-   -3536, -3536, -3536, -3536, 11524, -3536, -3536,  3743, -3536, -3536,
-   -3536, -3536, -3536, -3536,   100, -3536, -3536, 25857, -3536, -3536,
-    2303, -3536,  2044, -3536, -3536, -3536,  3264,   102,   102,  3669,
-    3671,   102,   102,   102,   102,  3181,  2957, -3536,  3653, -3536,
-   -3536, 11524, -3536, -3536,  1958,  3411, -3536,  3740,    86,  1958,
-   48446,  1958, 48446, -3536, 48446,  1050, -3536, -3536,  3391, -3536,
-     930, -3536, -3536,  3034, -3536,   862,   862,   181,   214,   181,
-   -3536, -3536,  1958, 11524, -3536, 11524,  3219, -3536, -3536,  3635,
-   48446, -3536, -3536, -3536, -3536, 11524, -3536, 54546, 54546, -3536,
-   -3536, -3536, -3536,  3797,    14,  3766,  3466,  3773,  3027, -3536,
-   -3536,  3408,  5384, -3536, -3536, -3536, -3536,  2540, -3536, 34416,
-   -3536, -3536,  1663, -3536, -3536,   318, -3536, -3536, -3536,  3207,
-   -3536,   102,  2163,  3209, -3536, -3536, 48446,  3212, -3536,  -141,
-    -141,   102,   102,  2839,  2839,  2303, 41736,  3322, -3536, -3536,
-     102,   318, 48446, -3536,   836,  3575, -3536,  2058,  2060, -3536,
-    3801, -3536,  3802,  3224,  3230, -3536,   930, -3536,    84,  1875,
-    2063, -3536,  3845, -3536,   790,  3495,  3498, -3536, -3536, -3536,
-    3233,  1958,  1958, -3536,    85, -3536, -3536,  3623,  3712, 11524,
-    1958, 51496,  3231, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, 55156, 11524, -3536,   658,
-    3764, -3536,  3499, -3536,  3500, -3536, -3536, -3536,  3734, 54546,
-   -3536,  3727, -3536,    14, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, 25857, 15316, -3536, -3536,  3260, -3536,  3244, -3536, -3536,
-     -60, -3536, -3536,  -141,  -141, -3536, -3536, -3536, -3536, -3536,
-    2073, -3536, 41736, -3536, -3536,  3830,  3833,  3729,  3841,   836,
-   -3536,  1054, -3536, -3536, -3536, -3536, -3536, 46616, 46616, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536,  3316,  3768,   591,  3294,
-   11524, 54546, -3536,  3746, -3536,  3678,  1735,  3620,  3273, -3536,
-    3271,  2160,  3782, 55766, 55766, -3536, -3536, -3536, -3536,  3760,
-   -3536, -3536, -3536, -3536, -3536,  3467, -3536, -3536,  2078, -3536,
-   15948, -3536, -3536, -3536, -3536, -3536, 41736, -3536,  3322, -3536,
-    3286,   214,   214,  3864,   214, -3536,  3868,  3877,  1054, -3536,
-    3296,  2093,   862,   862, -3536, -3536,   112, -3536,   103, -3536,
-    1958, 52106,  3873, 48446, -3536, -3536, -3536, -3536, 11524, -3536,
-   42956, 52716,  3293, -3536, -3536, -3536,  3470, -3536,  3027,  3706,
-    3740, -3536,  3244, -3536,  3300, -3536,  2895,  2957, -3536, -3536,
-    3302, -3536, -3536,   214, -3536,   214,   214, -3536, -3536, -3536,
-   -3536, -3536,  -141,  3679, -3536,   112, -3536, 11524, -3536,  3777,
-    3393, -3536,  3308, -3536, 54546,  2049, 54546, -3536, -3536,  3731,
-    3310,  1419, -3536,  3311, -3536, -3536, 54546,  3894,  3575, -3536,
-   15948,  3315, -3536, 11524,  3317,  3318, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536,  1958,  3896, 54546, 48446, 49666,  3508, 53326,
-    3761, 48446,  5384,  3762,  3763, -3536, 54546, -3536,   214,  3728,
-   -3536, -3536,  1958, -3536, -3536,  3413, -3536, 50276, -3536,  2525,
-   -3536,  3353, -3536, -3536,  3832,  2611, -3536, -3536, -3536,  3601,
-    3334, -3536, -3536, 54546, 54546, -3536, -3536, -3536, 32586, 11524,
-   -3536, -3536, -3536, -3536, -3536,   737,    34, 20934,  3489, 50886,
-   53936, -3536, -3536, -3536, 28924, -3536, -3536, -3536,  3774, -3536,
-    1958, -3536, -3536, -3536, -3536, -3536, 41736,  2105, -3536, -3536,
-   25857, -3536, 32586, -3536, -3536, -3536, -3536, 24013,  3336, -3536,
-     102, -3536, -3536, 25857, -3536, -3536, 15316, -3536, -3536
+    5687,  2488,  1005, -3833,  -134,   182, 48544,   116,  -112,  1140,
+     393,  3210, -3833, -3833, -3833, -3833, -3833,  2799, -3833, 48544,
+    1005, -3833, 24688, -3833, -3833,   -28, -3833,   113,  -112,  1005,
+     384, -3833, 48544, -3833,   574,  1039,  1005, -3833, -3833, 43656,
+   -3833,   393, 48544, -3833,   694, -3833, 43656,  1212,  -113,   616,
+     580,   -26, -3833, -3833, 48544,  2257, -3833,   550,  1223,  1144,
+   -3833, -3833,   910, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, 25303, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,  1185, 48544,
+    1253, 48544,  1221, 48544, 41823, 48544,   904,  1104,  1280, -3833,
+   -3833,  1342, -3833, -3833,  -112,   393, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833,   945, -3833, -3833,   953, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833,  1530,  1382, -3833,  1456, 41823,
+   -3833, 48544, -3833, -3833, -3833,   242, -3833,  1150, -3833,  1157,
+    1503,  1542,  1552,    76, 11562,  1472,  1472,  1472, 48544,  1526,
+    1472,  1472, 48544, -3833,  1472, -3833,  1472,  -112, -3833, -3833,
+    4212, 48544,  1341,   170,  -120, 41823,  1445, 48544,  -134,   758,
+   -3833,  1536, -3833, -3833, -3833,  -112, -3833,  1745,  1604,   948,
+   48544, -3833, -3833,  1140,  1176,   713,  1220, -3833, -3833,  1337,
+   -3833,  4495,   177, -3833, -3833, -3833,  2540, -3833, -3833,  6863,
+    1337, -3833, -3833, -3833,  1219, -3833, -3833, -3833, 48544,  -134,
+    -112,  1578, -3833, -3833,   186,   186,   186, -3833,   186, -3833,
+     186, -3833,   550,  1197, -3833, -3833,  1235, 48544,   715,   876,
+   -3833, -3833,  1248,   863, -3833,  1293, 39379, -3833, 48544, -3833,
+   -3833, -3833, -3833,  1527, -3833, -3833, -3833,  2191, -3833, 24688,
+   -3833, -3833, -3833,  1104, -3833, 48544,  1395, -3833, -3833, -3833,
+   24688,  1273, 48544, -3833, 24688, 24688,   245,    25,  1013, 48544,
+   48544,  1715, -3833,  1903, 39379,  1509, -3833,   382,   -94,  1342,
+    1960, -3833,  1382, -3833, 48544, 48544, 48544, -3833, -3833, -3833,
+   44267,    76,  1339,  1346,  1359, 16626, -3833,  1367,  1371,  1374,
+   11562,  1380,  1388,  1394,  1397,  1399,  1420,  1425,  1459,  1470,
+    1474,  1489,  1491,  1493,  1495,  1508,  1508,  1511,  1532,  1537,
+    1543,   771,  1548, -3833,  1589,  1598,  1605, -3833, -3833,  1627,
+    1636,  1646, -3833, -3833,  1648,  1651,  1657, 12195,  1676,  1681,
+    1686, -3833, 21604,  1689,  1691,  1697,  1701,  1704,  1706,  1716,
+    1719,  1730, -3833, -3833, 11562,  1511, -3833, -3833,  1736, -3833,
+    1740,  1743,  1753,  1760,  1765,  1770,  1778,  1781,  1792,  1795,
+    1811,  1813,  1816,  1819,  1821,  1511, -3833,  1020,  1830,  1833,
+    1111,  1835, -3833,  1838, -3833,   207,  1842,  1508,  1511,  1511,
+    1852,  1862,  1873,  1890,  1901, 16626, 16626, 16626, 11562, -3833,
+   48544, -3833, 48544,  2044,  3073, -3833,  2685, 16626,   895, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833,  1465,  1471, -3833, -3833,
+   -3833, -3833, -3833,  1907,  1393,  2009, 48544, 48544, 48544,  1853,
+   48544, 48544, 41823,  1747, 48544, 39379, -3833,  1472,  1673,  3743,
+    1904,  1999,  1978, -3833, -3833, -3833, -3833, -3833,  2172, -3833,
+   -3833,  2018, -3833,  2182, -3833, -3833,   180, -3833,    91, -3833,
+   -3833, -3833, -3833, -3833, -3833,  2188,  1924, -3833, -3833,   146,
+   -3833, -3833, 48544, -3833, -3833, -3833, -3833,  2335,  2076, -3833,
+   -3833, -3833,   828,  2515,   891, 24688, -3833,  1939, 11562,  1679,
+   -3833,  -189, -3833, -3833,  2294, -3833, -3833, 39379, 24688, -3833,
+   -3833, -3833, 22221, -3833, -3833,  2526, -3833,  1952, -3833, -3833,
+    1471,  3156, -3833,  1904,  2215, -3833,  2229,  2128,    25,  2029,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+    1983,  2540, -3833, -3833, -3833, -3833,  2438, -3833,  2140, -3833,
+      18, -3833,  1993,  1059,    18, 39990,  2371,   193, -3833,   338,
+   -3833,  2456, -3833, -3833, -3833, -3833, -3833,  2137,  2125, -3833,
+   -3833,   375,  2111, -3833,  2483, -3833,    31, -3833, -3833,  2149,
+   -3833,  2371,    18,   193, -3833,  2386,  2520,   618,   829, -3833,
+   -3833,   -49, -3833, -3833,  2591, -3833, -3833, 24688, -3833, -3833,
+   -3833,  2335, -3833, -3833, -3833, -3833,  2055, -3833,  2333,  2179,
+   -3833, -3833,    43, -3833,  2102,   688,  2581, -3833,  1026, 35713,
+   -3833, -3833, -3833,  2612,  2631,  1508,  2118, -3833, -3833, -3833,
+    2750, -3833, -3833,  2132,  2657,  2657,  2657,  2775, -3833, -3833,
+   -3833, -3833, -3833, -3833,  2321,  2192, -3833,  1395, 24688,  2548,
+    2167, -3833, -3833,  2412, 11562, -3833, -3833,  3947,    50, -3833,
+   -3833,   179, -3833,  2747,  2373, -3833, -3833, -3833, -3833,  2638,
+   -3833, -3833,  2750,  2700,  2657,  2593,  2199, -3833, -3833, -3833,
+   -3833, -3833, -3833,   239, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833,  1278, -3833, -3833, -3833, -3833, -3833,  1395, -3833, 24688,
+   -3833, -3833, -3833, 24688, -3833,  2205, -3833,  2208, -3833, 11562,
+   11562,   939,  2763,  2828,  2828,  2828,  2044,  2247, 11562, 11562,
+   11562, 11562, 11562, 11562, 11562, 11562, 11562, 11562, 11562, 11562,
+   11562,  1054,  2223, -3833, -3833,  1355, -3833,  2234, 11562, 11562,
+    2316, 11562,  1471, 11562, 25918, -3833,  4349, 11562,   376,  2726,
+   11562, 11562, 11562, 11562,  3347, 11562, 11562, 11562, 25918,  2860,
+    2254, -3833,  2249,  1454, 11562, 11562,  1547, 11562, 11562, 11562,
+   11562, 11562, -3833, -3833, 11562, 11562, 11562, 11562, 16626, 11562,
+   11562, 11562, 11562, 11562, 11562,  2828,  2828, 11562, 11562,  1593,
+   -3833, 11562,  1471,  1881,  1881, 11562,  1471,  8397, 11562, -3833,
+   -3833, -3833, -3833, -3833,  2259, -3833, -3833, -3833, 25918,  2828,
+    2828, 11562, 11562,  2763,  2763,  2763,   223,  2264,  1083, 11562,
+   27148,  2261, -3833, -3833, -3833, -3833, 11562, 11562, 11562, -3833,
+   16626, -3833, -3833,  1661, -3833, -3833, -3833, 12828, 16626, 16626,
+    2267, 16626, 16626, 16626, 16626, 16626,  2633, 16626, 16626, 17259,
+   17892, 16626, 16626, 16626, 16626,   867,  2763, 41823, 16626, 11562,
+   -3833, -3833, 48544, -3833, -3833, -3833,  2265, 24688,  1747, -3833,
+   -3833,   -57,  2742, -3833, -3833,  2273, 24688, -3833,  2270, -3833,
+    2628, -3833, -3833,  2630,  2634,  2651, -3833, -3833, -3833, -3833,
+   -3833,  2862,  2652, -3833, -3833,  2653, -3833, -3833, -3833, -3833,
+    2281, -3833, -3833, -3833, -3833, -3833, -3833, -3833,  2387, -3833,
+   -3833, -3833,  2304, -3833, 39379,  2304, -3833, -3833,  2304, -3833,
+   -3833,  2304,   695,  3825, -3833, -3833, 48544, -3833, 49155, -3833,
+   -3833, 22221,  -134, -3833, -3833, 13461, -3833, -3833, -3833,  2660,
+     188,  2308, -3833, 24688, -3833,  2044, -3833,    85,    85,  2547,
+     174, 41823, -3833, -3833,   167,  2309,  2392,  2314, -3833,  2396,
+   24688, 24688, -3833, -3833, -3833, -3833,  2938,   713, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833,  2320,  2795,  2327, 39379,   813, -3833, 48544, -3833,  1629,
+   -3833, -3833, -3833,  2329, -3833, 11562, -3833,  2331, -3833,  1115,
+    2720, -3833,  -134, 11562, -3833,  2342,  1382, 48544, 48544, 48544,
+   24688, 48544, 24688, -3833,    10,    10, -3833, 36324, -3833, -3833,
+   -3833, -3833,    18, 48544, 48544,    18, 39379, -3833,   193, 48544,
+      18, -3833,  2723,  2446, -3833, -3833, -3833,  2790, -3833, -3833,
+    2785,  2345, -3833,  2720, -3833, -3833,   193, -3833, -3833, 24688,
+   -3833, -3833,   193, -3833,   193,   193,    18,    18,  2400, -3833,
+   -3833,  2350, -3833,  2400,  2500, -3833,  1222,   186,  2597, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,    94,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833,   123, -3833, -3833,
+   -3833,  2210,  2853, -3833, 41823,  1909,   -88,    21,  1909,  2322,
+    -134,  1096, -3833,  1096, -3833,  3396,  2635,   231, 24688, -3833,
+    2370, 44878, 24688, -3833, -3833, -3833,  1007,  2393,  2372,  2044,
+    2861,  2864,  2865,  2867,  2869,  2870,  2871,  2873,  2877,  2887,
+    2891,  2892,  2900,  2909,  2930,  2932,  2934,  2936,  2458, -3833,
+   -3833, -3833, -3833, 24688, -3833, -3833, -3833, -3833,  2523, -3833,
+   -3833, -3833, -3833,  2702, -3833, -3833, -3833,   153,  1825,  2493,
+    2524,   165, 39379,  2914, 48544, 48544,  1382, 48544, 48544, -3833,
+   -3833,  -132,  2748,  2752,  2757,  2479, -3833, -3833, -3833,  1055,
+   48544,  2927, 30214, -3833,   358,   414, -3833,  2828,  2491, -3833,
+    2492,  2506,  2508, 11562,    59,   152,   740,  1258,  1316,  1080,
+     407,   439, -3833,  1350,   444,   464,   536,  1102,   560,   176,
+   -3833,  2509,  2499, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833,  2510, -3833, -3833, -3833,   562,   615,  1139,  1141,  2511,
+    2512, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833,  2953, -3833,  1416, -3833, -3833, -3833, -3833,  2518, -3833,
+   -3833,  1191,   624,   667,   233,  2527,  1438,   727,  1455,  1499,
+    2517, 25918, 48544,  2828,  2522,  1199,  1216,  2828,  2525,   752,
+    1234,  1518,  1538,  1556,  1241,  1250,   777,  1562,  2505,  1254,
+     834,   881,   893,   905,  1267,  2530,  2531,   927,   198,  2828,
+    2535,   258,  2537,  2539,  1271,  9663, 10296, 10929,   212,   933,
+   -3833,  2541, -3833,  2249,  2543,  2544,   299,  1304, -3833, 11562,
+   -3833, -3833,  1094,  1281,  2582,   139,   772, -3833,  2677, 48544,
+    2226,   202, -3833, -3833, -3833, -3833, -3833, -3833,   862, -3833,
+    2528, -3833,  2549,  2046,  2552, 11562,  1109,  2552,  2749,  2442,
+    2442, 16626,  2299,  3083, 12195,  1211, 12195,  1211,  2552,  2552,
+    2552, -3833, 16626,  2556, 16626, 16626, -3833,  2763,  2044,  2551,
+     436, 48544, -3833,   -57, -3833, -3833, -3833, -3833,   815, 39379,
+     149, 24688, 41823,  2559, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833,  4125, 24688, -3833, 48544, -3833,  2636, -3833, -3833,
+   -3833, 22836, 22836, -3833, 22836, -3833, -3833,  1017,  1063,  3141,
+    2585, -3833, -3833, -3833, 29601,  2044, -3833, 24688, -3833,  2960,
+      36, 24688,  2370, -3833,  2564, -3833, -3833, -3833, -3833, -3833,
+    2675,  2674, -3833,  3190, -3833, 11562,  -134, -3833, 39379, 39379,
+   24688, 24688,   858, -3833,  1650, -3833, -3833, -3833,  3156, 18525,
+    3003,  3015, 22836, 22836, 22836, -3833, -3833, -3833, -3833, -3833,
+     136,  2044, -3833,  2571, -3833, -3833, -3833, -3833, -3833, 45489,
+     265, -3833, -3833,  -134,  3017, -3833,  2044,  2587, 48544, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833,  3045, -3833,  2761,   513, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833,    18, -3833, -3833, -3833, -3833, -3833,  2806,
+    2371,  2111,  3017,    18,   193, 24688,    18,    18, -3833, -3833,
+    1837, -3833,   -49, -3833, -3833, -3833, -3833, 48544,  2632,  2751,
+   -3833,  2592, -3833, -3833, 24688, -3833,  2599, -3833,  3041,  3189,
+    2371, -3833, -3833, -3833,   815,   815,  2901, -3833,  -134,  2741,
+    2743,  2753,  2759,  2762,  2776, -3833, -3833,  -134,  -134, -3833,
+   -3833,   815, -3833,   890, -3833, -3833, -3833, -3833,  -134,  -134,
+    -134,  -134,  2729,  -134,  -134,  1654, -3833, -3833,   815,   815,
+   -3833,   353, -3833, -3833, -3833, -3833, -3833, -3833, -3833,  1192,
+   -3833,  2355,  3167,  2872,   815,   815,  3167,   815,  2879,  2884,
+     815,   815,  2703,  3116,   815,  3004,  2735,  2928,  3010,   815,
+   -3833,  2744,  3137,   815,   815,   815,   815,  3167,  2890,  3229,
+     815,   815, -3833,   815,  2894,  2899,   159,  2904,  2905,   815,
+     183, 48544,   815,   815,  2907,   815, -3833, -3833,  5097, -3833,
+   -3833, -3833, -3833, -3833, -3833,   705, 23454, -3833, -3833,   815,
+     218, -3833,  2845, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833,  2659, -3833, -3833, 11562,  2661,
+    2729,  -134,  -134,   806,  -134,  2729,  -134,  -134,  -134,  -134,
+    -134,  2729,  2729,  -134,  1252,  -134,  2729,  3947, -3833, -3833,
+   -3833, -3833,   185,   815,   815,   815,   815, -3833,  2369, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, 41823,  3021,  2088,
+     -51, -3833, -3833, 41823, -3833, 48544, -3833,  1401, 48544,  2672,
+    -153,  3423,   236,   236, -3833, 24688, 24688, 24688, 48544,  2730,
+    2585, 30214, -3833, -3833,  1222, -3833,  2681, 14094, -3833,  2684,
+   -3833, 11562, -3833, -3833, -3833,  1824, 11562, 11562,  3164,  2737,
+   -3833, 40601, -3833, -3833, -3833, 11562, 11562, -3833, 11562, 11562,
+   11562, 11562, -3833, 11562, 40601,  2737, 11562, -3833,  2692, -3833,
+    3086,  3088, -3833, -3833, -3833, -3833, 11562, -3833, 11562, 11562,
+   -3833, 11562, 11562, 11562, 11562, -3833, 11562, -3833, -3833, 16626,
+   -3833,  2696,  2699, -3833, -3833, -3833,  2710, -3833, 11562, -3833,
+   -3833, -3833, -3833, -3833, -3833, 11562, -3833, 11562, -3833, 11562,
+   11562, 11562, 11562, -3833, -3833, -3833, 14727, 11562, 11562,  2715,
+   -3833, -3833, 11562, 11562, 11562, -3833, 11562,   241, 11562,  1615,
+   11562,  1850, 11562, -3833, 11562, -3833, -3833, -3833, -3833, 11562,
+   -3833,  1659, -3833, -3833,  2558, -3833,  1094,  2724, -3833, -3833,
+    1629, -3833, -3833,  2707,  2713,  2716, 41823, 11562, -3833, -3833,
+   -3833, -3833, -3833, -3833, 16626,   310,  2727, 16626, -3833,  2749,
+    3347,  3347,  2197, 11562,  1109,  2749, 11562,  2732,  2734, -3833,
+   11562, 48544, -3833, -3833, -3833, -3833, -3833, -3833, 41823, -3833,
+   -3833, -3833, -3833,   149, -3833,  2270, -3833,  2370, -3833, -3833,
+    1666, -3833, 39379,  2740, -3833,  2745,  2809,  2810,  2816, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833,  2371,  1650, -3833, -3833,  2754, -3833, -3833,  2412,  2838,
+    2768,  3094,  3293, -3833, -3833, 48544, 16626, -3833,  3336,  2755,
+    2765,  3234,  2767,  2044, -3833,  2848, -3833, -3833, -3833, -3833,
+    3065, -3833, -3833, -3833, -3833,   104, -3833, -3833,  2778,  2778,
+   20372, -3833, -3833, -3833,  3244,   -64,   -64,   -64, -3833, -3833,
+   -3833, -3833,  3038, 39379,  3218,  3224,  3225,  1026, -3833,   403,
+   -3833,   192,  3178,  2371, -3833,  3228, 42434, -3833, 30825, -3833,
+    2784,  3176,  2788,   815, 35102,   908, 27762, 36935, -3833, -3833,
+     806, -3833,   261, -3833, 37546,  3256, 37546, 37546, -3833,  3072,
+   -3833, -3833, -3833, -3833,  2585,   193, -3833, -3833, -3833,  2800,
+   -3833, -3833,  1123,  3181,  3183, -3833,  3060,   746,  3060,  1123,
+    1123, 25918,  1222,  2010, -3833,  2729,  3118, -3833, -3833, -3833,
+   41212, 38157, -3833, -3833, -3833, -3833,  3327, -3833,  3328,  1381,
+   -3833, -3833,  2714,    21, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,  2322,
+    2714,  2714,  1096, -3833,   134, -3833, -3833, -3833, -3833, -3833,
+   26533,  1005, -3833,   204, -3833, 26533, -3833,  1007,  1007, -3833,
+   26533,  1005,   806,  2729, 26533,  2729, 46100,  1005,  -134,  -134,
+    2284,   815,  2729, -3833, -3833,  3191, 48544,  3192, 26533, 26533,
+   -3833, 41823, -3833,   815,  1052,  2729,   806,   806, 26533,  1005,
+   25918,   946,  2666, -3833,  -134,  1005, -3833, -3833, -3833, -3833,
+   24688,  1005,  1005,  3048, -3833, -3833, -3833,  2729,  2666, 46100,
+   -3833, -3833,  4943, -3833, -3833, -3833, 19757, 48544,   964,   189,
+   -3833,  2807, 33269,   809,   313,  2896,  1344,  2814,  2822, 46711,
+    2044,  2729, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833,  -134,  2675,  2714,  2714,  1825,
+   -3833,  3085,  3247,   815, -3833,  1268, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833,  2915, -3833,   166,  3006,  2832,
+   -3833, -3833,   318, -3833, -3833,  1010, 24688, 19142, -3833,  3068,
+   -3833,  2945, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833,  2825,  1222,  3090,  1335,  2585,  2840, -3833, 12195,  1369,
+   -3833,  2044, 11562,  2044,  2003, -3833,  2842,  2842,  2842, -3833,
+    2843, -3833, -3833,  2842,  3235,  2842,  3237,  2854, -3833,  2857,
+   -3833,  1724,  2015, -3833,  1755,  1386,  2048,  1418,  2868,  2874,
+    1465, -3833, 11562, 11562,  1451,  1478,  -118,   977,  1035,   340,
+   -3833,  1482,  2766, -3833, -3833,  1501,  1506,  1580,  1587,  1068,
+    1611,  1761, 12195,  1617,   947,   347, -3833,  1687,  1070,  1075,
+    1698, 11562,  1708, 11562,  1712, 11562,  1732,  1734,  1783, -3833,
+    1983,  2558, -3833, -3833,  2876, -3833, -3833, -3833, -3833, -3833,
+    2855,  2044,  2878, -3833, -3833, 11562, -3833,   895, -3833, -3833,
+   16626,   380,  2882, -3833,  2044, -3833, -3833,  2885,  1465, -3833,
+   -3833, -3833, -3833, -3833,  2889, -3833, 48544,   823,  2895, 31436,
+   39379, 39379, 39379,  2880, 11562, -3833, -3833,  3134, 24688, -3833,
+    3275, -3833, -3833, -3833, -3833, -3833,  2886,  2883, -3833, -3833,
+   -3833,  2749,  3233,  3129, -3833, -3833,  2675, 48544, 39379, -3833,
+   -3833,  2540, 25918, -3833,  2898, -3833,  2898,  1324,  2893,  1771,
+   -3833, -3833, -3833,  2903,  2029, 18525,  3330,  2273, 39379, 39379,
+   39379, -3833,  2585,  2585,   935,  2942,  3282, -3833, -3833, -3833,
+   -3833, 47322, -3833, -3833, -3833, -3833,  1118, 48544,  3265, 48544,
+    9030, -3833, -3833,  3460, 11562, 39379,  1116,   772,   815, -3833,
+   -3833, -3833, -3833, -3833, -3833,  2371, -3833, -3833, -3833, -3833,
+   37546, -3833, -3833, -3833,  2371, -3833,    18,  1837,  -181,  1281,
+   -3833,  1082, -3833, -3833, -3833,  3281,  1123,  3060,  3060,  3285,
+    3170,   -54,  2911, -3833,   815, -3833, -3833, -3833,  2540, -3833,
+   -3833, 11562, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833,  1192, -3833, -3833, -3833, -3833,  2916,
+    3292,  3294,  1007, -3833, 26533, -3833, -3833, 26533, 26533,    72,
+   46100, -3833, -3833, -3833, -3833, -3833, -3833,  2919, -3833, -3833,
+    2675, -3833, -3833, 38157,  -134, -3833, 26533,  2919, -3833, -3833,
+     194, -3833,  -134, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, 46100,  2921, -3833,   339, -3833, -3833, -3833, -3833, -3833,
+    1745, -3833, 46100, -3833, -3833, 46100, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833,  2929,  2643,  1167,
+   -3833,  2926,  2939, -3833, -3833, -3833, -3833, 48544, -3833, -3833,
+   24688, -3833, -3833, -3833,  4563, 48544, -3833, -3833, -3833, -3833,
+    3158, -3833, 11562, 11562,  3194, 48544,  3197, -3833,  3481, 48544,
+    3550, 46100, -3833,  2943, -3833,  2941, -3833,  1796, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833,  2946, 48544,  2714,  2088, -3833,
+   -3833, -3833, -3833,  -134,  1010, -3833, -3833, -3833, -3833,  3211,
+    3214, 48544, -3833, -3833, -3833, -3833,  3087, -3833, 24688,  3533,
+   -3833,  3119, -3833,  2955,   259,  4688, -3833,  2954,  2958,  2959,
+   30214,  2585,  3322, -3833, -3833,  3347, -3833,  2044, 11562,   918,
+   -3833, -3833,   274, -3833,   980, -3833, -3833, -3833,  2963, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833,  2445, -3833, -3833, -3833,
+    2737, -3833, -3833, -3833,  2964,  3347,  3347, -3833, -3833,  3546,
+    3127, 11562, 11562, -3833, 11562, -3833,   199,  2969,  2994, -3833,
+   -3833, -3833, -3833, 11562, -3833, -3833,  3347, -3833, 11562, -3833,
+   -3833, 11562, -3833, 11562, 11562, -3833,  1878, -3833,  1899, -3833,
+    1920, -3833, -3833, -3833,  2329, -3833, -3833,  1083, 48544, -3833,
+   -3833,  1826, -3833, -3833, 11562, -3833, 42434, -3833, -3833,  3184,
+   -3833, -3833,  3398, -3833, -3833, -3833,  -144,  -144,  -144, 15360,
+    2044,  3457, -3833, -3833, -3833,  3275,  3345, -3833,    65, -3833,
+   48544,  2977,   703, -3833,  1846, -3833, -3833,  2978, -3833,  1983,
+    2979, -3833,   815, 15360,  2778,  3119, -3833, -3833,  1324, 25918,
+   30825, -3833, -3833, 39379,  2273,  2273,  2273,  2371,  3404,  2838,
+    2838, -3833, 28376, -3833, -3833,  3136, -3833, -3833, 32047, -3833,
+     -38, -3833, -3833, 16626,  1589, -3833,  2044, -3833, 41212, -3833,
+    2044,   815,  2985,  2986, -3833, -3833, 47933, 11562, -3833, -3833,
+   -3833, -3833, -3833,  1629,  2227, -3833,  1222, -3833,  1123, -3833,
+    3366,  3370,  1123, -3833, -3833, -3833, 25918,  2585, 15360, -3833,
+      88,  1983,  2044,  2991,   339, -3833,  -119, 11562, 26533, -3833,
+   -3833, -3833,  2987, -3833, -3833,  3495,  3497, -3833, 26533,  2702,
+   48544, -3833,  3460, -3833, -3833, -3833, -3833,  4563, -3833, 25918,
+   -3833, -3833, -3833, -3833, -3833, 48544, -3833, 24688, -3833, 19757,
+   -3833,  2998, -3833,  2842,  2842,  2842, -3833, -3833, -3833,  2842,
+   -3833,  2843,  3230, -3833,  2843,  2843, -3833, -3833, -3833, -3833,
+   -3833,   274,  1320, -3833, -3833,   274, -3833, -3833, -3833,   117,
+     938,  2843, -3833, -3833, -3833, -3833, -3833, -3833, -3833,  2842,
+    2842,  2842, -3833, -3833,   274,  2842, -3833,  2842, -3833,  3572,
+   -3833,   271,   109,  2842,  2842,  2842,  2963,  2993, -3833,  2044,
+    3347,  3545, -3833, -3833,  3147,  -134,  3489, -3833,  1858, -3833,
+    3007, -3833, 46711, -3833,  2729,  2322, -3833, -3833, -3833, -3833,
+    3145,   950, -3833,  3177,  3008,  3013, -3833, -3833,  -134,  3011,
+    3016, -3833, -3833, -3833, -3833,  3629, -3833, 48544, 48544, 48544,
+    2681, -3833, 38768, -3833,  1137,  2044,  3020,  3022,  3025,  3027,
+    3617,   175, -3833,  3624, 40601, -3833, -3833, -3833,  1866,  3301,
+   -3833, -3833,  2842, -3833,  2843, -3833, -3833, -3833,  3600, -3833,
+   -3833,  2842,  3420,   274, -3833, -3833,  3033, -3833,  3034,  3035,
+   -3833,   186,  3036,  1926,  1087,  1870,  3341,  3416, -3833,  3260,
+   -3833,  1947,  1171,  1957,  1981,  1991,  2005, -3833, -3833, -3833,
+     794,  1281, -3833, -3833,  1876, -3833,  3400,  3305,   766,  3076,
+    3076,  3076,  1589,  2044,  1882, -3833, -3833, -3833, -3833,  3443,
+   -3833, -3833,  3056,  3190, 48544, -3833,  3129, -3833,  2329, 25918,
+   15360,  3057,  3058, -3833,   688, -3833, -3833,  3051,  2273, -3833,
+    3644,  3482, -3833, -3833, 41823,  3063, -3833, -3833,  3368, -3833,
+     161,  3278, -3833, -3833, -3833,  1116,  3157,  3159,   815,  2044,
+   -3833, -3833,  2592,  2850,  3117,  1123,  1123,  3377,  3128, 11562,
+   11562,  3091, -3833,  3090, -3833, -3833,   437,  2329, 11562, -3833,
+    2675,  3129, -3833,  2028,  3095,  3097, 48544,  3098,  3099, -3833,
+    3561,   964, -3833, -3833, -3833, -3833,  1005, -3833, -3833,  2919,
+     104,  3071, -3833, 48544,  3412, -3833, -3833, -3833, -3833,  1062,
+   -3833,  3100,  1062,  1062, -3833,  2140, -3833,  3122,   274, -3833,
+   -3833,  3138, -3833, -3833, -3833,  1062,  3102,   274, -3833, -3833,
+   -3833, -3833,  1062, -3833, 41823,  -134,  2981,  3709, -3833,  3154,
+   -3833,  3606,  3483,  3719, -3833,  2731, -3833,  3488,  3386,   815,
+   -3833,   274, -3833, -3833,  3711, -3833,   274,  3711,  1062,  1062,
+   48544, -3833, -3833, -3833, -3833, -3833, -3833, 48544, -3833,  1135,
+   -3833, -3833, -3833,  1887,  -134, -3833, -3833, -3833,  3120,  3121,
+   -3833, -3833, -3833,   313, -3833, 48544,  4563, -3833, -3833, -3833,
+    5097, -3833,  1147,  1891,   339,  3124,  1902,  1923,  3579,  3297,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, 40601, -3833,
+    3711,  3393,  3125, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, 11562, -3833, -3833, -3833, 11562, -3833, -3833,  3430,
+    3584, -3833, -3833, -3833, -3833, -3833, -3833,   192,   192, -3833,
+   -3833, -3833,  3745, -3833,  3220,  3227, -3833, -3833,  3231, -3833,
+   -3833,   129,  2001, -3833, -3833, -3833, -3833, 15360,  3511,  3238,
+   -3833, -3833,  3139,  3193, -3833, -3833,   794, -3833, -3833, -3833,
+   -3833, 11562, -3833,  3090,  2284, -3833, 28376, -3833, -3833, -3833,
+   -3833, -3833,  3143,  3149,  9030,  1083, -3833,  3199, -3833, -3833,
+   -3833,  3202,  2044,  2044, 48544,  3322, -3833, -3833,  1007,  1007,
+   -3833,   437,   794,   339, -3833,  1927, -3833, 48544, 48544,  1967,
+   48544, 48544,   -64,   -64,   -64,  1252,  1252, -3833, -3833, -3833,
+     964, -3833,  3547, -3833, -3833,  1982, -3833,   940,  3426, -3833,
+   -3833, -3833, -3833,  1062, -3833,   186, -3833, -3833, -3833, -3833,
+   -3833,   186, -3833, -3833, -3833, -3833,  1508, -3833, -3833, -3833,
+    3437,  3203, -3833, -3833, -3833, -3833, -3833, 33880, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833,  3286, -3833, 54654, -3833, -3833,
+     550,  3195, -3833, -3833, -3833,  1723, 48544, 24688,  3194,  3348,
+   -3833,  3460, -3833,   688,  3068,  3119, -3833,   854, 48544, -3833,
+    3439,   191,  1483, -3833,  3632, -3833, -3833,  3169,  3173,   339,
+    2034, -3833, -3833, -3833, -3833,  3668, -3833, -3833, -3833, -3833,
+   -3833,   362,  3438,  2729,  2729,  2729,  -102,  2001, -3833, -3833,
+    3236, 24688, 16626,  3288, 48544,  1475,  2756, -3833,  1467,   339,
+   11562,  2371, 38157, -3833, -3833, -3833, -3833, -3833, -3833, 11562,
+    3186, 11562,  3187,  1997, -3833, -3833,  3628,  3628, -3833, -3833,
+   -3833, -3833,  2006,  2023, -3833,  2054,  2059, -3833, -3833, -3833,
+    3200, -3833, 48544, -3833, -3833, -3833,   277, -3833, -3833,  2062,
+   -3833,  2064, -3833,  1508, -3833,  3206, -3833, -3833, -3833, -3833,
+   11562,  3651,  3216, 48544,   145, -3833, 55876, 55876, 48544, -3833,
+   -3833, -3833, -3833,  6288, -3833, -3833,   608, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,  3789, -3833,
+    3185, -3833, -3833,  3209,  1138, -3833, -3833, -3833,  4563,  3631,
+    1344, -3833, -3833, -3833, -3833,   259,  3215,  2029,  -134,   815,
+   -3833,   854, -3833, -3833, -3833,   815,   339,  3217,  3456, -3833,
+     191, -3833, -3833, -3833,  1483, -3833, -3833, -3833, -3833, 11562,
+   -3833, -3833,  3761, -3833, -3833, -3833, -3833, -3833, -3833,   112,
+   -3833, -3833, 25918, -3833, -3833,  2675, -3833,  2073, -3833, -3833,
+   -3833,  3299,   815,   815,  3707,  3712,   815,   815,   815,   815,
+    3219,  2756, -3833,  3687, -3833, -3833, 11562, -3833, -3833,  2044,
+    3447, -3833,  3782,  1281,  2044, 48544,  2044, 48544, -3833, 48544,
+    1286, -3833, -3833,  3432, -3833,   854, -3833, -3833,  3129, -3833,
+    1009,  1009,   274,   186,   274, -3833, -3833,  2044, 11562, -3833,
+   11562,  3253, -3833, -3833,  3667, 48544, -3833, -3833, -3833, -3833,
+   11562, -3833, 54654, 54654, -3833, -3833, -3833, -3833,  3829,   688,
+    3798,  3492,  3800,  3499, -3833, -3833,  3481,  4563, -3833, -3833,
+   -3833, -3833,  2729, -3833, 34491, -3833, -3833,  1449, -3833, -3833,
+     339, -3833, -3833, -3833,  3240, -3833,   815,  2284,  3239, -3833,
+   -3833, 48544,  3243, -3833,  -134,  -134,   815,   815,  2793,  2793,
+    2675, 41823,  3343, -3833, -3833,   815,   339, 48544, -3833,   963,
+    3597, -3833,  2077,  2095, -3833,  3826, -3833,  3827,  3246,  3248,
+   -3833,   854, -3833,   191,  1483,  2097, -3833,  3871, -3833,   172,
+    3516,  3517, -3833, -3833, -3833,  3252,  2044,  2044, -3833,   195,
+   -3833, -3833,  3642,  3729, 11562,  2044, 51599,  3250, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, 55265, 11562, -3833,   608,  3789, -3833,  3518, -3833,  3520,
+   -3833, -3833, -3833,  3750, 54654, -3833,  3747, -3833,   688, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, 25918, 15360, -3833, -3833,
+    3288, -3833,  3266, -3833, -3833,   635, -3833, -3833,  -134,  -134,
+   -3833, -3833, -3833, -3833, -3833,  2117, -3833, 41823, -3833, -3833,
+    3847,  3849,  3744,  3850,   963, -3833,  -103, -3833, -3833, -3833,
+   -3833, -3833, 46711, 46711, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833,  3321,  3768,   -98,  3298, 11562, 54654, -3833,  3749, -3833,
+    3680,  2036,  3625,  3273, -3833,  3272,  2094,  3785, 55876, 55876,
+   -3833, -3833, -3833, -3833,  3763, -3833, -3833, -3833, -3833, -3833,
+    3459, -3833, -3833,  2120, -3833, 15993, -3833, -3833, -3833, -3833,
+   -3833, 41823, -3833,  3343, -3833,  3291,   186,   186,  3867,   186,
+   -3833,  3870,  3874,  -103, -3833,  3295,  2122,  1009,  1009, -3833,
+   -3833,   230, -3833,   222, -3833,  2044, 52210,  3869, 48544, -3833,
+   -3833, -3833, -3833, 11562, -3833, 43045, 52821,  3302, -3833, -3833,
+   -3833,  3467, -3833,  3499,  3710,  3782, -3833,  3266, -3833,  3303,
+   -3833,  2749,  2756, -3833, -3833,  3300, -3833, -3833,   186, -3833,
+     186,   186, -3833, -3833, -3833, -3833, -3833,  -134,  3678, -3833,
+     230, -3833, 11562, -3833,  3781,  3399, -3833,  3308, -3833, 54654,
+    2159, 54654, -3833, -3833,  3733,  3312,  1103, -3833,  3309, -3833,
+   -3833, 54654,  3898,  3597, -3833, 15993,  3316, -3833, 11562,  3317,
+    3320, -3833, -3833, -3833, -3833, -3833, -3833, -3833,  2044,  3895,
+   54654, 48544, 49766,  3512, 53432,  3766, 48544,  4563,  3769,  3771,
+   -3833, 54654, -3833,   186,  3727, -3833, -3833,  2044, -3833, -3833,
+    3422, -3833, 50377, -3833,  2388, -3833,  3362, -3833, -3833,  3841,
+    2449, -3833, -3833, -3833,  3613,  3344, -3833, -3833, 54654, 54654,
+   -3833, -3833, -3833, 32658, 11562, -3833, -3833, -3833, -3833, -3833,
+    1026,   689, 20987,  3501, 50988, 54043, -3833, -3833, -3833, 28990,
+   -3833, -3833, -3833,  3787, -3833,  2044, -3833, -3833, -3833, -3833,
+   -3833, 41823,  2138, -3833, -3833, 25918, -3833, 32658, -3833, -3833,
+   -3833, -3833, 24071,  3349, -3833,   815, -3833, -3833, 25918, -3833,
+   -3833, 15360, -3833, -3833
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-   -3536, -3536, -3536, -3536, -3536,    66, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536,  1705, -3536, -3536, -3536, -3536, -3536,
-    1914, -3536,   650, -1790, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536,   651,  1535,  3319, -3536,   384, -3536,    48, -3536,
-   -3536, -3536, -2853,   -75,  -263, -3536, -3536,   440,    28,  2979,
-    -261, -3064, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536,   395,   392, -3536, -3536,   203, -3536, -3536, -2212, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536,  -458,  -410,  1695,
-   -3536, -3536, -3536,  3940, -3536,  3410, -3536,  1229,  2175, -3536,
-   -3536, -3536,  -225,   216, -3536,   219, -3536,   220, -3536,   225,
-   -3536,   227,   229,   231,   232, -3536,   236, -3536, -3536,  -405,
-   -3536, -3536, -3536, -3536,   238, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536,  -271, -3536, -3536,  -115, -3536, -3536,  -267,   240,
-   -3536,  -220,   248, -3536,   250, -3536,  -134, -3536,  -124, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536,  2992, -3536, -3536, -3536, -2021, -3536, -3536, -2353,  2556,
-   -3536, -1687, -3536, -3536, -1746, -3536, -3536, -1737,   888, -3536,
-   -3536,  1061,   592, -3536, -1370, -1849, -1827, -3536, -3536, -3536,
-   -1966, -1964,  -771,  2288, -1195, -2206, -3536, -3536, -3536, -3536,
-     104, -3536, -3536, -2524,  2020,  2561, -3536,  2557, -3536, -3536,
-    1121, -3536, -3536,  1301,   613,  1299, -3536,   918,  2730, -1244,
-   -3536, -3536, -3536, -3536, -3536, -3536,   -30,   221,  -128, -3536,
-   -3327,   619, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -2614, -3536, -3536, -3536,  -299, -3536, -3536,  -206, -3536, -3536,
-    -253, -3536,    71, -2266, -3536, -3536, -3536, -3536,  2534, -1333,
-   -3536,  3539, -3536,  -551,   464,  2055, -2192, -1381, -3536,  -901,
-    -885, -2428, -3536, -3536, -3536, -3286,  1072,  1480, -3536,   818,
-    2051, -1871, -3536, -3536, -3536, -3536, -3536,  1550, -3536, -3536,
-     844, -3536,   840, -3536, -3536, -3536, -3536, -3536,  -257, -3536,
-      52, -2666, -3536, -3536, -3536, -2101,  1034,   802, -3536, -3536,
-   -3536, -1026, -2209,  -503, -3536,   343, -2365, -2438,   777, -3536,
-   -3536,   534, -3535, -3536, -3536,  -569, -2064, -2349,    15, -3536,
-   -3536,   549, -3069,   916, -3536, -3536, -3536, -2967, -1791, -3536,
-      87, -3536, -3536, -3536, -3536, -3073, -3536, -3536, -1458, -2060,
-   -3536, -3536,  4080,  4082, -1038, -2613, -3083,   -12,    -9, -3536,
-   -3536, -3536,  2564, -1359,   165,   148,   158,  2014,  -918,   313,
-   -2289, -3536,   363, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,  2096,
-    -339, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -2363,   885,
-   -3536, -3536,  1604, -3536, -3536, -3536, -1820,  3143, -3536, -3536,
-   -3536, -3536,  3484, -2146, -3173, -3536, -3536, -3536, -3536, -3536,
-   -3536,  1672, -3536, -3536,  2230,  2685, -3536, -3536, -3536, -3536,
-   -3536, -3536,   612,  1803, -3536, -3536, -3536, -3536, -3536, -3536,
-     898,  2605, -3536, -3536, -3536,   -15, -3536, -3536, -3536, -3536,
-    2319, -3536, -3536, -3536, -3536,  2648, -3536, -3536, -3536, -3536,
-   -3536, -3536,  1404, -3536,  1836, -3536, -1428, -3536, -3536,  1009,
-    -981,  1787,  -591,  1919,   360, -3536,  3541, -3536, -3536, -3536,
-   -1666, -2395, -3536,  3232,  -903, -2454,  2307,  -552, -1800,  1042,
-    1099,  -687,  4012, -3536, -1141, -1136, -3536, -3536,  -643, -3536,
-   -3536, -3536, -3536, -3536,  2016,  2024,  -650, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,  1443, -3536,
-   -3536, -3536, -3536, -1724, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536,  1772, -3536, -2032, -3536, -3536,  -471, -3536,  3025, -3536,
-   -3536, -3536, -2243, -1930,  1755,   963, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -2291, -3536, -3536, -3536, -3536,
-   -3536,  1943, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -1725,
-   -3536, -1902,   305, -3536,   452, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536,   -48,   843,   -47, -2098, -1106,  1582, -3536, -3536,
-   -1262,  3065, -2031, -3536, -3536, -3536,  1923, -3536, -3536, -3536,
-   -3536, -3536,   934, -2531,  2721, -3536, -3536, -3000,  -902, -2233,
-    -891, -3536, -1342,  1361,   469, -3536, -1789, -1774,  -745, -2466,
-   -1090, -3536,  1667, -3536, -3536, -3536, -3536,  -211, -3536, -3536,
-   -3536,   493,  1830, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536,  -543,  -754, -3536,  2080,  1651, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536,  2881,  2853,  1893,
-   -3536, -3536, -2535, -3536, -3536,  1859, -3536,   749, -1998, -1776,
-    1049, -3536, -3536,  1051, -3138, -3536, -3536, -3536, -3536, -3536,
-   -3536,   984, -3536,    16,  3602, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536,  2646, -1047,  3528, -3536, -3536, -3536, -3536, -3536,
-   -3536,  2320, -3536, -3536, -3536, -3536, -3536, -3536,  2821,  3629,
-    -573, -1275, -3536,  -718,  2796,  2329,  -877, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-    2455,   970, -3536, -3536, -3536, -3536,  2883, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536,  1092,   -81, -3536,
-      22,  -119, -3536,   -38, -3536, -3536, -3536, -3536, -3536,  -227,
-   -3536, -3536,  -222,  -661,  -967, -1346,   691, -1769, -2000,  1089,
-    2872, -2999,  -678, -1140, -1151, -1925,    37, -3536, -3536,  3363,
-      97,   428,  -409,    -6, -2748,  -107,  -593, -3536, -2464, -3536,
-   -3536, -3536, -3536,  2404, -3536, -3536, -3536, -3536,  1445, -3536,
-   -3536, -3536,  1057, -3536,   779,   551, -3536, -3536,   209, -3536,
-    2456, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536, -3536,  2889,  3674,  3355, -3536,  2956,
-   -3536, -3536, -3536, -3536, -3536,   427, -3536,   733, -2202, -1659,
-   -3536, -3536,  2725,   829, -3536,  1537,  -361,  -630, -3536, -3536,
-     430, -3536, -3536,  1492,  3684,  3361, -3536, -3536, -3536, -3536,
-   -3536, -2697,  -886, -3536, -3328, -2728, -1679, -3536, -3536, -2122,
-   -2944, -3536, -3536, -1048, -3536, -3536, -3536, -3536, -2029, -3536,
-   -3536, -3536,    53,  3747,  3748, -3536, -3536,  -176, -3536,   387,
-   -3536, -3536, -3536, -3536, -3536, -3536, -3536,  3603, -3536, -3536,
-   -3536, -3536,  3606, -3536, -3536, -3536, -3536, -3536,  3607, -3536,
-   -3536, -3536, -3536, -3536,  1593, -3536, -3536, -3536, -3536, -3536,
-   -3536, -3536, -3536, -3536
+   -3833, -3833, -3833, -3833, -3833,    69, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833,  1714, -3833, -3833, -3833, -3833, -3833,
+    1925, -3833,   657, -1783, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833,   658,  1546,  3329, -3833,   395, -3833,    56, -3833,
+   -3833, -3833, -2855,   -67,  -255, -3833, -3833,   346,    17,  2989,
+    -252, -3787, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833,   406,   405, -3833, -3833,   213, -3833, -3833, -2740, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833,  -442,  -394,  1806,
+   -3833, -3833, -3833,  3962, -3833,  3429, -3833,  1245,  2193, -3833,
+   -3833, -3833,  -294,   235, -3833,   237, -3833,   238, -3833,   240,
+   -3833,   243,   244,   246,   247, -3833,   248, -3833, -3833,  -397,
+   -3833, -3833, -3833, -3833,   249, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833,  -267, -3833, -3833,  -111, -3833, -3833,  -264,   250,
+   -3833,  -209,   255, -3833,   256, -3833,  -121, -3833,  -117, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833,  2996, -3833, -3833, -3833, -2213, -3833, -3833, -2335,  2563,
+   -3833, -1710, -3833, -3833, -1736, -3833, -3833, -1725,   814, -3833,
+   -3833,   -97,  -344, -3833, -1376, -1863, -1859, -3833, -3833, -3833,
+   -1951, -1947,  -779,  2296, -1199, -2217, -3833, -3833, -3833, -3833,
+     106, -3833, -3833, -2535,  2027,  2572, -3833,  2565, -3833, -3833,
+    1126, -3833, -3833,  1307,   617,  1306, -3833,   921,  2736, -1257,
+   -3833, -3833, -3833, -3833, -3833, -3833,   -25,   227,  -116, -3833,
+   -3289,   625, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3832, -3833, -3833, -3833,  -295, -3833, -3833,  -200, -3833, -3833,
+    -247, -3833,    75, -2270, -3833, -3833, -3833, -3833,  2542, -1309,
+   -3833,  3548, -3833,  -536,   468,  2063, -2358, -1382, -3833,  -927,
+    -923, -2434, -3833, -3833, -3833, -3273,  1076,  1485, -3833,   824,
+    2058, -1866, -3833, -3833, -3833, -3833, -3833,  1557, -3833, -3833,
+     849, -3833,   842, -3833, -3833, -3833, -3833, -3833,  -249, -3833,
+      57, -2012, -3833, -3833, -3833, -2776,  1038,   816, -3833, -3833,
+   -3833, -1058, -2774,  -727, -3833,   343, -2469, -2412,   783, -3833,
+   -3833,   537, -3702, -3833, -3833,  -577, -2046, -2355,    16, -3833,
+   -3833,   551, -3060,   916, -3833, -3833, -3833, -3118, -3169, -3833,
+      83, -3833, -3833, -3833, -3833, -2630, -3833, -3833, -1454, -2237,
+   -3833, -3833,  4086,  4089, -1033, -2612, -3634,   -10,    -8, -3833,
+   -3833, -3833,  2566, -2120,   163,   155,   160,  2019, -1561,   315,
+   -2306, -3833,   360, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,  2099,
+   -1127, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -2362,   885,
+   -3833, -3833,  1606, -3833, -3833, -3833, -1846,  3146, -3833, -3833,
+   -3833, -3833,  3487, -2128, -2577, -3833, -3833, -3833, -3833, -3833,
+   -3833,  1348, -3833, -3833,  2224,  2688, -3833, -3833, -3833, -3833,
+   -3833, -3833,   612,  1798, -3833, -3833, -3833, -3833, -3833, -3833,
+     896,  2603, -3833, -3833, -3833,   -15, -3833, -3833, -3833, -3833,
+    2318, -3833, -3833, -3833, -3833,  2647, -3833, -3833, -3833, -3833,
+   -3833, -3833,  1404, -3833,  1836, -3833, -1433, -3833, -3833,  1008,
+    -982,  1789,  -594,  1921,   359, -3833,  3538, -3833, -3833, -3833,
+   -1642, -2386, -3833,  3242,  -822, -2490,  2315,  -552, -1801,  1040,
+    1170,  -678,  4040, -3833, -1145, -1141, -3833, -3833,  -647, -3833,
+   -3833, -3833, -3833, -3833,  2020,  2024,  -653, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,  1444, -3833,
+   -3833, -3833, -3833, -1720, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833,  1541, -3833, -2027, -3833, -3833,  -471, -3833,  3023, -3833,
+   -3833, -3833, -2250, -1757,  1756,   959, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -2307, -3833, -3833, -3833, -3833,
+   -3833,  1942, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -1701,
+   -3833, -1770,   303, -3833,   451, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833,   -48,   841,   -47, -2845, -1099,  1665, -3833, -3833,
+   -1265,  3064, -2036, -3833, -3833, -3833,  1928, -3833, -3833, -3833,
+   -3833, -3833,   928, -2538,  2719, -3833, -3833, -3089,  -922, -2241,
+    -882, -3833, -1346,  1363,   470, -3833, -1768, -1781,  -508, -2470,
+   -1093, -3833,  1668, -3833, -3833, -3833, -3833,  -220, -3833, -3833,
+   -3833,   491,  1827, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833,  -547,  -735, -3833,  2080,  2203, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833,  2897,  2849,  1893,
+   -3833, -3833, -2521, -3833, -3833,  1857, -3833,   748, -1976, -1804,
+    1044, -3833, -3833,  1047, -3122, -3833, -3833, -3833, -3833, -3833,
+   -3833,   987, -3833,    19,  3603, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833,  2646, -1050,  3526, -3833, -3833, -3833, -3833, -3833,
+   -3833,  2319, -3833, -3833, -3833, -3833, -3833, -3833,  2817,  3620,
+    -576, -1295, -3833,  -601,  2791,  2323,  -867, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+    2439,   956, -3833, -3833, -3833, -3833,  2875, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833, -3833,  1081,   -95, -3833,
+       4,  -142, -3833,   -60, -3833, -3833, -3833, -3833, -3833,  -238,
+   -3833, -3833,  -243,  -673,  -969, -1350,   670, -1773, -2005,  1069,
+    2852, -3144,  -687, -1163, -1167, -1914,    37, -3833, -3833,  3365,
+      97,   391,  -316,    -6, -2700,  -107,  -606, -3833, -2464, -3833,
+   -3833, -3833, -3833,  2385, -3833, -3833, -3833, -3833,  1423, -3833,
+   -3833, -3833,  1036, -3833,   756,   529, -3833, -3833,   156,  3663,
+   -3833,  2436, -3833, -3833, -3833, -3833, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833, -3833,  2902,  3659,  3339, -3833,
+    2947, -3833, -3833, -3833, -3833, -3833,   427, -3833,   607, -2207,
+   -1794, -3833, -3833,  2721,   636, -3833,  1545,  -270,  -545, -3833,
+   -3833,   425, -3833, -3833,  1540,  3684,  3360, -3833, -3833, -3833,
+   -3833, -3833, -2701,  -890, -3833, -3307, -2761, -1669, -3833, -3833,
+   -2116, -2935, -3833, -3833, -1021, -3833, -3833, -3833, -3833, -1844,
+   -3833, -3833, -3833,    42,  3748,  3751, -3833, -3833,  -177, -3833,
+    -150, -3833, -3833, -3833, -3833, -3833, -3833, -3833,  3604, -3833,
+   -3833, -3833, -3833,  3607, -3833, -3833, -3833, -3833, -3833,  3610,
+   -3833, -3833, -3833, -3833, -3833,  1633, -3833, -3833, -3833, -3833,
+   -3833, -3833, -3833, -3833, -3833
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If zero, do what YYDEFACT says.
    If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -2574
+#define YYTABLE_NINF -2578
 static const yytype_int16 yytable[] =
 {
-     493,   865,  1036,   953,  1449,   536,  1101,   949,   981,  1655,
-    1358,  2216,  1589,   535,   552,  1632,   541,   620,  2518,  1451,
-     994,   560,  1079,  2304,  1679,  2032,   555,  1550,  2352,  2353,
-    1540,  1541,  1386,   567,   491,  1678,   570,  1109,  1863,  1238,
-     567,  1128,  1862,  1744,  1380,  1787,  1414,  2336,   589,  2896,
-     793,  2547,  2952,  2029,  2625,  2721,  1700,  1386,  2841,   539,
-    2753,  3009,  3146,  1708,  1597,  3479,  2599,  2634,  3017,  1710,
-    1711,  1796,  1415,  1714,  1715,  1716,  1717,  1172,  1719,  1720,
-    1722,  1724,  1725,  1726,  1727,  1728,  3190,  2448,  2516,  1456,
-     609,  2005,  2335,  1159,  1932,  2682,  1163,  2384,  1025,  1028,
-    2635,   137,  1050,  1058,  2825,  1457,  3307,  2443,  1066,  2892,
-    2567,  3675,  2568,   612,  2708,   493,  2774,   493,   619,   625,
-    1870,  1910,  1180,  1181,  1182,  1329,  3558,  1189,  1190,  2444,
-    3815,  1189,  1190,   608,  1223,  2406,  2407,  2762,  1880,  2456,
-    1222,  1189,  1190,  2460,  2257,  2816,  1883,  1884,  3406,   614,
-    2431,   616,  2418,  2826,  2475,  2067,  1791,   643,  3499,  3710,
-    1291,  2348,  2870,  1945,  2484,  3526,  3933,  1189,  1190,  2436,
-    2437,  2601,   547,  2493,  1286,  3027,  3028,  2400,  1391,  1189,
-    1190,  3034,  2678,  3036,   634,  2458,  2459,  1046,  2461,  3683,
-    2986,  2464,  2465,  2420,  4322,  2468,   914,   915,  1396,  1508,
-    2477,  4015,  3355,  2519,  2480,  2481,  2482,  2483,  2984,  3484,
-    1432,  2487,  2488,   118,  2490,  3356,  1768,  3141,   500,  1241,
-    2499,  2077,  3089,  2503,  2504,  2113,  2506,  2564,  1802,  3357,
-    2856,  2857,  1416,  1729,  3611,  1819,  4221,   551,  2864,  2801,
-     914,   915,  2226, -1944,   559,  1300,  1189,  1190,  2528,  2565,
-     969,  3032,  4251,  2538,  4221,  3649,   847,  3217,  3868,  2544,
-    2545,  2439,   869,  2252,  2549,  2297,  1741,  1189,  1190,  1934,
-   -2453,  1411,   914,   915,  1189,  1190,  2991,  3963,  1369,  1989,
-    2864,  1323, -2521,  3294,  2551,  2552,  2553,  2554,   548,  3413,
-     881,  1029,  1189,  1190,  1189,  1190,  1304,  3673, -1480,  3519,
-    3524,  3485,  1292,  3525,  4432,  1460,   262,  2184,   264,  -433,
-     877,  1439,  2581,  1453,  3154,  2494,  2957,  1453,  1384,  2556,
-     627,  1453,  3535,  3724,   851,  1992,  1166,   544,  3355,  3557,
-    2073,   120,  2500,  2571,  2020,   857,   658,  3934,  3235,  1189,
-    1190,  3356,  -865,   635,  2898,  3355,  -529,  2977,  2978,  2810,
-    -530,  3134,   585,   132, -2521,  3357,   136,  1031,  3356,  3188,
-    1423,  2785,  2789,  2791,  1189,  1190,   914,   915,  1291,  1189,
-    1190,  1928,  3357,  1189,  1190,  1189,  1190,  2955,  3337,  1799,
-   -2384,  2992,  4067,   914,  3520,  3832, -2521,  1426,  4049,  1621,
-    2030,  2257,  1622,  3975,  2873,  3011,   497,  2298,   136,   648,
-     498,   882,  1189,  1190,  1189,  1190,  2865,  3107,  2588,   852,
-     496,  3623,  1533,  3976,  2031,  2768,   138,  3189,  2899,  2860,
-    2227,  3854,  1906,  1800,   545,  1769,  2956,   970,   971,  2345,
-    1189,  1190,  1529,  1596,   133,   850,  1032,  1509,  3206,  1534,
-    3650,  1283,  1424,  2199,  1820,  1730,  1946,  1128,  2021,   586,
-    3869,  3236,  1318,  1189,  1190,  1189,  1190,  4068, -2521,   628,
-    3929,  1427,  2958, -1440,  1740,   878,  3073,  1903,  1731,  3580,
-    1189,  1190,  1477,   883,  2360,  1189,  1190,  1529,  3581,   853,
-     568,  1065,  1191,  2572,  3708,  1192,  1191,  1189,  1190,  1192,
-    4433, -2384,  2824,  1305,  1530,  1531,  1532,  1189,  1190,   639,
-     619, -1440,   625,  1167,  1168,  1384,  1189,  1190,  1440,  2501,
-    1292,  1742,  1865,   849,  2900,  1868,  2474,  4162,  1419,   806,
-    1872,  2508,  1191,   625,  3824,  1192,  2361,  1189,  1190,   870,
-    3194,  2874,   845,  3701,  1191,  2878,   619,  1192,   855,  3227,
-    2258,  3964,  3486,  3155,  1329,  1744,  1885,  1886,  3870,  2894,
-    2895,   873,  3864,  1456,  1770,  1908,  3743,  1705,  1713,  2905,
-    1932,  3149,  3150,  3151,  1412,  3747,  3294,  1301,  4247,  1457,
-    3019,  3702,  2589,  1770,  1329,  1734,   652,  2253,  2520,   965,
-    3216,  1047,  2236,  3218,  3219,  1356,  2442,  2516,  1030,  3763,
-    2299,  2443,  3338,  2239,  3765,  2567,  2242,  2568,   984,  3794,
-    2945,  1191,  3229,  3490,  1192,   848,  2380,   619,  3440,   998,
-    2713,  3582,  2834,  2444,  1370,   858,  1564,  1565,  1392,  2866,
-     609,  2228,  1191,  1456,  2005,  1192,   493,  1732,  3804,  1191,
-    3323,   609,  1192,  1023, -1480,   609,   609,  2229,  1397,  1457,
-    1037,   998,   856,  1620,  2767,   619,  4016,  1191,  3090,  1191,
-    1192,  1633,  1192,  1635,  1510,  1067,  1068,  1069,  2516,  1287,
-    1010,  1074,  2815,  1008,  2233,  1648,  1649,  1650,  3016,  3684,
-    2877,   549,  2879,  1654,  1020,  2802,  2114,  3834,  3645,  2890,
-    3433,  1011,  2854,   966,  4323,  2775,  4110,  4123,  1764,  3943,
-     894,  2889,  2902,  1933,  1191,  2067,  3527,  1192,  2911,  2913,
-    1747,  1882,  1237,  2897,  2495,  4277,  2563,  1589,  3855,  1064,
-    3653,  1792,  2564,  1129,  2929,  2913,  4151,  3928, -2453,  1191,
-    3024,  2993,  1192,  1510,  1191,  1193,  1910,  1192,  1191,  1193,
-    1191,  1192,  1048,  1192,  2565,  1934,  3152,  3153,  2974,  1193,
-    3335,  1189,  1190,   814,  2219,  2185,  3843, -2453,  1803,  3230,
-    3358,  2858,  3482,   972,  2072,  2987,  2055,  1191,  1818,  1191,
-    1192,   863,  1192,  1189,  1190,  1193, -1480,  1789,  2859,   876,
-    2078,  1186,  2362,  1188, -2573, -1480,  3322,  1193,  2976,  2079,
-    1685,  1686,  3612,  2982,  1809,  1191,  -433,  2258,  1192,  2867,
-    1189,  1190,  1685,  2150,  3649,  3182,   967,  1231,   493,  1233,
-    1869,   998,   493,   619,  3955,   493,   619,  3215,  1191,  2979,
-    1191,  1192,  3512,  1192,  2131,  1383,  3513,  1623,  3341,  -865,
-    1624,  2590,  1845,  -529,  3365,  1191, -2384,  -530,  1192,  1169,
-    1191,  3203,  1232,  1192,  3993,  4242,  1236,  4394,  3210,  1240,
-    1189,  1190,  1191,  1296,  1193,  1192,  3532,  3533,  3534,  1189,
-    1190,  1420,  1191,  1224,  3537,  1192,   609, -2384, -1440,  1284,
-    2132,  1191,  3563,  -198,  1192,  1193,  1224,  2726,   619,   609,
-    2073,  2316,  1193,   609,  2753,  3391,  3358,  3504,  2316,  2372,
-    2200,  2570,  1191,  3510,  3511,  1192, -2385,  2188,  2189,  1912,
-    1193,  3032,  1193,  3358,  3032,  3032,  1189,  1190,  3220,  1307,
-    3101,  3555,  3469,  1189,  1190,  3074,  3473,  2205,  2206,  1189,
-    1190,  3032,  1326,  4111,  3521,  3291,   619,  2997,  4214,  3444,
-    3195,  3196,  1189,  1190,  3489,  3536,   729,  4107,  3703,  3618,
-    3926,  3556,  3559,  3561,  3562,  3024,  3126,  1193,  3621,  3054,
-    3378,  4060,  4037,  4116,  1189,  1190,  3443,  3700,  1189,  1190,
-    3468,   651,  2690,  2691,  3472,  4065,  1189,  1190,   609, -1480,
-    2157,  2234,  1193,  3528,  1892,  1320,  3529,  1193,  3131,  1189,
-    1190,  1193,   812,  1193,  1421,  2376,  3351,  3058,  3059,  3650,
-    1452,  4274,  2085,  2104,  4156,  3346,  1386,  2122,  3075,  3076,
-    4195,  2336,  4091,  2374,  2531,  2871,  2871, -2385,   874,  1422,
-    1193,  4196,  1193,  2379,  3032,  2405,  2382,  2383,  1945,   609,
-    2443,  3337,  3933,  3381,   501,  2105,  1386,  2567,  2123,  2568,
-    2648,  1852,  3187,  4209,  1863,  1269,  1863,  1863,  1193,  2345,
-    2806,  2807,  2444,  2998,  4244,  2770,  2335,  1189,  1190,  1189,
-    1190,  1052,  1060,  3098,  3099,  1945,  2961,  1533,  1387,  1932,
-    4117,  1193,  4119,  1193,  2532,   598,  2603,  3111,  3112,  3113,
-     609,  2962,  2448,  2741,  1546,  4170,  3465,  2126,  1193,  2127,
-    2442,  1189,  1190,  1193,  1535,  1189,  1190,  1853,  2346,  3651,
-    1695,  2241,  1189,  1190,  2128,  1193,  1189,  1190, -1787,  2130,
-    2689,  4193,  3365,  4028,  2252,  1193,  1191,  4038, -1788,  1192,
-    1388,  2137,  1581,  1537,  1193,  1129,  2811,  1544,  1928,  2317,
-    2117,  3226,  1189,  1190,  2475,  3351,  2317,  1733,  1191,  1129,
-    2138,  1192,  2771,  2790,   753,  1193,  1893,  2005,  2821,  1832,
-    1894,  2694,  2695,  3352,  2564,  2216,   553,  2831,  2337,  3435,
-    2822,  2148,  2942,  4032,  4033,  1191,  4215,  3836,  1192,  2373,
-    1107,  2533,   262,  2256,   264,  1225,  2565,  1553,  1456,  1933,
-    1189,  1190,  1582,  2089,  1553,   557,  3522,  2737,  1225,  1680,
-    2445,  3478,  3392,   700,  1457,  1679,  1189,  1190,  3460,  3693,
-    3694,   619,  2688,  3934,  2243,  2067,  1701,  2090,  2290,  4275,
-    1583,  2563,  2698,  1189,  1190,  1191,  2116,  1226,  1192,  4320,
-    4321,  1833,   987,    43,  1191,  2260,  4197,  1192,  3353,  1906,
-    2999,  1801,  2312,  2313,   897,  4112,  1928,   599,   619,  2576,
-    1189,  1190,  1227,  1737,  1934,  3338,  2534,  3221,   609,  1741,
-    1189,  1190,  2389,   705,  4156,  4055,  3652,   609,   582,  1039,
-    2303,  2577,  1189,  1190,  1189,  1190,  1679,  1206,  4029,  3653,
-   -1787,  1191,  1854,  1928,  1192,  4100,  3427,  2829,  1191,  1584,
-   -1788,  1192,  4039,   729,  1191,  3930,  1313,  1192,  2363,  1314,
-    4096,  1739,  3352,  1189,  1190,   619,   574,  1191,  2318,  2471,
-    1192,  1189,  1190,  1189,  1190,  2318,  1554,  1773,  2393,  1776,
-    1834,  1946,   609,  1577,  2072,  3615,  3882,  3120,  2516,  1191,
-    3428,  4101,  1192,  1191,   609,  2569,  1192,  3000,  3916,  4113,
-    3199,  1191,   619,  1688,  1192,  1335,  2608,  2943,  4457,  2516,
-    2030,   609,   609,  1373,  1191,  3177, -1765,  1192,  1946,  2823,
-     718,  3791, -2385,  1510,  1585,  1679,  4114,  1741,  2212,  1193,
-    2220,  3654,  2844,   898,  2031,   619,  2909,  3363,  1822,  1189,
-    1190,  1189,  1190,  3178,  1914,  2149,  1830,   601,  1034,  1035,
-    2073,  1193,  2390, -2385,  1702,    57,  2570,  1924,   493,   493,
-     493,   609,   493,   609,  4198,   583,  2322,  2153,  1864,  2391,
-    1374,  1189,  1190,  2425,  1866,   493,  2910,   619,  1193,   944,
-     493,  2392,  1191,  1047,  1191,  1192,  1780,  1192,  1835,  1235,
-    1928,  1476,  1846,  1847,  1848,   734,  1850,  1375,  2253,  2871,
-     609,  1315,  2221,  3354,  1849,  1892,  1851,   899,  1553,  1867,
-    2667,   988,  4102,   602,  1871,  4045,  1191,  3916,  3916,  1192,
-    1191,  2535,   664,  1192,  1291,  1209,  4046,  1191,  1193,  3774,
-    1192,  1191,  1892,  2426,  1192,   580,   604,  1193,   989,  1189,
-    1190,  1536,  2322,  1881,  2165,   619,  2845,  2151,   610,  1863,
-    1553,   753,  1589,  2172,  3605,  3689,  1842,  1191,  2393,   609,
-    1192,  2427,  2025,   609,  1742,  1689,  2474,  1189,  1190,  1189,
-    1190,   613,  3041,  1189,  1190,  4294,  4294,  1107,  3996,  2442,
-    2089,   665,  2473,  1011,  1193,  1189,  1190,   944,  2324,  2325,
-    2213,  1193,   626,  3179,   609,  1189,  1190,  1193,  4373,   615,
-    2176,  1925,  2022,   581,  2090,  1191,  2027,  2177,  1192, -1480,
-    1193,  1741,  2121,   619,  3931,   493,   493,  4374,  2087,   493,
-    2974,  1191,  3200,   569,  1192,   729,  2178,  1227,  3140,  1586,
-    2428,  1074,  1193,  2103,  1048,  1553,  1193,  1640,  1191,  3800,
-    1108,  1192,  3354,  3018,  1193,  3097,  3762,  1823,  2179,  2083,
-    2084,  4266,  2183,  4249,  1944,  1703,  4253,  1193,   632,   650,
-    2201,  2247, -1480,  3916,  3916,  1191,  1292,  1893,  1192,  2248,
-    2394,  1704,  1742,  3056,  2693,  1191, -2573,  1227,  1192,  1644,
-     810,  1227,  4267,  4166,  1034,  1035,  1679,  1191, -1681,  1191,
-    1192,  3775,  1192,  3995,  1893, -1480,  1587,  3137,  1894,  2222,
-     761,  1189,  1190,  2563,  3790,  2429,  1376,  4185,  4186,   666,
-   -1480,  2799,   120,  1189,  1190,  3734, -1480,   636,  1191,  1189,
-    1190,  1192,  1129,  2158,   639,  1193,  1191,  1193,  1191,  1192,
-     643,  1192,  2261,  2395, -1681,  1189,  1190,  4047,  1933, -1480,
-    2098,  3057,  1589,  3068,   729,  2630, -1480,  2120,  1226,  1189,
-    1190,   497,  2636,   640,  1512,   498, -1480,  3916,  2247,  1193,
-    1109,  1159,  1163,  1193,  1666,  2642,  3163,  2118, -1480,   645,
-    1193,   944,  3916, -1480,  1193,  3078,  1824,  2151,  4349,  3079,
-    2225,  2726, -1480,   647,  3637,  3916,  3631,  1189,  1190,  2129,
-     900,   901,   659,   903,  1191,   905,  1191,  1192,  2657,  1192,
-    1193,  3709,   558,  2876,  1189,  1190,   509,   906,  3735,   807,
-    3862,  3863,  2119,  1226,   661,  2139,  3723,  2216,  1218,  1219,
-    1220,  1221,  2249,   753,   564,  3580,  1191,  2903,  2904,  1192,
-     619,   564,   609,   619,  3581,  1377,  1241,  1189,  1190,  1189,
-    1190,  1189,  1190,   662,   609, -1480,  2266,  3916,  1193,  1107,
-    3736,  3192,  2272,  2272,  4259,  2272,  1742,  1378,  3764,  3916,
-    3916,  3766,  3723,  2140,  1193,   619,  2704, -1480,   609,  1189,
-    1190,  1513,   609,   663,  2072,  1514,   802, -1480,  2570,  2147,
-    2569,  1193,   846,   590,   578,  1589,  1515,  2419,   579,   619,
-     619,   609,   609,   860,  1191,  2271,  2271,  1192,  2271,  1379,
-    1129,  1490,  1491,  2272,  2272,  2272,   866,  3916,  1193, -1480,
-    2430,  2295,  1158,   868,  3801,  1307,  4146,  3916,  1193,   886,
-    2358,  1140,  1191,  2161,  1191,  1192,   888,  1192,  1191,  2369,
-    1193,  1192,  1193,  2162,  1326,  2315,   591, -1681,  1935,   878,
-    1191,  1157,   753,  1192,   961,  2166,  2271,  2271,  2271,  3455,
-    1191,  1189,  1190,  1192,  1173,  1174,  2425, -1480,   982,  2912,
-    3916,  1193,  3916,  1358,  1189,  1190,   609,  3582,  1107,  1193,
-    3456,  1193,  3916,  1189,  1190,   262,  2170,   264,  2388, -1480,
-    1469,  1470,  1206, -1681,  2171,   609,  2175,  2888,  3183,  2602,
-    2311,  3916,  4097,  3916,  4098,  3916,   983,  3185,   991,  1386,
-     849,  3457,  3916,  1011,  3349,  1189,  1190,   592,  1386,  2381,
-    2124,  2125,  1516,  3916,  1189,  1190,  2426,  3466,  1000,  1527,
-   -1480,  1189,  1190,  1021,  3186,  2144,  1226,  2365,  2399,  3916,
-    3916,  1162,  4059,  1040,  3383,  3384,  1041,  1193,  1045,  1193,
-     118,  1503,  1504,  1936,  2427,  3916,  3916,  3933,  1189,  1190,
-    3916,  1226,  2180,   972,  2192,  3397,  1191,  2557,  1076,  1192,
-    1189,  1190,  1077,  2573,  1189,  1190,  1189,  1190,  1191,  1193,
-    1078,  1192,  1189,  1190,  1191,  1229, -1480,  1192,  1080,  3989,
-    3990,  1081,  2502,  1679,  2207,  1189,  1190,  2152,  1226, -1480,
-    1191,  1863,  1082,  1192,  1085,  3604,  1086,  2517,  1087,  4281,
-    1088,  2626,  2409,  3991,  1191,  2154,  1226,  1192, -1480,  1517,
-   -1480,  2416,  2417,  2428,  2626,  1189,  1190,  1189,  1190,  3960,
-    3961,  3962,  2421,  2422,  2423,  2424,  1089,  2432,  2433,  1189,
-    1190,  1189,  1190,  1230, -1480, -1480,  1090,  1193, -1480, -1480,
-    1679,  1091,  1191,  1189,  1190,  1192,  1092,  1189,  1190,  1945,
-    1093,  2829,  3021,  1189,  1190,  1189,  1190,  1094,   619,  1191,
-    2155,  1638,  1192,  4172,   619,  1193,  2574,  1193,  1095,   493,
-    1209,  1193,  2337,  1679,  2167,  1226,   609,   609,   609,  2597,
-    3044,   944,  2600,  1193,  2909,  1272,  3046,   262,  2429,   264,
-    2669,  1096,  1191,  1193,  1191,  1192,  1191,  1192,  3052,  1192,
-    1945,  1765,   619,  2579,  1766,  1937,  2686,  1767,  3053,  1097,
-     914,   915,  4367,  1098,  4369,   619,  1938,  1099,  3934,  2593,
-    2594,  2595,  1911,  1939,  1191,  2529,  2530,  1192,  2537,  1102,
-    2539,  2540,  2541,  2542,  2543,  2168,  1226,  2546,  2707,  2548,
-    2243,  3133,  1104,  4387,  1105,  3023,  2169,  1226,  4057,  1512,
-    2231,   593,  1189,  1190,  2060,  3045,  2931,  2060,  1106,  4073,
-    1241,  1241,  1241,  1234,   804,   805,  1189,  1190,   808,   809,
-    3492,  3493,   811,   594,   813,   976,   977,  1110,   978,  1245,
-     979,  4419,  4420, -1765,  2173,  1226,  4074,  3176,  2696,  3566,
-    1111,  4079,  4080,  1112,  4368,  4083,  4084,  4085,  4086,  1193,
-     897,  1113,  2569,  1189,  1190,   595,  1191,   619,  1114,  1192,
-    3096,  1193,   914,   915,  3060,  1940,  1273,  1193,  1115,  1191,
-    3514,  1116,  1192,  3517,  3518,  1270,  3064,  1117,  1191,  2671,
-    1118,  1192,  2705,  1193, -1765,  3851,  3852,  2434,  2435,   619,
-    3530,   959,   960,  2626,   963,  2793,  2798,  1193,  3065,  2675,
-    1226,  2559,  1119,   619,  2711,  2712,  1122,  1928,  4164,  1123,
-    1191,   596,  3066,  1192,  3040,  2125,  1513,  4285,  1124,  1191,
-    1514,  1130,  1192,  1679,  2322,  1206,  1191,  3043,  1226,  1192,
-    1131,  1515,  2323,  1291,  3137,  1193,  2735,  1132,  3018,  2840,
-    2626,  1274,  3817,  2430,  4289,  4183,  4184,  1275,  3070,  1226,
-    3067,  4187,  1193,  1191,  4192,  1928,  1192,  1941,  1928,  2216,
-    2758,  3143,  3144,  1206,  1945,  1191,  1278,  3069,  1192,  1191,
-    1133,  1191,  1192,   619,  1192,  3318,  3319,  1191,  1134,   898,
-    1192,  1135,  1946,  3619,  1136,  1193,  2779,  1193,  2781,  1193,
-    1191,  1276,  1137,  1192,   619,  1138,   619,   619,  3408,  1226,
-    3072,  1281,  3077,  1280,  1864,  1289,  1864,  1864,  1277,  1290,
-    2707,  1216,  1217,  1218,  1219,  1220,  1221,  1193, -1480,  1141,
-    1191,  2060,  1191,  1192,  1142,  1192,  3430,  3431,  1741,  3571,
-    3572,  1680,  3080,  1946,  1191,  1589,  1191,  1192,  1143,  1192,
-     619,   619,  1001,  1144,  3818,  3819,  2324,  2325,  1191,  3820,
-    3821,  1192,  1191,   899,  2060,  1192,  1145,  1516,  1191,  3628,
-    1191,  1192,  1146,  1192,  1147,  3601,  3602,   118,  1581,  1148,
-    2061, -1480,  2863,  2061,  1149,  1292,  1741,  3946,  3950,  1741,
-    2517,  1150,  2875,  3608,  3616,  2517,  2326,  3538,  2885,  2778,
-    2517,  1151,  4454,  1002,  2517,  1152,  2884,  3632,  1226,  1193,
-    3646,  1226, -1480,  1153, -1480,  1244,  2884,  1154,  2517,  2517,
-    2906,   619,  1193,  1209,  3082,  2559,  2917,  1155,  2517, -1480,
-    1680,  1193,  2919,  2920,  1156, -1480,  1297,  3084,  1582,  1160,
-     609, -1765,  3539,  3661,  3662,  2921,  3086,  2922,  1161,  2884,
-   -1480,  1164,  2274,  3540,  2275,  2062,  2517,  2941, -1480,  3777,
-    2435,  1209,  2954,  1193,  1517, -1480,  1583,  1191,  1079,  2971,
-    1192,  2612,  1193,  3792,  3793, -1480,  1165,   119,  3087,  1193,
-    1171,  1191,  1928,  2918,  1192,  1175,  3222, -1480,  2923,  3796,
-    3793,  1003, -1480,  1299,  3088,   120,  1176,  2613,   944,  3541,
-    1177, -1480,  2340,  2341,  2342,  1241,  1193,  3797,  3793,  2924,
-    1178,  2886,  2887,  3856,  3431,  1928,  1179,  3233,  1193,  1228,
-    2445,  3402,  1193,  3714,  1193,  1303,   609,  2517,  3239,  1311,
-    1193,  3241,  4401,  3403, -2564,  1584,  3946,  2916,  3390,  3404,
-    3950,  3859,  3793,  1193,  2925,  3630,   944,  3866,  3867,   944,
-    4003,  4004,  2614,  4008,  3793,  2615,  1321,  1946,  3636,  4009,
-    3793,   121,  1332,  2616, -1480,  2953,  4011,  3793,  1602,  3002,
-    1211,  1212,  1334,  1193,  1351,  1193,  1352,  3315,  3409,  1353,
-    2617,  4012,  3793,  1742,  4017,  4018, -1480,  1193,  3638,  1193,
-    3639,  1356,  1398,   262,  1359,   264, -1480,  2061,  2975,  2063,
-    1367,  1193,  3640,  1741,  3641,  1193,  1368,  4458,  1211,  1212,
-    1585,  1193,  1384,  1193,  2438,  2425,  3711,  4019,  4018,  1393,
-    3956,  1372,  1399,  4075,  4076,  -786,  4404,  4405, -1480,  2471,
-    2061,  1742,  1205,  1394,  1742,  1395,  1741,  4203,  4004,  4204,
-    4004,  2737,  4212,  3431,   122,  1410,   900,   901,   902,   903,
-     904,   905,  4257,  4258,  -620,  1413,  2266,  4301,  4302,  1296,
-     619,   619,   619,   906,  1417,  2983,  1606,  1418,   609,  1431,
-    2030,  2445,  4319,  3317,  1434,  2426, -1480,  1400,  1435,  2618,
-    1437,  1510,  1401,  2446,  4446,  4447,  2425,  2735,   619,  3808,
-    3809,  1680,  1669,  1670,  2031,  3447,  3448,  1004, -1480,  3946,
-    3950,  3415,  3416,  2427,  1129,  2062,  1442,   619,   619,   619,
-    1193,  3119,  1214,  1215,  1216,  1217,  1218,  1219,  1220,  1221,
-    3162,  1034,  1035,  3875,  1193,  3587,  3164,  3543,  3166,  3875,
-    1447,  2626,  1453,  3544,   619,  3659,  3660,  3613,  1459, -1480,
-    2926,  1463,  1206,  1461,  3857,  3858,  2426,  3860,  3861,  1864,
-    1214,  1215,  1216,  1217,  1218,  1219,  1220,  1221,  1466,  1467,
-    1471,  -620,  1005,   944,  1006,  1607,  1679,  1474,  1475,  1610,
-     123,  1478,  2428,  3545,  2427,  1480,  1611,  4071,  2445,  2619,
-    -620,  1479,  1521,  1522,  2927,   504,  1523,  1526,  1528,  1529,
-    2446,  1581,  1547,  1549,  2389, -1480,   944,  1553,  1224,  1560,
-    1206,  1580,  1557,  1558,  1559,  1591,  1169, -1480, -1480,  1626,
-    1637,  1638,  1677,  2517,  1639,  1586,  2517,  2517,  1687,  2884,
-    1578,  2030,  1696,  3161,  1712,  1718,  1402, -1480,  2472, -1480,
-    1589,  1738,   619,  1745,  1746,  2517,  1749,  1206,   124,  1752,
-    1761,  3546,  2473,  2428,  1207,  2031,  1753,  2429,  1742,  2063,
-    2884,  1582,  1641, -1480, -1480,  1645,  1612, -1480, -1480,  1756,
-    1754,  2884,  1755,  1757,  2884,  1758,  1759,  1208,  1762,  1785,
-   -2564,  1788,  1797,  1805,  1662,  1663,  1806,  1807,  1667,  2846,
-    1808,  1742,  1812,  1816,  1815,  1817,  3245,  -620,   262,   609,
-     264,  1826,   504,  1831,  3302,  1840,   125,  1403,  1681,  1682,
-    1873,  1844,  2174,  3253,   493,  1874,  1876,  1887,  3312,  1614,
-    2884,  1875,  2555,  1878,  1581,  1889,  1904,  1891,  2429,  2620,
-    1913,  2017,  1510,  2389,  2390,  3321,  2034,  2036,  2030,  2035,
-    1209,  2037,  3246,  1206,  2038,  2039,  3228,  2040,  3308,  3061,
-    3332,  2391,  2041,  3547,  3231,  1589,  2054,   609,  2847,  2042,
-    1034,  1035,  2031,  2392,  2043,  2044,  2045,  2046,  3367,  3345,
-    1404,  3368,  2056, -2564,  3741,  3742,  2047,  2048,  2049,  3369,
-    1679,  1958,  2050,  2051,  1582,  2052,  2053,  3745,  1959,  2447,
-    1960,  4071,  2074,  2621,  3748,  2075,  3370,  1206,  1209,  3977,
-    3334,  1961,  1962,  -620,  2082,  2092,  1358,  3978,  2093,  2094,
-    3452,  4118,  2846,  2151,  2095,  2101,  1109,  1159,  1163,  2107,
-    3767,  3768,  2622,  2143,  3877,  2109,  2840,  2110,  2111,  2134,
-    2135,  3979,  1963,  2848,  2136,  1209,  1210,  1964,  1965,  3371,
-    2393,  2145,  2141,  2142,  1966,  3324,  2156,  3407,  2160,  2164,
-    2181,  2182,  2187,  2217,  2190,  2779,  1615,  1967,  2191,  2202,
-    2203,  2204,  2430,  2390,  2224,  1968, -1169,   563,  1221,  1915,
-    3837,  1617,  2230,  3827,  4306,  1969, -1765,  2240,  2262,  2735,
-    2391,  2847,  1405,  1916,  2269, -1306,  2287,  1211,  1212,  1970,
-    2296,  2302,  2392,  2305,   507,  3372,  2308,  2338,  2758,  3442,
-    2339,  1213,   619,  1453,  2354,  2366,  1971,  2368,  2370,  2371,
-    -620,   619,  2397,  1972,  1973,  2375,  1406,  2705,  2402,  2398,
-    1974,  2401,  2404,  4155,  1206,  2408,  2410,   619,  1975,  2411,
-    2412,  1209,  -892,  2430,  1976,  2358,  2413,  2414,  2415,  2445,
-    2457,  2462,  2463,  2467,  3918,  1211,  1212,  3980,  2466,  2469,
-    2470,  4020,  2394,  2476,  2479,  1680,  2848,  2478,  2778,  2485,
-    2486,  2491,  2497,  1977,  2492,  2498,  2521,  2517,  2525,  2393,
-    2505,  2527,  2580,  -620,  4306,  2602,   503,  2517,  2558,  2884,
-    2606,  2598,  1211,  1212,  2611,  1209,  2637,  2638,  1680,  2639,
-    2248,  3691,  3373,  2649,  2884,  3374,   609,   262,  2517,   264,
-    2716,   507,  2650,  1978,  2717,  1979,  2702,  2662,  2681,  2692,
-    2683,  2701,  2626,  1980,  2718,  2395,  1189,  1190,  3988,  2727,
-    2684,  2685,  2714,  2715,  3981,  2724,  1679,  2729,  1981,  1214,
-    1215,  1216,  1217,  1218,  1219,  1220,  1221,  4439,  2849,  2730,
-    2731,  2738,  3982,  1917,  2739,  2742,  1792,  2743,  2744,  1679,
-    2760,  2748,  2761,  2763,  4311,  4312,  1679,  4314,  2764,   504,
-    4450,  2765,  1679,  2346,   673,  3983,  2345,  4439,  2783,  2805,
-    2817,  2971,  3375,  4450,  2812,  2782,  2784,  2808,  1211,  1212,
-    -620,  2394,  1982,  2818,  2819,  2835,  2106,  1214,  1215,  1216,
-    1217,  1218,  1219,  1220,  1221,  -817,  3600,  3600,  3600,  2842,
-    1983,  1864,  3680,  2843,  1984,  2891,  4357,  2893,  4358,  4359,
-    2950,  2960,  1209,   619,  2964,  1918,  2966,  2981,  2980,  1598,
-    1599,  1600,  1601,  1602,  1214,  1215,  1216,  1217,  1218,  1219,
-    1220,  1221,  1211,  1212,  2989,  2985,  1989,  1034,  1035,  2990,
-    1919,  1906,  1985,   505,  2395,  3015,  3717,  1986,  2102,  3024,
-    3029,  1961,  1962,   700,  1987,  3093,  1988,  3035,  3037,  3038,
-    3104,  2849,  3039,  1989,  1990,  4158,  3109,  3568,  3047,  3048,
-    3114,  4398,  2159,  3988,  3116,  3091,  2163,  3095,  3100,  3103,
-    3121,  3125,  3128,  3669,  -769,  -769,  3124,  1964,  1680,  1313,
-    3592,  3142,  2840,  3139,  4431,  1991,  -769,  3148,  2186,  3376,
-    3145,  3160,  1920,   619,  3159,  3165,   704,  1967,  3173,  1992,
-    1993,  1994,  1995,   705,  3193,  1968,  3197,  3198,  1603,  1604,
-    1605,  1606,  1216,  1217,  1218,  1219,  1220,  1221,  3377,   865,
-    3201,   944,  1996,   522,  3213,  3212,  3214,  3303,  3225,  1970,
-    3234,   709,   710,  3243,  3306,  3600,  3726,  3984,  3244,  3309,
-    3310,  1915,  3314,  1453,  3242,  3327,  1971,  3316,  4160,  1211,
-    1212,  3320,  3731,  3837,  3317,  1916,  2626,  3328,  3333,  -443,
-    2322,  3336,  3342,  1336,  1214,  1215,  1216,  1217,  1218,  1219,
-    1220,  1221,  3343,  1337,  1976,  3344,  3347,  3364,  3385,  1997,
-     523,  1921,  3382,   619,  2276,  1196,  1197,  3393,  3386,  1338,
-    3394,  3412,  3421,  3411,  3423,  1998,  3426,  3432,  3445,  1999,
-     718,  1339,  1340,  1341,  -628,  3453,  2277,   524,  3434,  3769,
-    1607,  3538,  1608,  1609,  1610,  3470,  3773,  1342,  2000,  2278,
-    1198,  1611,  3461,  2001,  3452,  3462,  3471,   506,  3491,  3494,
-    2279,  1199,  3483,  3495,  3332,  3515,  2002,   262,  2519,   264,
-    3508,  3565,   525,  3569,  3567,  1979,  3575,  3579,   507,  3588,
-    3589,  3596,  3590,  1980,  3593,  3594,  3539,   619,  2389,   729,
-    3606,  1191,  3607,  3608,  1192,  3609,  3617,  3540,  1981,  3610,
-    3751,  1200,  3614,  3620,   733,   734,  3622,  3624,  3625,  3626,
-    2280,  3629,  2281,  1201,  3633,   508,  3634,  3750,  -535,  3635,
-     526,   509,  1215,  1216,  1217,  1218,  1219,  1220,  1221,  -892,
-    3648,  1612,     1,  3647,     2,  4158,  3657,  3664,  3665,  2282,
-    1202,  3674,  3163,  3541,  3676,  1917,  3662,  3677,  3681,  3682,
-       3,  3685,  1982,  3687,     4,   619,  3778,   510, -1395,  3688,
-   -1400,  3699,  3712,  3713,  3715,   511,  3716,  3732,     5,     6,
-    1983,  3555,  3729,  3849,  3740,  3746,     7,   673,  3744,  3754,
-    3755,     8,     9,  1613,  1614,  3756,  3600,  3600,  3757,  3600,
-    3600,  3758,  3761,  3760,  3558,  3779,  3795,  3780,  1203,  3798,
-    2283,  3799,  3616,    10,  3802,  3806,  3807,  3810,  3812,  3813,
-    2626,  3825,  3814,  3542,  3988,  3826,  3829,  1918,  2390,  3830,
-    3840,  3841,    11,  3845,  1987,  3847,  1988,  3865,  3871,  3878,
-    3885,  3879,  3919,  3927,  1990,  2391,  3884,   262,  4353,   264,
-    3942,   -65,  1919,    12,  3952,  4428,   527,  2392,  3957,  3959,
-    3953,    13,    14,    15,  2284,  3923,   609,  1343,  3954,  3717,
-    3970,  3967,  4000,    16,    17,  4002,   700,  3600,  4005,  -786,
-    4023,  4013,  4021,  -309,  1344,  4041,    18,  4044,  4050,  4428,
-    4054,  4061,  4043,  4062,  4066,  4078,  4081,   753,  4082,  4087,
-      19,  3718,  4090,  4094,  3719,  4092,  2945,  1961,  1962,  3924,
-     609,  4123,  1996,  3974,  1920,   759,    20,  4126,  -327,  4152,
-     761,   619,  4353,   762,   528,  4153,  4154,  4171,  4174,   704,
-    4177,  1615,    21,  4189,  2393,  4201,   705,    22,  4205,  4206,
-    4213,    23,  4207,  1964,  1193,  1616,  1617,  4216,  4208,  3883,
-    4217,  4014,  4218,  3968,  4224,  4229,  3695,  4225,  4235,  4236,
-    4237,  4240,  4247,  1967,   709,   710,    24,  4261,    25,  1997,
-    4262,  1968,  4027,  4263,   800,  1034,  1035,  4034,  4264,  3720,
-    3721,  3543,   529,  4272,    26,  1998,  4277,  3544,   530,  1999,
-    4273,  4282,  4456,  4284,  4286,  1970,  4228,  4287, -2300,  4290,
-    4296,  4313,    27,  1921,  4310,  4315,    28,   531,  2000,  1453,
-    1345,  4228,  1971,  4299,  4316,  4318,  4331,  4344,  4345,  4347,
-    4350, -1564,  4364,  4361,  4238,  4365,  2002,  3545,  4366,  4370,
-    4371,  4378,   532,   718,  4381,  4375,  4383,  4390,  4384,  4386,
-    1976,  4392,  4395,  4396,  4399,  4403,  2394,  4407,  4416,   533,
-    4409,  1680,  4417,  4440,  4036,  4444,  4453,  2709,  2550,  3577,
-    2855,  3578,  3783,  4051,  1057,  1346,  4161,  4297,  1465,  4188,
-    4298,  3781,  3785,  3922,  4451,  4411,   577,   956,  3896,  3147,
-    2330,  3897,  3899,  1347,  3849,  3010,  3849,  3900,  4099,  3902,
-    4421,  3903,   729,  3904,  3905,  3546,    29,  4328,  3906,  4222,
-    3907,  4329,  3910,   262,  4295,   264,  4234,   733,   734,  2395,
-    3911,  1979,  3912,    30,  4127,  4233,  1957,    31,  2251,  1980,
-    4056,  1525,  2509,  2003,  4053,   800,  3238,  2028,    32,  3127,
-     800,  3667,  3132,  3425,  1981,  1795,  4176,  4246,  3969,    33,
-    3670,  4380,  4309,  4168,  4352,   660,  4228,  4089,  2059,  3789,
-    2507,  3325,  3507,  3008,  2514,  2947,  4343,  3496,  4362,  3523,
-    3974,    34,  3500,  4120,    35,  3379,    36,   800,  3564,    37,
-     619,  3873,    38,    39,  3759,  2707,  4194,  4173,  3749,  3459,
-      40,   518,    41,   519,   800,  4105,  4210,  4064,  1982,    42,
-    4211,  4058,  2091,  4063,  2592,    43,  3941,  3547,  2511,  3876,
-    3498,  1433,  2935,    44,  1009,  1890,  1983,  3728,    45,  2386,
-      46,  4377,  3497,    47,  2745,  2057,  2314,  2026,  3118,  3422,
-    2766,  2725,  2680,  2344,  3917,   800,   800,   800,   800,   980,
-    1363,  2629,  4228,  3410,  4228,  3102,  2627,   800,    48,  4308,
-    1636,  4397,    49,  2830,  3467,  2679,  4167,  4007,  3853,  4270,
-    3576,  4271,  4228,  1579,  2699,  1680,  3184,  1907,  3502,  3850,
-    1987,  2930,  1988,  4402,  3839,  2596,  4181,  4182,  2773,  1779,
-    1990,  1810,  2723,  3672,  2751,  3477,   619,  4243,  3438,  3437,
-     968,  1961,  1962,  2100,  4228,  4228,  1075,    50,  2377,  4443,
-     753,  2971,  2971,  1856,  3718,   952,  1879,  3719,  2378,    51,
-     817,   818,  3506,    52,  2263,  3424,    53,  1814,   759,  4348,
-    4452,  4265,    54,   761,  -769,  -769,   762,  1964,   800,  4379,
-    4317,  4455,  3753,  3441,  1829,  2355,  -769,  3181,  3463,  3686,
-    3842,  1821,   893,  3958,  2301,  1350,  1772,  1967,  1996,  3106,
-     619,    55,  3966,   895,  2081,  1968,  1355,    56,  1061,   654,
-     655,  1062,  1063,     0,     0,     0,     0,    57,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  4333,     0,  1970,
-    4254,  4255,  3720,  3721,  4341,     0,     0,     0,     0,     0,
-       0,     0,     0,  1453,     0,     0,  1971,     0,     0,     0,
-       0,   819,     0,     0,     0,  1997,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,  1998,     0,     0,  1976,  1999,     0,     0,     0,  4445,
-     820,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   821,  2000,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    4388,     0,  2002,     0,     0,  4393,   822,     0,     0,   823,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     824,     0,     0,     0,   800,     0,     0,   262,     0,   264,
-       0,     0,     0,     0,     0,  1979,     0,     0,     0,     0,
-       0,   825,  4429,  1980,     0,     0,     0,     0,     0,     0,
-       0,  1680,     0,     0,     0,     0,     0,     0,  1981,  4360,
-       0,     0,     0,     0,     0,     0,     0,     0,   826,     0,
-     619,     0,  2582,     0,  1680,   827,  4429,     0,     0,   800,
-     800,  1680,     0,     0,     0,     0,     0,  1680,   800,   800,
-     800,   800,   800,   800,   800,   800,   800,   800,   800,   800,
-     800,     0,     0,     0,     0,     0,     0,     0,   800,   800,
-       0,   800,  1982,   800,     0,   828,     0,   800,     0,     0,
-     800,   800,   800,   800,     0,   800,   800,   800,     0,     0,
-    1983,     0,     0,     0,   800,   800,     0,   800,   800,   800,
-     800,   800,     0,     0,   800,   800,   800,   800,   800,   800,
-     800,   800,   800,   800,   800,     0,     0,   800,   800,     0,
-       0,   800,     0,     0,     0,   800,     0,   800,   800,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   800,   800,     0,  1987,     0,  1988,     0,     0,   800,
-       0,     0,     0,     0,  1990,     0,   800,   800,   800,     0,
-     800,     0,     0,     0,     0,     0,     0,   800,   800,   800,
-       0,   800,   800,   800,   800,   800,     0,   800,   800,   800,
-     800,   800,   800,   800,   800,     0,     0,     0,   800,   800,
-       0,     0,     0,     0,     0,  1247,     0,     0,     0,     0,
-       0,     0,     0,   829,     0,     0,     0,   830,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,  1996,   831,     0,   912,     0,     0,  1248,     0,
-       0,   832,     0,     0,     0,   869,   913,     0,     0,   833,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     914,   915,     0,     0,   834,   800,     0,     0,   916,     0,
-       0,     0,     0,   917,     0,     0,     0,   835,   836,  1997,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  1083,
-       0,     0,     0,     0,     0,  1998,  1249,     0,     0,  1999,
-     918,     0,   919,     0,   920,     0,     0,     0,     0,     0,
-       0,     0,     0,   921,     0,     0,     0,     0,  2000,     0,
-    1250,     0,   837,     0,  1251,   800,  1121,     0,     0,     0,
-       0,     0,     0,   800,     0,     0,  2002,     0,     0,     0,
-       0,     0,     0,  1139,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   838,     0,     0,     0,     0,  1252, -1765,
-     922,     0,     0,     0,     0,   923,     0,     0,   924,     0,
-       0,     0,     0,     0,     0,   839,     0,   840,  1253,     0,
-       0,     0,     0,     0,     0,     0,     0,  1183,     0,     0,
-       0,     0,  1254,  2583,   925,     0,   926,     1,     0,     2,
-       0,     0,     0,   927,     0,   928,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     4,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     929,   930,   931,     5,     6,  2016,     0,     0,     0,     0,
-    1255,     7,     0,     0,     0,     0,     8,     9,     0,     0,
-       0,     0,     0,   932,     0,     0,     0,     0,     0,     0,
-       0,     0,  1256,     0,     0,     0,     0,     0,    10,     0,
-       0,  1487,     0,     0,     0,   933,     0,  1312,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    11,     0,     0,
+     494,  1039,   952,   956,   868,   539,  1452,  1658,   984,  1361,
+     997,  1682,  1592,   538,   555,  1681,   544,   623,  1104,  2307,
+    1454,   563,  1082,   492,  2219,  1635,   558,  1553,  1112,  1417,
+    2356,  2357,  2035,   570,  1241,  1131,   573,  1866,  1543,  1544,
+     570,  1865,  1747,  2522,  1389,  1790,  2340,  2901,   592,  2551,
+    2725,  2032,  2957,   796,  3014,  1703,  2846,  1383,  3195,   542,
+    2758,  1799,  1711,  3151,  2603,  3022,  1459,  1713,  1714,  1389,
+    1460,  1717,  1718,  1719,  1720,  2629,  1722,  1723,  1725,  1727,
+    1728,  1729,  1730,  1731,  1162,  1418,  3484,  1166,  2638,  1175,
+     612,  1935,  2830,  2008,  1600,  2452,  2447,  1028,  1031,  2339,
+    2448,   137,  2520,  1873,  2686,  1053,  1061,  2388,  2639,  3312,
+    2410,  2411,  2779,   615,  2897,   494,  2460,   494,   622,   628,
+    2464,  1883,  1183,  1184,  1185,  3489,  1069,  2422,  2571,  1886,
+    1887,  2479,  2572,   611,  1226,  2712,  2767,  3680,   617,  1225,
+     619,  2488,  2821,  3563,  2440,  2441,  3820,  1332,  1913,  2875,
+    2831,  3037,  2070,  3524,  3529,  1192,  1193,  3530,  1794,  1948,
+    2462,  2463,  3411,  2465,   500,  1294,  2468,  2469,  1192,  1193,
+    2472,  2119,  3504,   637,  2435,  2481,  3540,  3531,  2497,  2484,
+    2485,  2486,  2487,  3562,   554,  2991,  2491,  2492,  2352,  2494,
+    3094,   562,  1192,  1193,   646,  2503,  3616,  1805,  2507,  2508,
+    2260,  2510,  3715,  1289,  2404,  3032,  3033,  1294,  2424,  1244,
+    2116,  3039,  2080,  3041,  1192,  1193,  2568,  3225,  1192,  1193,
+    2569,  2878,   972,  2861,  2862,  1511,  4054,   550,  1192,  1193,
+    2989,  2865,  1435,  3016,   917,   918,  3146,  1515,   850,  1192,
+    1193,  2443,  3396,  1169,  3688,  2260,  1286, -1945,  1414,  1192,
+    1193,  1456,  2869,   118,  1931,  3059,  3968,  1192,  1193,  2555,
+    2556,  2557,  2558,  3222,  3370,  3628,  4161,  2869,  1937,  3490,
+    3383,  1326,  2532,  3938,  1192,  1193, -1441,  2542,   732,  2319,
+    -865,  1456,  2592,  2548,  2549,  1372, -2457,  2397,  2553,  1855,
+     638,  3342,  3360,  4279,  1442,  3360,  2320,  2585,  1744,  3418,
+    4219,  1032,   667, -1481,  2523,  3361,  1042,  1295,  3361,  3204,
+    -529,  1050,  4327,  1456, -1441,  1192,  1193,  1463,  3678,  3362,
+    2498,  2300,  3362,  2504,   917,   918,  1192,  1193,  2349,  2076,
+     917,   918,  2560,   917,   918,  1927,  2962,  4033,   661,  2575,
+    2982,  2983,  -530,   551,  3713,  1856,  4226,  2605,  2815,  1295,
+    4254,   136,  1419,  4258,  1516,  4167,  1192,  1193,  1517,  3240,
+    2023,   668,  1387,  1192,  1193,  3139,   547,  1931,   588,  1518,
+    2682,   120,   583,  4226,  1192,  1193,  1744,  2350,  1948,  1034,
+    3460,  4112,  2775,  1429,  1802,  1390,   571,  2790,  2794,  2796,
+    2187,  3193,  1049,  2870,  4072,  3769,  1192,  1193,  3771,   973,
+     974,  3461,   651,  3837,  2202,  4271,   136,  1536,  1394,  4020,
+    3748,  1014,   138,   262,   653,   264,  -433,   497,   498,  3752,
+    1170,  1171,   499,  1192,  1193,  2806,  3654,  1599,  1803,  2092,
+    1192,  1193,  3462,  2671,  1537,   813,  4272,  1391,   853,  3859,
+     584,  1131,  1949,  3768,  3939,  1399,  2593,  1321,  3770,  3194,
+    2996,  3806,  3211,  2093,  2301,  1192,  1193,  1430,  1035,  1743,
+    1192,  1193,  1051,   548,  1512,   589,  1238,  1909,  1906,  2776,
+    4073,  1480,  3241, -1481,  2024,  4354,   756,  4214,  2717,  1928,
+    1192,  1193,  2963,  1068,   642,  3342,  3934,  1532,  3809,  2576,
+     669,  1624,  1443,  4034,  1625,  1519,  3527,  1533,  1534,  1535,
+    2505,  4280,  1110,   622, -2577,   628,  3343,  1055,  1063,  1909,
+    3491,  1194, -1766,  1229,  1195,  3799,  4161,   852,  2321,  3199,
+    3969,  1857,   809,  2478,  1194,  1868,   628,  1195,  1871,  4220,
+    1459,  3205,  3370,  1875,  1460,   848,   947,  3839,  3232,   622,
+    3397,   858,  1415,  1745,  1747,  3829,  2879,  3226,  1194,  2772,
+    2883,  1195,  1192,  1193,   876,  2997,  1708,  1935,  1716,  1888,
+    1889,  3154,  3155,  3156,  2899,  2900,  1332,  1911,  3221,  3024,
+    1194,  3223,  3224,  1195,  2910,  1737,  1192,  1193,  1192,  1193,
+    2239,  2447,   968,  2446,  1194,  2448,  1931,  1195,   851,  2384,
+    3234,  2242,  2773,  1520,  2245,  1194,  1332,  2261,  1195,  1033,
+    1459,   987,  2520,  2364,  1460,  1194, -1481,  2871,  1195,  3495,
+     622,  3655,  1001,  1194,  2571,  2950,  1195,   655,  2572,  1567,
+    1568,  1745,  1373,   612,  3860,  3706,  2008,  3445,  2829,   494,
+    1194,  1192,  1193,  1195,   612,  3220,  1026,  2839,   612,   612,
+    1192,  1193,  2261,  1040,  1001,   859,  1623,  2302,   622,  3438,
+    3650,  3215,  1013,  3328,  1636,  2365,  1638,  3346,  1070,  1071,
+    1072,  1949,  2117,  3707,  1077,  1287,  1011,  2894,  1651,  1652,
+    1653,  1194, -1441,  2520,  1195,  4399,  1657,  1023,  1767,  2902,
+    2524,  1513,  1194,  1192,  1193,  1195,   969,  2322,  1936,  1290,
+    2820,  1422,  2070,   817,  2236,  2882,  2594,  2884,  2859,  1750,
+    3343,  1067,  2568,  2567,  2895,  1240,  2569,  1592,  1744,  3532,
+    2499,   866,  1194,  2780,  1795,  1195,  1132,  2907,  1806,  1194,
+    3960,  3487,  1195,  2916,  2918,  3689,   975,   552,   897,  4115,
+    1194,  3933,  2863,  1195,  1937, -2457,  3157,  3158,  3029,  2934,
+    2918,  3340,  4156,  1192,  1193,  3617,   970,  1172,  1821,  2075,
+    3998,  2992,  1194,  1913,  1196,  1195,  1192,  1193,  -865,  2987,
+    3848,  2134,  2081,  2979, -2457,  2864,  1792,  1196,  1192,  1193,
+    3327,  2082,  3235,  2222,  1189,  2981,  1191,  2872,  2058,  1194,
+    1513, -1481,  1195,  1812,  3515,  3516,  1194,  1050,  -529,  1195,
+    1872,  1196,  3037,  1192,  1193,  3037,  3037,  3948,  4128, -1481,
+    1234,   494,  1236,  4328,  1001,   494,   622,  2135,   494,   622,
+    1513,  1194,  3037,  1196,  1195,  4070,  1194,  1196,  1386,  1195,
+    -530,  1885,  3187,  2984,  1235,  4282,  3541,  1196,  1239,  2188,
+    3654,  1243,  3561,  3564,  3566,  3567,  1194,  3095,  1196,  1195,
+    1848,  3363,  2203,  3517,  3363,  3021,  1299,  3518,  1196,  1395,
+    1192,  1193,  4096,  1688,  1689,  4021,  1196,  4065,  3208,   612,
+     654,  4247,  2807,  1688,  2153,  2730,  3560,  1479,   947,  2076,
+    1895,   622,   612,  1196,  2376,  2758,   612,  3537,  3538,  3539,
+    2574,   815,  3658,  3509,  1915,  3542,  1400,  1014,  2191,  2192,
+    1771,  3474,  4042,  3568,  -433,  3478,  2998,  1192,  1193,  1732,
+    3029,  2366,  1310,  3106,  4122,  3037,  4124,   877,  1194,  1192,
+    1193,  1195,  3494,  3432,  1196,  1329,  3449,  1539,  1303,   622,
+    1626,  1192,  1193,  1627,  3729,  1196,  3116,  3117,  3118,  2208,
+    2209,  2535,  1194,  3931,  1194,  1195,  3938,  1195,  1051,  3131,
+    2694,  2695,  3299,  1192,  1193,  3705,  3448,  4256,  3473,  1192,
+    1193,  1556,  3477,  1745,  2160,  1196, -2525,  3433,  2380,  4437,
+    3623,   612,  1196,  1192,  1193,  3136,  1227,   860,  1323,  3626,
+    3063,  3064,  2947,  1196,  2223,  1272,  2255,  3080,  3081,  1307,
+   -2577,  4175,   872,  1455,  2442,  3351,  2349,  1194,  2409,  2107,
+    1195,  2536,  2340,  1192,  1193,  1196,  1194,  2826,  1389,  1195,
+    2088,  2447,   504,  2876,  2876,  2448,  2378,  4198,  1822,  2827,
+    3103,  3104,   612,   556,   884,  3655,  2383,   601,  2652,  2386,
+    2387,  3708,  1196,  3386,  1866,  1423,  1866,  1866,  1389,  1196,
+    2811,  2812,  1896,  2319,  3192,   560,  1897,  2571,  2125,  1194,
+    2229,  2572,  1195,  3356,  2108,  2339,  2224,  1935,  4043, -1766,
+    2320,  1192,  1193,  2745,  1196,  4249,  2607,  3200,  3201,  1196,
+    4116, -2525,  1387,   612,   577,  2250,  1556,  1549,  2446,  2255,
+    2126,  2429,  2452,  2251,  2915,  2129,   262,  3470,   264,  1196,
+    1557,  2244,  3159,  1698,  1192,  1193,  1192,  1193,  2537,  2693,
+    2816,  1192,  1193,  2479,  1992,  2130,  1192,  1193,  2795,  1194,
+    1772,   585,  1195,  1192,  1193,  3356,  1540,  3939,  1132,  3231,
+    1547,  1733,  1194,   732,   586,  1195,  3656,  4200,  1192,  1193,
+    1736,  1948,  1132,  1931,  1194,  2568,   885,  1195,  4201,  2569,
+    2008,  2430,  2341,  3873,  1734,  1459,  3002,  3078,  2836,  1460,
+    1995,  2698,  2699,  2259,  2377,  3841,  4438,  2948,  1424,  1194,
+    2219,  1196,  1195,  3869,  1936,  1192,  1193,  1192,  1193,  2431,
+    4102,  2960,  4103,  1682,  2538,  2741,  3440,  2131,  3698,  3699,
+    1376,  3483,  1683,  1425, -2388,  1196,  1308,  1196,  2293,   602,
+    1227,   990, -1788,  2070,   622,  3585,  2393,  2246,  1230,  2567,
+    4050,  2133,  4378,  2140,  3586,  1580,  4037,  4038,   886,  2828,
+    3357,  4051,  2315,  2316,  2263,  3465,  1194,  1192,  1193,  1195,
+    2961,  4379,  2692,  4044,  1804,  1192,  1193,  1948,  1823,  2230,
+   -2389,   622,  2702,   604,  1937,  3299,  1740,  1377,  2432,  1773,
+    1196,   612,  1192,  1193,  1682,  2903,  4060,  2033,  2834,  1196,
+     612,  1304,  4101,  2306,  2225,  1744,  2141,  2449,   861,   873,
+    1192,  1193,  3003,  1194,  1378,  2151,  1195,  1192,  1193,  3935,
+    1359,  2034,  3357,  2367,  4252,  1194,  1192,  1193,  1195,  1228,
+    1192,  1193,  2321,  3657,  1742,  2237,  3358,  1194,   622,   132,
+    1195,  1338,  1196,  1192,  1193, -2388,  3658,  1192,  1193,  2075,
+    1776,  2256,  1779,  1948,  1735,   612,  3125,  3887,  2152,  1194,
+    2573,   605,  1195,  4151,  2433,  1194,   880,   612,  1195,  2904,
+     607,   756,  3160,  3921,  2520,   622,  2394,  1835,  3620,  1194,
+    1192,  1193,  1195,  1682,   612,   612,  3874,  2914,  3587,  1931,
+     630, -2389,  3796,  2395,  4202,  2520,  2512,  1110,  3368,  4462,
+    1426,  3360,  1196, -1789, -1788,  2396,   613,  1773,   622,  1194,
+    2063,  1825,  1195,  1209,  3361,  1196,  2475,  1917,  2156,  1833,
+    2076,   133,   732,  4117,  1037,  1038,  2574,  1196,  3362,  2539,
+    2120,   494,   494,   494,   612,   494,   612,   703,  3659,   917,
+    3525,  1867,  2936,  2168,  2256,  1192,  1193,  1869,   494,  1836,
+     622,  4121,  1196,   494,  1849,  1850,  1851,  2033,  1853,  1783,
+    1111,   991,  1192,  1193,  1949,   947,  2905,  1194,  2175,  2580,
+    1195,  1870,  4052,   612,   616,  2092,  1874,  1852,  2876,  1854,
+    2231,  2034,  1427,  2397,  3875,  1931,   618, -1766,   992,  3112,
+    3004,  2581,  3921,  3921,  1192,  1193,  2232,   708,   629,  2093,
+    1194,  2322,  1194,  1195,  2563,  1195,  1536,  1194,   635,  1196,
+    1195,  1744,  1194,   732,  1532,  1195,  1884,  4118,   622,  1194,
+    1866,   881,  1195,  1592,  1379,  2179,  1556,  1192,  1193,  1845,
+     631,   120,   612,  1538,  1194,  2028,   612,  1195,  3182,  1837,
+    1584,  3359,  2966,  1228,  4119,  2478,  4286,  4001,  2446,  1513,
+    1745,  4105,  3694,    43,  1192,  1193,  1196,  2967,  1192,  1193,
+    1949,  1931,  4203,  1230,   643, -1789,  3183,   612,  1196,  2434,
+    2849,  1194,  2180,  1194,  1195,  2025,  1195,  1192,  1193,  2030,
+    1196,  2423,  1192,  1193,  2181,  3936,   622,  3005,   494,   494,
+    3533,  2090,   494,  3534,   721,  2398,  2182,  4106,  4299,  4299,
+    1585,  1212,  1196,  3359,  1077,  3739,  2106,   646,  1196, -2525,
+    1691,  2086,  2087,  1230,  3023,  3102,  2979,  1230,  2186,  1556,
+     756,  2215,  1196,  1194,  2204,  3938,  1195,  1947,  1586,   498,
+    2477,  1194,  3805,   499,  1195,   854,  1949,  3079,  3921,  3921,
+    -198,   572,   642,  3767,  2697,  1682,  1110,  1838,  1194,  3142,
+    1895,  1195,  1196,  1380,  4171,  1643,  1192,  1193,  2399,  4372,
+    4000,  4374,  3779,  1192,  1193,  1556,  1194,   648,  3061,  1195,
+     737,   947,  2567,  1194,  2326,  1381,  1195,  2064,  4190,  4191,
+     561, -2388,  1194,  1744,  2850,  1195,  1194,  1192,  1193,  1195,
+    4392,  1192,  1193,  1192,  1193,  1132,  2161,  1587,  3740,  1194,
+   -1682,  1826,  1195,  1194,  1936,  2264,  1195,  4325,  4326,  1161,
+    1196,   756, -2388,  1592, -2525,    57,  3184,  1382,  2634,  4107,
+     855,   650,  1112,  1162,  1166,  2640,  3062, -2389,  4424,  4425,
+     498,   262,  3921,   264,   499,   639,  1194,  1110,  2646,  1195,
+    3741,  3951,  3955,  1196,   662,  1196, -1682,  3921,  1647,  1895,
+    1196,  2730,  2101,  2228,   512,  1196,  1745,   805, -2389,  3073,
+    3921,  3083,  1196,  1192,  1193,   262,  3084,   264,   849,  3714,
+    2124,  2661,  1692,  1588,  1192,  1193,  3197,  1196,  3636,  3980,
+    3867,  3868,   581,  2216,  1192,  1193,   582,  3728,  1192,  1193,
+     856,   810,  2132,   664,  1669,  2252,  3939,  1244,   501,  3981,
+    1165,  1194,  2219,   622,  1195,   612,   622,  2250,  1192,  1193,
+    1192,  1193,  1896,  3227,  1196,  3168,  1196,   612,  1194,  2269,
+    2154,  1195,  3921,  4264,  3780,  2275,  2275,  3610,  2275,  2142,
+    1827,  2143,   665,  3728,  3921,  3921,  3795,   863,   622,  2708,
+    2075,   612,   666,   947,  3238,   612,  2573,  3606,  3607,  2574,
+    1194,  2326,   869,  1195,  2154,  3244,   871,  1592,  3246,  1192,
+    1193,  3642,   622,   622,   612,   612,  1196,  2673,  2274,  2274,
+     889,  2274,   891,  1132,  1196,   764,  2275,  2275,  2275,  1472,
+    1473,  2150,  3921,  1194,  2298,   964,  1195,   985,  1310,  2164,
+    3951,  1196,  3921,  2362,  3955,  1221,  1222,  1223,  1224,  1704,
+    1192,  1193,  2373,  2121,  3320,   567,  2165,  1329,  2318,  1196,
+    1194,  1896,   567,  1195,  1194,  1897,  1196,  1195,  1530,  2274,
+    2274,  2274,  2804,   881,  2169,  1196,  1192,  1193,  1745,  1196,
+     986,  2173,   994,  1194,  1361,  3921,  1195,  3921,  1194,   612,
+    2174,  1195,  1196,  3188,  2178,   852,  1196,  3921,  2122,  1229,
+    3363,  2392,  3190,  2893,  1192,  1193,  1003,  2183,   612,  2988,
+    1014,  2195,  1024,  2314,  1043,  1143,  3921,  2063,  3921,  1044,
+    3921,  3526,  3296,  2328,  2329,  1192,  1193,  3921,  1589,  1196,
+   -1682,  1768,  2385,  1389,  1769,  1160,  3354,  1770,  3921,  3471,
+     962,   963,  1389,   966,  2210,  3719,  1192,  1193,  1176,  1177,
+    2369,  2403,  1192,  1193,  3921,  3921,  2123,  1229,  1316,  3191,
+    1048,  1317,  1194,  3145,  2881,  1195,  3388,  3389,  3585,  1194,
+    3921,  3921,  1195,  1192,  1193,  3921, -1682,  3586,  1079,  4064,
+    2561,   118,  2606,  1192,  1193,  1080,  2577,  3402,  2908,  2909,
+    2127,  2128,  1682,  1194,  1196,  1590,  1195,  1194,  1081,  1194,
+    1195,  1918,  1195,  3951,  3955,  2506,  1083,  1192,  1193,  3026,
+    1084,  1196,  1866,  1085,  1605,  1919,  3609,  1192,  1193,  1088,
+    2521,   975,  1037,  1038,  2630,  2413,  3049,  1089,  1705,  1192,
+    1193,  1192,  1193,  1090,  2420,  2421,  1091,  2630,  1092,  1294,
+    1232,  1192,  1193,  1196,  3046,  2425,  2426,  2427,  2428,  1682,
+    2436,  2437,  2675,  2834,  1192,  1193,  2147,  1229,  3051,  1093,
+    1192,  1193,  1192,  1193,  1094,  3965,  3966,  3967,  1931,  1194,
+    1192,  1193,  1195,  2234,  1192,  1193,  1196,  3050,  2155,  1229,
+    1194,   622,  1682,  1195,  3994,  3995,  2914,   622,  2341,  2578,
+    1194,  3057,   494,  1195,  1194,  2157,  1229,  1195,  1095,   612,
+     612,   612,  2601,  1196,  1318,  2604,  1229,  1196,  3996,  1096,
+    4177,  3587,  1609,  1097,  1194,  2583,  1194,  1195,  3058,  1195,
+    1192,  1193,  3065,  1948, -1481,   622,  1196,  2326,  1098,  2690,
+    1099,  1196,  1100,  1401,  1101,  2327,  1493,  1494,   622,  2158,
+    1641,  3069,  2597,  2598,  2599,  4062,  3070,  1102,  2533,  2534,
+    1105,  2541,  3138,  2543,  2544,  2545,  2546,  2547,  2170,  1229,
+    2550,  2711,  2552,  1402,  2246,  1194,  3862,  3863,  1195,  3865,
+    3866,  1107,  1244,  1244,  1244,  1920,  1108, -1481,  2171,  1229,
+    2063,  1295,  1109,  4078,  2064,  1192,  1193,  1113,  4084,  4085,
+    1744,  1233,  4088,  4089,  4090,  4091,  2172,  1229,  1209,  3181,
+    3497,  3498,  2176,  1229,  4079,  1196,  1194,  1004, -1481,  1195,
+   -1481,  1610,  1196,  3519,  3822,  1613,  3522,  3523,  1403,  2573,
+    3071,  3571,  1614,  1404,  2700, -1481,  1237,  3072,  1114,  1706,
+     622, -1481,  1194,  3535,  3101,  1195,  1196,  1115,   979,   980,
+    1196,   981,  1196,   982,  1116,  1707, -1481,  1921,  4294,  2328,
+    2329,  3074,  1192,  1193, -1481,  2709,  1294,  3077,  1005,  2065,
+    1194, -1481,   622,  1195,  3856,  3857,  1117,  2630,  1248,  2798,
+    2803, -1481,   947,  1922,  2563,  1118,   622,  1506,  1507,   917,
+     918,  1194,  1682, -1481,  1195,  1119,  3142,  1120, -1481,  2330,
+    1121,  1914,  4188,  4189,  2438,  2439,  1122, -1481,   593,  2679,
+    1229,  4197,  1194,  1615,  4169,  1195,  2715,  2716,  1194,  2739,
+    3023,  1195,  1196,  2845,  2630,  1125,  3823,  3824,  1273,  4192,
+    1126,  3825,  3826,  1196,  4373,  1127,  3624,  3082,  1133,  1194,
+    1134,  1931,  1195,  1196,  2763,  1923,  1135,  1196,  3085,  1194,
+    1136, -1481,  1195,  1137,  2219,  1138,  1006,   622,  3087,  1209,
+     947,   594,  3089,   917,   918,  1139,  1617,  1196,  1140,  1196,
+    2784, -1481,  2786,  1194,  3045,  2128,  1195,  1405,   622,  1141,
+     622,   622,  3091,  1194,  3092,  1144,  1195,  2612,  1867,  1145,
+    1867,  1867,  1146, -1481,  2711,  1194,  1212,  1194,  1195,  2277,
+    1195,  2278,  1147, -1481, -1481,  3048,  1229,  1194,  1295,  1148,
+    1195,  3075,  1229,  2066,  1149,  1683,  1949,  1592,  1196,  1150,
+    1194,  3148,  3149,  1195,   622,   622,  1194,  1151,  1194,  1195,
+    1152,  1195,   595,  3093,  1924, -1481,  1194, -1481,  -620,  1195,
+    1194,  1153,  3633,  1195,  1154,  1745,  3323,  3324,  1406,  2344,
+    2345,  2346, -1481,  1938,  1276,  2449,  2868,  2064, -1481,  1196,
+    1155,  1209,  1156,  1744,  2521,  1157,  2880,  2450,  1158,  2521,
+    1159,  2063,  2890,  2783,  2521,  1275,  3413,  1229,  2521,  1163,
+    2889, -1481,  1164, -1481,  1167,  1196,  1194,  1168, -1481,  1195,
+    2889,  1174,  2521,  2521,  2911,   622,  3435,  3436, -1481,  4459,
+    2922,  1178,  2521,  1618,  1683, -1481,  2924,  2925,  3576,  3577,
+   -1481,  1179,  1407,  1196,   612, -1481,  3613,  3621,  1620,   118,
+    3637,  1229,  1180,  2889, -1481,  3258,  3651,  1229,  3407,  1277,
+    2521,  2946,  3666,  3667,  1196,  1278,  2959,  3782,  2439,  1181,
+    1082,  3797,  3798,  2976,  1214,  1215, -1481,  1212, -1766,  3408,
+    1182,  1194,  3801,  3798,  1195,  1196,  1231,  2923,  1939,  4409,
+    4410,  1196,  1281,  1007,  -620,  1284,  3028,  1244,  1283,   507,
+    3409,  1292,   900,  3802,  3798,  1293,  3635,  3861,  3436,  1279,
+    3372,  1300,  1196,  3373,  1306,  2891,  2892,  1302, -1481,  1314,
+     900,  3374,  1196,  1324,  2429,  1335,  1280,  3641,  1354,  4290,
+     612,  2521, -1481,  1337,  1209,  2033,  4406,  3643,  3375,  1356,
+   -1481,  2921,  1355,  3395, -1481, -1481,  1196,  3864,  3798,   119,
+   -1481,  1359,  1931,   947,  1408,  1370,  1196,  1362,  1008,  2034,
+    1009,  3644,  3871,  3872, -1481,  1371, -1481,   120,  1196,  2958,
+    1196,  3645,  1375,  3007,  1560,  1561,  1562,  4008,  4009,  1212,
+    1196,  3376, -1481,  3414,  2430,  3646,  4013,  3798,  1409,  1387,
+   -1481, -1481,  1581,  1196, -1481, -1481,  1396,  1209,  1397,  1196,
+    1413,  1196,  2980,  4014,  3798,  1398, -2568,   596,  3716,  1196,
+    1416,  4463,  2431,  1196,  3961,  1420,  1217,  1218,  1219,  1220,
+    1221,  1222,  1223,  1224,  1644,  1214,  1215,  1648,  1421,   597,
+   -1481,   901,  1434,   121,  4016,  3798,  1437,  3377,  1745,  4017,
+    3798,  2741,  4022,  4023,  4024,  4023,  1665,  1666,  1438,   901,
+    1670,  1940, -1481,  4080,  4081,  1440,  -620,  4208,  4009,  1196,
+    2269,   598,  1941,  1299,   622,   622,   622,  1208,  2064,  1942,
+    1684,  1685,   612,  2449,  1744,  4209,  4009,  4217,  3436,   807,
+     808,  2432,  1445,   811,   812,  2450,  2393,   814,  1450,   816,
+    1456,  2739,   622, -1481,  2451,  1462,  1683,  4262,  4263,  2177,
+    4306,  4307,  4324,  3322,  1464,   902,  1466,  3543,  -620,  1132,
+    1515,  1469,   622,   622,   622,  3124,   122,   599,  4451,  4452,
+    1470,  2616,  1212,   902,  1196,  3167,  3880,  1214,  1215,  1474,
+    3592,  3169,  3880,  3171,  3618,  3378,  2630,  1477,  3379,   622,
+    1478,  2429,  1481,  2065,  2917,  3746,  3747,  2617,  1482, -1481,
+    1584,  1483,  3544,  1524,  1867,  1682,  1525,  2433,  3750,  4076,
+    1526,  1943, -1481,  3545,  1529,  3753,  1531,  1217,  1218,  1219,
+    1220,  1221,  1222,  1223,  1224,  3813,  3814,  1209,  1672,  1673,
+    1532, -1481,  -620, -1481,  1227,  1212,  1550,   507,  3982,  1584,
+    1556,  3772,  3773,  3452,  3453,  1552,  3983,  3420,  3421,   510,
+    1563,  2430,  2618,  1583,  2429,  2619,  1172, -1481, -1481,  3546,
+    1585, -1481, -1481,  2620,  1594,  3380,  2394,  1629,  2521,  1640,
+    3984,  2521,  2521,  2033,  2889,  3664,  3665,  1516,  3166,  2431,
+    2621,  1517,  1592,  2395,   947,  1641,  1642,   622,  1586,  1680,
+    2521,  1209,  1518,   123,  1690,  2396,  1715,  2034,  1699,  1585,
+    1721,  1748,  1741,  1944,  1749,  2889,  1752,  1755,  1209,  1756,
+     525,  1759,  1762,  1757,  2430, -1766,  2889,  1764,  1584,  2889,
+    1218,  1219,  1220,  1221,  1222,  1223,  1224,  2851,  -620,  1210,
+    1758,  1760,  1761,  1765,  1788,  1800,   262,  2066,   264,  1791,
+    1808,  3250,  2431,  1809,   612,  1810,   566,  1811,  2432,  3307,
+    1815,  1818,  1211,   262,  2393,   264,  1819,  1587,  1820,   494,
+    1829,   124,  1834,  3317,  1843,  2889,  1847,   526,  1876,  1745,
+    1878,  1964,  1965,  2397,  1877,  1879,  1881,  1890,  1585,  2622,
+    3326,  1892,  3313,  1214,  1215,  -786,  3985,  3251,  1894,  1907,
+    1916,  3233,  3381, -2568,   527,  3337,  2852,  1592,  2020,  3236,
+    2559,  1513,   612,  2038,  -769,  -769,  2851,  1967,  2449,  1682,
+    3066,  2432,  2434,  4076,  3350,  1212,  -769,   676,  1519,   125,
+    1247,  3382,  2039,  2037,  2433,  2040,  2041,  1970,  2042,   528,
+    2043,  2044,  2045,  1588,  2046,  1971,  1037,  1038,  2047,   903,
+     904,   905,   906,   907,   908,  3339,  -620,  1361,  2048,  1112,
+    1162,  1166,  2049,  2050,  4123,  3457,   909,   903,   904,  1973,
+     906,  2051,   908,  3986,  1219,  1220,  1221,  1222,  1223,  1224,
+    2052,  2845,  2853,  1456,   909,  2852,  1974,   529,  3882,  1212,
+    2623,  3987,  1037,  1038,  2394,  2398, -2568,  2433,  3548,  2057,
+    3329,  2053,  3412,  2054,  3549,  2055,  1212,  2056,  2109,  3722,
+    2784,  2395,  2059,  2077,  1979,  3988,   703,  3842,  2078,  2085,
+    2098,  2095,  1213,  2396,  4311,  2096,  1520,  2475,  3832,  2104,
+    2097,  2110,  2112,  2138,  2739,  1217,  1218,  1219,  1220,  1221,
+    1222,  1223,  1224,  2926,  3550,  2927,  2113,   510,  2114,  2137,
+    2139,  2144,  2145,  2763,  3447,  2146,  2159,   622,  2399,  2148,
+    2154,  2853,  2163,  2227,  2220,  2167,   622, -1170,  2033,   707,
+    2184,  2185,  2709,  1214,  1215,  2190,   708,   262,  2193,   264,
+    2194,  2205,   622,  2206,  2207,  1982,  2928,  1216,  2233,  1224,
+    2362, -1307,  2034,  1983,  2162,  2243,  3923,  2272,  2166,  2290,
+    2265,  2397,  2299,  2305,   712,   713,  2308,  2929,  1984,   -65,
+    1683,  2311,  3551,  2783,   530,  4025,  2342,  2343,  2358,  2370,
+    2189,  1339,  2521,  3696,  4311,  2374,  -620,  2372,  2375,  2379,
+    2624,  1340,  2521,  2402,  2889,  1209,  2401,  1214,  1215,  2434,
+    2405,  2406,  2930,  1683,  1199,  1200,  2408,  1341,  1589,  2889,
+    2412,   612,  2419,  2521,  1214,  1215,  2414,  2449,  2415,  1342,
+    1343,  1344,  1985,  2471,  2470,  1682,  2473,  2630,  2416,  4444,
+    3993,  2461,  2480,   721,  2417,  1345,  2474,  2418,  2466,  1201,
+    1986,   947,   531,  2467,  2483,  2482,  2490,  2854,  1682,  2489,
+    1202,  2525,  4455,  2495,  2625,  1682,  2496,  3989,  2529,  4444,
+    2531,  1682,  2434,  2501,  2502,  4455,  2509,  4316,  4317,  2562,
+    4319,  2584,  2279,  2398,  3552,  1217,  1218,  1219,  1220,  1221,
+    1222,  1223,  1224,  2626,  2610,  2602,  2976,  2476,  2606,  2615,
+    1203,   506,  2641,   732,  2280,  1990,  2642,  1991,  2643,  2653,
+     532,  2477,  1204,  2251,  3756,  1993,   533,  2281,   736,   737,
+    2654,  3605,  3605,  3605,  2687,  2666,  1867,  3685,  2282,  4362,
+    2688,  4363,  4364,  2689,  2685,   534,  2854,  2696,   622,  1205,
+    2720,  2721,  2705,  1192,  1193,  2706,  2399,  2722,  2734,  1217,
+    1218,  1219,  1220,  1221,  1222,  1223,  1224,  2718,  2731,  2733,
+     535,  2735,  2719,  2742,  2743,  2728,  1217,  1218,  1219,  1220,
+    1221,  1222,  1223,  1224,  1795,  2746,  2747,   536,  2283,  2748,
+    2284,  2749,  1961,  1999,   507,  2765,  4163,  2753,  2766,  1962,
+    2768,  1963,  3573,  1212,  4403,  3993,  2769,  2770,  1206,  2350,
+    2349,  2787,  1964,  1965,  2788,  2789,  2810,  2285,  3674,  2931,
+    2813,  2817,  2822,  1683,  2823,  3597,  2824,  2845,  4436,  2840,
+    -817,  2847,  2848,  2969,  2955,  2896,  2898,  2965,   622,  1964,
+    1965,  2971,  2986,  1966,  2985,  2990,  2994,  1992,  1967,  1968,
+    2000,  2995,  3020,  1909,  2105,  1969,  1601,  1602,  1603,  1604,
+    1605,  3029,  3034,  2932,   868,  1346,  2001,  3040,  1970,  3042,
+    2002,  2393,  -769,  -769,  3043,  1967,  1971,  3044,   508,  2286,
+    3605,  3731,  3098,  1347,  -769,  3109,  1972,  3121,  3052,  2003,
+    3842,  3126,  1316,  4165,  3053,  1970,  3096,  3736,  3100,  3119,
+    1973,  2630,  3105,  1971,  3130,  3108,  3129,  2005,  3133,  3114,
+    3164,   756,  3153,  3147,  1456,  3723,  3165,  1974,  3724,  3144,
+    3170,  3178,  3198,  3203,  1975,  1976,  3202,  1973,   622,   762,
+    3150,  1977,  3206,  2287,   764,  3217,  3218,   765,  3219,  1978,
+    3230,  1456,  3239,  -892,  1974,  1979,  3248,  3311,  3247,  3308,
+    3314,  1214,  1215,  3315,  3774,  1606,  1607,  1608,  1609,  3319,
+    3249,  3778,  3322,  3321,  3332,  3325,  3015,  3333,  3338,  3457,
+    -443,  1918,  1979,  3347,  1980,  3341,  2326,  3348,  3349,  3337,
+    3352,  -628,  3369,  3390,  3387,  1919,  3391,   676,  3543,  3398,
+    3399,  3417,  3416,  3725,  3726,  3426,  3428,  3431,  3437,  3450,
+    3439,  2394,   622,  3458,  3466,  3467,  3496,  3475,   262,  1348,
+     264,  3476,  3488,  3499,  1981,  3500,  1982,  3513,  2395,  3520,
+    3570,  2523,  3572,  3574,  1983,  4160,  3584,  3580,  3594,  3593,
+    2396,  3598,  3755,  3544,  3595,   262,  3599,   264,  3601,  1984,
+    3611,  3615,  3612,  1982,  3545,  3613,  4163,  3614,  3619,  3622,
+    3625,  1983,  3627,  3629,  3630,  3631,  3634,  1610,  3638,  1611,
+    1612,  1613,  3639,  3640,  1349,  3653,  1984,  3652,  1614,  3722,
+     622,  3783,  3662,   509,  3669,  3670,   703,  3679,  3168,  3667,
+    2586,  3681,  1350,  3682,  3686,  3687,  3690,  3692,  3854,  3693,
+    3546,  3734, -1396,  1985,   510,  1219,  1220,  1221,  1222,  1223,
+    1224,  3605,  3605, -1401,  3605,  3605,  3737,  3560,  2397,  1194,
+    3704,  1986,  1195,  3759,  3717,  1987,  3718,  3720,  3721,  3745,
+    1985,  3751,  3760,  3749,  3761,  2630,  3993,  3762,  3763,   707,
+    3700,   511,  3765,  3766,  -535,  3563,   708,   512,  1986,  3803,
+    3784,  3807,  3785,  3800,  3804,  1920,  3621,  3811,  3812,  1615,
+    3817,  3889,  3815,  4358,  1988,  3830,  4433,  3818,  3834,  1989,
+    3547,  3819,  3831,  3845,   712,   713,  1990,  1250,  1991,  3846,
+    3928,   612,  3835,   513,  3850,  1992,  1993,  3852,  3870,  3876,
+    3883,   514,  3605,  3884,   262,  3890,   264,  3947,  3932,  3958,
+    4433,  3924,  3957,  1990,  3959,  1991,  3962,  4028,  3964,  3975,
+    1251,  1616,  1617,  1993,  3972,  4005,  4007,  1994,  4010,  -309,
+    4046,  4055,  4071,  4048,  3929,   612,  -786,  1921,  3979,  4018,
+    2398,  1995,  1996,  1997,  1998,  4026,   622,  4358,   821,  4049,
+    4067,  4083,  4233,   721,  4086,  4059,  4095,  4066,  4092,  4087,
+    1037,  1038,  4097,  1922,  1999,  4099,  4128,  4233,  2950,  4131,
+    -327,  4157,  4158,  4159,  3888,  4194,  4019,  4206,  3973,  4179,
+    4243,  4176,  4182,  4210,  4211,  4212,  4218,  4213,  1252,  4221,
+    4222,  1999,  4223,  4229,  4230,  4234,  4242,  4032,  4240,   803,
+    4241,  4245,  4039,  2399,  4266,  4252,  4267,  4269,  4268,  4277,
+    4278,  4282,  1253,   732,  4287,  4289,  1254,  4461,  4292,  4291,
+   -2302,  2000,  4295,  4301,  4318,  1923,  4304,  4320,   736,   737,
+    4315,  4321,  4336,  1037,  1038,  4323,  4350,  2001,   822,  3548,
+   -1565,  2002,  4366,  4352,  4355,  3549,  4369,  4349,  2000,  4371,
+    1255,  4375,  4370,  4376,  4380,  4383,  4386,  4388,  4391,  1618,
+    2003,  4389,  4395,  4404,  2001,  2004,  4397,   823,  2002,  4400,
+    1256,  4401,  1196,  1619,  1620,  4408,  1683,  4412,  2005,  4414,
+     824,  4421,  4041,  4422,  1257,  3550,  4445,  2003,  4449,  2713,
+    4458,  3582,  2554,  3583,  4193,  2860,  4056,  1060,  3788,  4166,
+    4302,  1468,  4233,   825,  4303,  2005,   826,  3786,  3927,  3854,
+    3790,  3854,  4348,  4104,  1924,  4456,  4416,   827,   580,   959,
+    3152,  2334,  3901,  4426,  3902,  3904,  4333,  3905,  4227,  4334,
+    3907,  3908,  1258,  3909,  3910,  3911,  3912,  3915,   828,  4132,
+    4300,  -892,  3916,  3917,  4239,  4061,  1960,  4238,  1528,  2254,
+     803,  4058,  2513,  3551,  1259,   803,  3243,  2006,  2031,  3132,
+    3672,  3430,  2587,  3137,  1798,   829,  4181,  4382,  4173,  3974,
+    4385,  3675,   830,  4314,  4251,  4357,  4094,   663,  3794,  2062,
+    3330,  2511,  3013,  3512,  2518,  3979,  2952,  3501,  4233,  3505,
+    4233,  4367,   803,  4125,  3384,   622,  3878,  4402,  3528,  3569,
+    2711,  4199,  3764,  4178,  3464,  3754,  4110,   521,  4233,   803,
+     522,   756,   831,  4215,  4063,  3723,  4216,  2094,  3724,  4069,
+    4068,  3881,  2596,  3946,  2515,  3503,  2390,  1436,  2940,   762,
+    1012,  1893,  3733,  2750,   764,  3502,  2060,   765,  2317,  2029,
+    4233,  4233,  3123,  3427,  2729,  4448,  2771,  2684,  3922,   983,
+     803,   803,   803,   803,  2348,  3552,  3415,  1260,  2633,  2631,
+    3107,  1639,   803,  1366,  4313,  3472,  1261,  2683,  2835,  1250,
+    4012,  4172,  3858,  3581,  4275,  1582,  4276,  3507,  1910,  4407,
+    1683,  1262,  2703,  3189,  1490,  3855,  2935,  3844,  2600,  2778,
+    1813,  4186,  4187,  3725,  3726,  2727,  2756,  3677,  3443,  1263,
+    3442,   622,  1251,  3482,   971,  4248,  2103,  1078,  1782,   955,
+    2381,  2266,  1859,  3511,  1882,  2382,  2976,  2976,  4270,  3429,
+    4353,  4384,  1817,  4322,  4457,  4460,  3758,  1832,  3446,  2359,
+    3186,  3691,  3468,  3847,   820,   821,   879,  2304,  1264,  1265,
+     896,   832,  1353,   803,  1491,  1492,  1493,  1494,  1495,  1496,
+    1775,  1497,  1498,  1499,  1500,  1501,  1502,  1503,  3963,  1504,
+    1505,   834,  3971,  2084,  1266,   622,   898,  1824,  1358,   835,
+    1252,  3111,  1064,   657,     0,  1065,   658,   836,  1066,     0,
+       0,     0,     0,   498,     0,     0,  1267,   499,     0,     0,
+       0,     0,  4338,     0,  1253,  4259,  4260,     0,  1254,  4346,
+       0,     0,   837,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   838,   839,     0,     0,     0,
+       0,     0,     0,     0,     0,   822,     0,     0,     0,     0,
+       0,     0,  1255,     0,     0,  1268,     0,     0,     0,     0,
+       0,     0,     0,     0,  4450,     0,     0,     0,     0,     0,
+       0,     0,  1256,     0,   823,     0,     0,     0,     0,     0,
+     840,     0,     0,     0,     0,     0,  1257,   824,     0,     0,
+       0,     0,     0,     0,     0,  4393,     0,     0,     0,     0,
+    4398,     0,     0,     0,     0,     0,     0,  1506,  1507,     0,
+     825,   841,     0,   826,     0,     0,     0,     0,     0,   803,
+       0,     0,     0,     0,   827,     0,     0,     0,     0,     0,
+       0,     0,     0,   842,  1258,   843,     0,  4434,     0,     0,
+       0,     0,     0,     0,     0,   828,  1683,     0,     0,     0,
+       0,     0,     0,     0,  4365,     0,  1259,     0,     0,     0,
+       0,     0,     0,     0,     0,   622,     0,     0,     0,  1683,
+       0,  4434,   829,     0,   803,   803,  1683,     0,     0,   830,
+       0,     0,  1683,   803,   803,   803,   803,   803,   803,   803,
+     803,   803,   803,   803,   803,   803,     0,     0,  1601,  1602,
+    1603,  1604,  1605,   803,   803,     0,   803,     0,   803,     0,
+       0,     0,   803,     0,     0,   803,   803,   803,   803,   831,
+     803,   803,   803,     0,     0,     0,     0,     0,     0,   803,
+     803,     0,   803,   803,   803,   803,   803,   893,   821,   803,
+     803,   803,   803,   803,   803,   803,   803,   803,   803,   803,
+       0,     0,   803,   803,     0,     0,   803,     0,     0,  1260,
+     803,     0,   803,   803,     0,     0,     0,     0,  1261,     0,
+       0,     0,     0,     0,     0,     0,   803,   803,     0,     0,
+       0,     0,     0,  1262,   803,     0,     0,     0,     0,     0,
+       0,   803,   803,   803,     0,   803,     0,  1606,  1607,  1608,
+    1609,  1263,   803,   803,   803,     0,   803,   803,   803,   803,
+     803,     0,   803,   803,   803,   803,   803,   803,   803,   803,
+       0,     0,     0,   803,   803,     0,  3252,  3253,   822,     0,
+       0,     0,  3254,     0,  3255,     0,  3256,  3257,     0,     0,
+    1264,  1265,     0,     0,     0,     0,     0,     0,   832,     0,
+       0,     0,   833,  3258,     0,     0,     0,   823,     0,     0,
+       0,     0,     0,     0,     0,     0,  1266,     0,   834,     0,
+     824,     0,     0,     0,     0,     0,   835,     0,     0,     0,
+       0,     0,     0,     0,   836,     0,     0,     0,  1267,     0,
+       0,     0,     0,   825,     0,     0,   826,     0,     0,  1610,
+     803,  1611,  1612,  1613,     0,     0,     0,   827,  3259,   837,
+    1614,  3260,     0,     0,     0,     0,     0,     0,     0,  3261,
+       0,     0,   838,   839,     0,     0,     0,     0,   828,     0,
+       0,     0,     0,     0,     0,     0,  3262,  1268,     0,     0,
+       0,     0,     0,     0,  1964,  1965,     0,     0,     0,     0,
+    1086,     0,     0,  3263,     0,   829,     0,     0,     0,     0,
+     803,     0,   830,     0,     0,     0,     0,   840,   803,     0,
+       0,     0,     0,     0,     0,     0,     0,  3264,     0,  3265,
+    1967,     0,     0,     0,     0,     0,     0,  1124,     0,     0,
+       0,  1615,  3266,  3267,     0,     0,     0,     0,   841,     0,
+    1970,     0,   831,     0,  1142,     0,     0,     0,  1971,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   934,     0,     0,     0,     0,     0,    12,     0,
-       0,     0,     0,     0,     0,     0,    13,    14,    15,     0,
-       0,     0,     0,   800,     0,     0,     0,     0,    16,    17,
-       0,  1488,  1489,  1490,  1491,  1492,  1493,     0,  1494,  1495,
-    1496,  1497,  1498,  1499,  1500,     0,  1501,  1502,     0,     0,
-       0,     0,     0,     0,     0,    19,     0,     0,     0,     0,
-       0,     0,     0,     0,  1257,     0,     0,   935,     0,     0,
-       0,    20,     0,  1258,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,    21,  1259,     0,
-       0,     0,    22,   936,     0,     0,    23,     0,     0,     0,
-       0,     0,     0,     0,   937,   938,  1260,     0,   939,   940,
+     842,     0,   843,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,  1973,     0,     0,  3268,     0,     0,     0,     0,
+       0,     0,     0,  1616,  1617,     0,  1456,     0,  1186,  1974,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,    24,     0,    25,     0,     0,     0,     0,     0,   941,
-       0,     0,     0,  1486,     0,   800,   800,   800,     0,    26,
-       0,     0,     0,     0,     0,  1261,  1262,     0,     0,   800,
-       0,     0,     0,     0,     0,     0,     0,    27,     0,     0,
-       0,    28,     0,     0,     0,     0,   890,   818,     0,     0,
-       0,  1263,   942,  1503,  1504,   800,     0,     0,     0,     0,
-       0,   800,     0,     0,   800,   943,   800,     0,  1551,  1552,
-       0,     0,   800,  1264,   800,   800,     0,  1562,  1563,     0,
-       0,  1566,  1567,  1568,  1571,  1572,  1573,  1574,  1575,  1576,
-       0, -2330,     0,     0,     0,   944,     0,  1592,  1593,     0,
-    1594,     0,  1595,     0,     0,     0,     0,     0,     0,  1628,
-    1629,  1630,  1631,   945,   946,  1634,     0,     0,     0,     0,
-       0,     0,  1265,  1642,  1643,     0,  1646,  1647,     0,     0,
-       0,    29,     0,  1651,  1652,  1653,     0,   819,  1656,  1657,
-    1658,  1659,  1660,  1661,     0,   800,  1664,  1665,    30,     0,
-    1668,     0,    31,     0,  1671,     0,  1675,  1676,     0,     0,
-       0,     0,   947,    32,     0,     0,   820,     0,     0,     0,
-    1683,  1684,     0, -2330,    33,     0,     0,  1247,  1692,   821,
-       0,   948,     0,     0,     0,  1697,  1698,  1699,     0,     0,
-       0,     0,     0,     0,     0,     0,    34,     0,     0,    35,
-       0,    36,   822,     0,    37,   823,     0,    38,    39,     0,
-    1248,     0,     0,     0,     0,    40,   824,    41,  1735,     0,
-       0,     0,     0,     0,    42,     0,     0,     0,     0,     0,
-      43,     0,     0,     0,     0,     0,     0,   825,    44,     0,
-       0,     0,     0,    45,     0,    46,     0,     0,    47,     0,
+       0,     0,     0,     0,  3269,     0,     0,     0,     0,     0,
+    2019,     0,     0,  3270,  3271,     0,  3272,  1979,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   826,     0,     0,     0,     0,     0,
-       0,   827,     0,    48,     0,     0,     0,    49,  1249,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,  1782,     0,     0,     0,     0,     0,
-       0,     0,  1250,     0,     0,     0,  1251,     0,     0,     0,
-       0,   828,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    50,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,    51,     0,     0,     0,    52,     0,
-    1252,    53,     0,     0,     0,     0,     0,    54,  2016,     0,
-       0,     0,     0,     0,  1828,     0,     0,     0,     0,     0,
-    1253,     0,  1843,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,  1254,     0,    55,     0,   800,     0,
-       0,     0,    56,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,    57,     0,     0,     0,     0,  3247,  3248,     0,
-       0,     0,     0,  3249,     0,  3250,     0,  3251,  3252,     0,
+       0,     0,     0,     0,     0,     0,  3273,  3274,  3275,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,  1255,     0,  3253,     0,     0,     0,     0,     0,
-       0,  2016,     0,     0,     0,     0,     0,     0,     0,   829,
-       0,     0,     0,   891,  1256,     0,     0,   800,     0,     0,
-       0,   800,     0,     0,     0,     0,   800,   800,     0,   831,
-       0,     0,     0,     0,     0,   800,   800,   832,   800,   800,
-     800,   800,     0,   800,     0,   833,   800,     0,     0,  3254,
-       0,     0,  3255,     0,     0,     0,   800,     0,   800,   800,
-    3256,   800,   800,   800,   800,     0,   800,     0,     0,   800,
-     834,     0,     0,     0,     0,     0,     0,  3257,   800,     0,
-       0,     0,     0,   835,   836,   800,     0,   800,     0,   800,
-     800,   800,   800,     0,  3258,     0,   800,   800,   800,     0,
-       0,     0,   800,   800,   800,     0,   800,     0,   800,     0,
-     800,     0,   800,     0,   800,     0,  1257,     0,  3259,   800,
-    3260,     0,  2112,     0,     0,  1258,     0,     0,   837,     0,
-       0,     0,     0,  3261,  3262,     0,     0,   800,     0,     0,
-    1259,     0,     0,     0,   800,     0,     0,   800,     0,     0,
-       0,     0,     0,   800,     0,     0,   800,     0,  1260,   838,
-     800,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  3263,     0,     0,     0,
-       0,   839,     0,   840,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  1261,  1262,     0,
-       0,     0,     0,     0,     0,  3264,     0,     0,     0,     0,
-       0,     0,     0,     0,  3265,  3266,   800,  3267,     0,     0,
-       0,     0,     0,  1263,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   818,  2194,  2196,  2198,     0,     0,     0,
-       0,     0,   497,     0,     0,  1264,   498,  3268,  3269,  3270,
+       0,     0,     0,     0,     0,  3276,  3277,  3278,     0,     0,
+       0,   832,     0,  3279,     0,   894,  3280,     0,  1315,     0,
+     262,     0,   264,     0,     0,     0,     0,     0,  1982,     0,
+       0,   834,  3281,  3282,     0,     0,  1983,     0,   803,   835,
+       0,     0,     0,     0,     0,     0,     0,   836,     0,     0,
+       0,  1984,     0,     0,     0,     0,     0,     0,     0,  2938,
+       0,  1618,     0,     0,     0,     0,  1962,     0,  3283,  3284,
+       0,     0,   837,     0,     0,  1619,  1620,     0,     0,  1964,
+    1965,     0,     0,     0,     0,   838,   839,     0,     0,     0,
+       0,     0,     0,  3285,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,  1985,     0,     0,     0,     0,
+    1966,     0,     0,     0,     0,  1967,     0,     0,     0,     0,
+       0,     0,     0,  1986,     0,     0,     0,     0,     0,     0,
+     840,     0,     0,     0,     0,  1970,     0,     0,     0,     0,
+       0,     0,     0,  1971,  3286,     0,     0,     0,  3287,     0,
+     803,   803,   803,  1972,     0,     0,     0,     0,     0,     0,
+    3288,   841,     0,     0,   803,     0,     0,  1973,     0,     0,
+       0,     0,     0,     0,  1489,     0,     0,     0,  1990,     0,
+    1991,  1456,     0,   842,  1974,   843,     0,     0,  1993,     0,
+     803,  1975,     0,     0,     0,     0,   803,     0,  2939,   803,
+       0,   803,     0,     0,     0,     0,  1978,   803,     0,   803,
+     803,     0,  1979,     0,  3289,     0,     0,  3290,     0,     0,
+    3291,  3292,  3293,  3294,     0,     0,     0,     0,     0,  1554,
+    1555,     0,     0,  1964,  1965,     0,     0,     0,  1565,  1566,
+       0,  1980,  1569,  1570,  1571,  1574,  1575,  1576,  1577,  1578,
+    1579,     0,     0,     0,     0,     0,  1999,     0,  1595,  1596,
+       0,  1597,     0,  1598,  3295,  3296,  -769,  -769,     0,  1967,
+    1631,  1632,  1633,  1634,     0,   262,  1637,   264,  -769,     0,
+     803,     0,     0,  1982,  1645,  1646,     0,  1649,  1650,  1970,
+    3297,  1983,     0,     0,  1654,  1655,  1656,  1971,     0,  1659,
+    1660,  1661,  1662,  1663,  1664,     0,  1984,  1667,  1668,     0,
+       0,  1671,     0,  2000,     0,  1674,     0,  1678,  1679,     0,
+       0,  1973,     0,     0,     0,     0,     0,     0,     0,  2001,
+       0,  1686,  1687,  2002,     0,  1456,     0,     0,  1974,  1695,
+       0,     0,     0,     0,     0,     0,  1700,  1701,  1702,     0,
+       0,     0,  2003,     0,     0,     0,     0,     0,     0,     0,
+    1985,     0,     0,     0,     0,     0,  1979,     0,     0,     0,
+    2005,     0,     0,     0,     0,     0,     0,     0,  1986,  1738,
+       0,     0,  1987,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  3271,  3272,  3273,     0,
-       0,     0,     0,  3274,  2232,     0,  3275,     0,     0,     0,
-       0,     0,     0,  2237,     0,  2238,     0,     0,     0,     0,
-       0,     0,  3276,  3277,  1265,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,  1598,  1599,  1600,  1601,  1602,     0,     0,     0,     0,
-       0,     0,     0,   819,     0,     0,     0,     0,  3278,  3279,
-       0,  2853,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  2853,
-    2853,     0,   820,  3280,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,  2310,   821,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   822,     0,
-       0,   823,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   824,     0,  3281,     0,     0,     0,  3282,     0,
-    1603,  1604,  1605,  1606,     0,     0,     0,     0,     0,     0,
-    3283,  2016,     0,   825,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,  1989,     0,     0,   262,
+       0,   264,     0,  1990,     0,  1991,     0,  1982,     0,     0,
+       0,     0,     0,  1993,     0,  1983,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,  1785,     0,     0,     0,     0,
+    1984,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  2019,     0,     0,     0,     0,     0,  1996,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     826,     0,     0,     0,     0,     0,     0,   827,     0,     0,
-       0,     0,     0,     0,     0,     0,  2853,  2853,     0,     0,
-       0,     0,     0,     0,  3284,     0,     0,  3285,     0,     0,
-    3286,  3287,  3288,  3289,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   828,     0,     0,
-    2016,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    1961,  1962,  1607,     0,  1608,  1609,  1610,   800,     0,     0,
-       0,   800,     0,  1611,  3290,  3291,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,  -769,  -769,     0,  1964,     0,     0,     0,
-    3292,   800,   800,     0,     0,  -769,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  1967,     0,     0,     0,
-       0,   800,     0,     0,  1968,     0,     0,     0,     0,     0,
-     800,     0,   800,     0,   800,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  2526,  1970,     0,
-       0,     0,     0,  1612,   800,     0,     0,     0,     0,   800,
-       0,     0,  1453,     0,     0,  1971,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   829,     0,     0,     0,     0,
-       0,     0,     0,   800,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,  1976,     0,   831,     0,     0,     0,     0,
-       0,     0,     0,   832,     0,  1613,  1614,     0,     0,     0,
-       0,   833,     0,     0,     0,     0,  2605,     0,     0,     0,
-    2607,     0,     0,     0,     0,  2609,  2610,     0,     0,     0,
-       0,     0,     0,     0,  1568,  2628,   834,  1568,     0,  2631,
-    2632,     0,  2633,     0,     0,     0,     0,     0,   800,   835,
-     836,     0,   800,     0,     0,  2640,   262,  2641,   264,     0,
-    2643,  2644,  2645,  2646,  1979,  2647,     0,     0,     0,     0,
-       0,     0,  1980,     0,     0,     0,     0,  2651,     0,     0,
-       0,     0,     0,     0,  2652,     0,  2653,  1981,  2654,  2655,
-    2656,     0,     0,     0,   837,  2659,  2660,  2661,     0,   800,
-       0,  2663,  2664,  2665,     0,  2666,     0,  2668,     0,  2670,
-       0,  2672,     0,  2673,  2933,     0,     0,     0,  2674,     0,
-       0,  1959,     0,     0,     0,   838,     0,     0,     0,     0,
-       0,     0,     0,     0,  1961,  1962,  2687,     0,     0,     0,
-       0,  1982,     0,  1615,     0,     0,     0,   839,     0,   840,
-       0,     0,  2697,     0,     0,  2700,     0,  1616,  1617,  1983,
-       0,     0,     0,     0,     0,  1963,     0,     0,     0,     0,
-    1964,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,  1999,     0,   803,  1985,  1831,     0,     0,     0,     0,
+       0,     0,     0,  1846,     0,     0,     0,     0,     0,     0,
+       0,     0,  1986,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    1967,     0,     0,     0,     0,     0,     0,     0,  1968,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  1969,     0,
-       0,     0,     0,  1987,     0,  1988,     0,     0,     0,     0,
-     800,   800,  1970,  1990,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  1453,     0,     0,  1971,
-       0,     0,     0,     0,     0,  2853,  1972,     0,     0,     0,
-       0,     0,     0,  2934,     0,     0,     0,     0,     0,     0,
-       0,  1975,     0,     0,     0,     0,     0,  1976,     0,     0,
-       0,     0,     0,  2016,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   800,     0,     0,     0,
-       0,  1996,     0,     0,     0,     0,  1977,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   800,
-     800,     0,   800,     0,     0,     0,     0,     0,     0,     0,
-     262,   800,   264,     0,     0,     0,   800,     0,  1979,   800,
-       0,   800,   800,     0,     0,     0,  1980,     0,  1997,     0,
+       0,     0,     0,     0,     0,     0,  2019,     0,  2000,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,  1981,   800,     0,  1998,     0,     0,     0,  1999,     0,
-       0,     0,     0,     0,     0,     0,     0,   800,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  2000,     0,     0,
+       0,     0,   803,     0,  2001,     0,   803,  1990,  2002,  1991,
+       0,   803,   803,     0,     0,     0,     0,  1993,     0,     0,
+     803,   803,     0,   803,   803,   803,   803,  2003,   803,     0,
+       0,   803,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   803,     0,   803,   803,  2005,   803,   803,   803,   803,
+       0,   803,     0,     0,   803,     0,     0,     0,     0,     0,
+       0,     0,     0,   803,     0,     0,     0,     0,     0,     0,
+     803,     0,   803,     0,   803,   803,   803,   803,     0,     0,
+       0,   803,   803,   803,     0,  1999,     0,   803,   803,   803,
+       0,   803,     0,   803,     0,   803,     0,   803,     0,   803,
+       0,     0,     0,     0,   803,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   800,     0,     0,     0,  2002,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,  1982,     0,     0,     0,     0,
+       0,     0,   803,     0,     0,     0,     0,     0,     0,   803,
+       0,     0,   803,  2115,     0,     0,     0,     0,   803,     0,
+       0,   803,  2000,     0,     0,   803,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,  2001,     0,
+       0,     0,  2002,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,   800,     0,  1983,     0,     0,     0,  1984,     0,     0,
-       0,     0,     0,     0,     0,   800,     0,     0,     0,     0,
+       0,  2003,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,  2005,
+       0,   803,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   800,     0,     0,     0,
-       0,     0,     0,     0,     0,   800,     0,     0,     0,     0,
-    1986,     0,     0,     0,     0,     0,     0,  1987,     0,  1988,
-       0,     0,     0,     0,     0,     0,     0,  1990,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  3020,     0,     0,     0,
-    3022,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       1,     0,     2,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,  2197,  2199,  2201,     3,     0,
+       0,     0,     4,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     5,     6,     0,     0,
+       0,     0,     0,     0,     7,     0,     0,     0,     0,     8,
+       9,     0,     0,     0,     0,  2235,     0,     0,     0,     0,
+       0,     0,     0,     0,  2240,     0,  2241,     0,     0,     0,
+       0,    10,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,  2858,     0,     0,
+      11,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,  2858,  2858,     0,     0,     0,
+       0,    12,     0,     0,     0,     0,     0,     0,     0,    13,
+      14,    15,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    16,    17,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    18,  2313,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    19,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,  1993,     0,     0,     0,     0,     0,     0,
-    3050,  3051,     0,     0,     0,     0,     0,  3554,     0,     0,
-       0,     0,     0,     0,     0,  1996,     0,     0,     0,     0,
-    3071,     0,     0,     0,     0,     0,     0,     0,     0,  3081,
-       0,  3083,     0,  3085,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    20,     0,     0,  2019,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      21,     0,     0,     0,     0,    22,     0,     0,     0,    23,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,  1997,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,  3115,     0,     0,     0,     0,     0,  1998,     0,
-       0,     0,  1999,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,  2858,  2858,    24,     0,    25,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,  2000,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  2002,
+       0,     0,    26,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,  2019,     0,     0,     0,
+      27,     0,     0,     0,    28,     0,     0,     0,     0,     0,
+       0,     0,     0,   803,     0,     0,     0,   803,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  3171,   800,     0,
-       0,  3175,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   803,   803,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,   800,   800,     0,
-       0,     0,     0,     0,     0,     0,   800,     0,  3207,     0,
+       0,     0,     0,     0,     0,     0,     0,   803,     0,     0,
+       0,     0,     0,     0,     0,     0,   803,     0,   803,     0,
+     803,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    29,     0,     0,     0,     0,
+     803,     0,     0,     0,     0,   803,     0,     0,     0,     0,
+       0,     0,    30,     0,     0,     0,    31,     0,  2530,     0,
+       0,     0,     0,     0,     0,     0,     0,    32,     0,   803,
+       0,     0,     0,     0,     0,     0,     0,     0,    33,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      34,     0,     0,    35,     0,    36,     0,     0,    37,     0,
+       0,    38,    39,     0,     0,     0,     0,     0,     0,    40,
+       0,    41,     0,     0,     0,     0,     0,  2609,    42,     0,
+       0,  2611,     0,     0,    43,   803,  2613,  2614,     0,   803,
+       0,     0,    44,     0,     0,  1571,  2632,    45,  1571,    46,
+    2635,  2636,    47,  2637,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,  2644,     0,  2645,     0,
+       0,  2647,  2648,  2649,  2650,     0,  2651,    48,     0,     0,
+       0,    49,     0,     0,     0,     0,   803,     0,  2655,     0,
+       0,     0,     0,     0,     0,  2656,     0,  2657,     0,  2658,
+    2659,  2660,     0,     0,     0,     0,  2663,  2664,  2665,     0,
+       0,     0,  2667,  2668,  2669,     0,  2670,     0,  2672,     0,
+    2674,     0,  2676,     0,  2677,     0,    50,     0,     0,  2678,
+       0,     0,     0,     0,     0,     0,     0,     0,    51,     0,
+       0,     0,    52,     0,     0,    53,     0,  2691,     0,     0,
+       0,    54,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  2701,     0,     0,  2704,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+      55,     1,     0,     2,     0,     0,    56,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    57,     0,     0,     0,
+       0,     0,     0,     4,     0,     0,     0,   803,   803,     0,
+       0,     0,     0,     0,     0,     0,     0,     5,     6,     0,
+       0,     0,     0,     0,     0,     7,     0,     0,     0,     0,
+       8,     9,  2858,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    10,     0,     0,     0,     0,     0,     0,     0,
+    2019,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    11,     0,   803,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    12,     0,     0,     0,     0,     0,     0,     0,
+      13,    14,    15,     0,     0,     0,   803,   803,     0,   803,
+       0,     0,    16,    17,     0,     0,     0,     0,   803,     0,
+       0,     0,     0,   803,     0,     0,   803,     0,   803,   803,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    19,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   803,
+       0,     0,     0,     0,     0,    20,     0,     0,     0,     0,
+       0,     0,     0,     0,   803,     0,     0,     0,     0,     0,
+       0,    21,     0,     0,     0,     0,    22,     0,     0,     0,
+      23,     0,     0,     0,     0,     0,     0,     0,   803,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,  3554,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    24,     0,    25,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   803,     0,
+       0,     0,     0,    26,     0,     0,     0,     0,     0,     0,
+       0,     0,   803,     0,     0,     0,     0,     0,     0,     0,
+       0,    27,     0,     0,     0,    28,     0,     0,     0,     0,
+       0,     0,     0,   803,     0,     0,     0,     0,     0,     0,
+       0,     0,   803,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  2016,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  3304,
-    3305,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     800,     0,     0,     0,   800,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,  3025,     0,
+       0,     0,  3027,     0,     0,     0,    29,     0,     0,     0,
+       0,     0,     0,     0,  3559,     0,     0,     0,     0,     0,
+       0,     0,     0,    30,     0,     0,     0,    31,     0,     0,
+       0,     0,  3055,  3056,     0,     0,     0,     0,    32,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    33,
+       0,     0,  3076,     0,     0,     0,     0,     0,     0,     0,
+       0,  3086,     0,  3088,     0,  3090,     0,     0,     0,     0,
+       0,    34,     0,     0,    35,     0,    36,     0,     0,    37,
+       0,     0,    38,    39,     0,     0,     0,     0,     0,     0,
+      40,     0,    41,     0,     0,     0,     0,     0,     0,    42,
+       0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
+       0,     0,     0,    44,  3120,     0,     0,     0,    45,     0,
+      46,     0,     0,    47,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   800,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,  3350,     0,     0,     0,   800,
+       0,     0,     0,     0,     0,     0,     0,     0,    48,     0,
+       0,     0,    49,     0,     0,   803,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,   800,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  3388,  3389,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    3396,     0,     0,     0,     0,  3398,     0,     0,  3399,     0,
-    3400,  3401,     0,     0,     0,     0,     0,     0,     0,     0,
+    3176,     0,     0,     0,  3180,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   803,   803,     0,    50,     0,     0,
+       0,     0,     0,   803,     0,     0,     0,     0,     0,    51,
+       0,     0,     0,    52,     0,     0,    53,     0,     0,     0,
+       0,     0,    54,     0,     0,     0,     0,     0,     0,     0,
+       0,  3212,     0,     0,     0,     0,     0,   915,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   872,   916,     0,
+       0,    55,     0,     0,     0,     0,     0,    56,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    57,     0,     0,
+    3559,     0,   917,   918,     0,     0,     0,     0,     0,     0,
+     919,     0,     0,     0,     0,   920,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  3418,     0,     0,     0,
-       0,     0,     0,     0,     0,  3914,     0,     0,     0,     0,
+       0,     0,   921,     0,   922,  2019,   923,     0,     0,     0,
+       0,     0,     0,     0,     0,   924,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    3418,     0,     0,     0,     0,  3940,     0,     0,     0,  3940,
-    3940,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   803,     0,     0,
+       0,   803,  3309,  3310,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0, -1766,   925,     0,     0,     0,     0,   926,     0,     0,
+     927,     0,   803,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   803,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   928,     0,   929,   803,
+       0,     0,     0,     0,     0,   930,     0,   931,  3355,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     800,     0,     0,     0,  3464,     0,     0,     0,   800,     0,
-       0,     0,     0,     0,     0,     0,     0,   800,     0,   800,
-       0,     0,     0,     0,     0,  3418,     0,     0,     0,     0,
-       0,     0,     0,     0,  3488,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   800,     0,
-       0,     0,     0,     0,  3914,  3914,     0,     0,     0,     0,
+       0,     0,   932,   933,   934,     0,     0,     0,     0,     0,
+       0,  3393,  3394,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  3401,     0,   935,     0,     0,  3403,     0,
+       0,  3404,     0,  3405,  3406,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   936,     0,     0,
+       0,     0,  3919,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,  3423,
+       0,     0,  3945,     0,   937,     0,  3945,  3945,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  3423,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   803,     0,     0,
+       0,     0,     0,     0,     0,   803,     0,     0,     0,     0,
+       0,     0,     0,     0,   803,     0,   803,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,  3469,     0,     0,
+     938,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,  3423,     0,
+       0,     0,     0,     0,     0,   803,   939,  3493,     0,     0,
+       0,  3919,  3919,     0,     0,     0,     0,   940,   941,     0,
+       0,   942,   943,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   944,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,  3945,     0,     0,     0,
+       0,     0,     0,     0,     0,  3945,     0,     0,     0,  3945,
+       0,     0,     0,     0,   803,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   945,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   946,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  3940,
-       0,     0,     0,     0,     0,     0,     0,     0,  3940,     0,
-       0,     0,  3940,     0,     0,     0,     0,   800,     0,     0,
+       0,   803,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0, -2332,     0,     0,     0,   947,     0,
+    3945,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   803,     0,   803,   948,   949,     0,     0,
+       0,     0,     0,     0,     0,   803,     0,  3919,  3919,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,  4174,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   950,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0, -2332,     0,     0,     0,
+       0,     0,     0,     0,   951,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,  3945,     0,  3945,  3945,
+    3423,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   803,
+       0,  3919,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,  3919,   803,     0,  3702,
+    3703,     0,     0,     0,     0,     0,     0,     0,  3212,  3919,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,   800,     0,     0,     0,     0,     0,
+       0,     0,   803,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,  3940,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   800,     0,   800,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,   800,     0,
-    3914,  3914,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,  4169,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  3418,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  3940,
-       0,  3940,  3940,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  3697,  3698,     0,     0,
-       0,     0,   800,     0,  3914,  3207,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  3914,
-     800,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,  3914,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   800,     0,     0,     0,     0,
+     803,  3919,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  3919,  3919,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     803,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,  3919,     0,     0,     0,     0,     0,     0,   803,     0,
+       0,  3919,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,  3212,     0,     0,     0,  3810,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   800,  3914,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  3914,  3914,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   803,     0,     0,
+       0,     0,     0,     0,  3919,     0,  3919,  3423,     0,     0,
+       0,     0,     0,     0,     0,     0,  3919,     0,     0,     0,
+     803,  3212,     0,   803,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,  3176,  3919,     0,  3919,     0,  3919,
+       0,     0,     0,     0,     0,     0,  3919,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,  3919,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   800,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  3919,  3919,     0,     0,     0,     0,   803,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,  3919,
+    3919,     0,     0,     0,  3919,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  3207,
-       0,     0,     0,  3805,  3914,     0,     0,     0,     0,     0,
-       0,   800,     0,     0,  3914,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,  3418,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  3207,     0,
-     800,     0,     0,     0,     0,     0,     0,  3914,     0,  3914,
-       0,  3171,     0,     0,     0,     0,     0,     0,     0,  3914,
-       0,     0,     0,   800,     0,     0,   800,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,  3914,     0,
-    3914,     0,  3914,     0,     0,     0,     0,     0,     0,  3914,
+       0,     0,     0,     0,     0,     0,   803,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    3914,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  3914,  3914,     0,     0,
-       0,     0,   800,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,  3914,  3914,     0,     0,     0,  3914,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,   800,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  3994,     0,     0,
-       0,     0,     0,     0,     0,     0,  3999,     0,  4001,     0,
+    3999,     0,     0,     0,     0,     0,     0,     0,     0,  4004,
+       0,  4006,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  4022,     0,     0,
+    4027,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,  3212,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,  3207,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,  3212,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,  3207,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,  4126,     0,
+    4127,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+    4135,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,  4121,     0,  4122,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,  4130,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
@@ -6660,1113 +6670,1113 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,  4231,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,  4236,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,  4226,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  4231,
+       0,     0,     0,     0,     0,     0,     0,  3423,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,  3418,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,  4285,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,  4280,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,  4340,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-    4335,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,  4368,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,  4363,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,  4382,     0,     0,     0,   139,
-       0,   669,   141,   142,   143,   144,     0,     0,   145,     0,
-       0,     0,   146,     0,     0,   670,     0,   148,   149,   150,
-     151,   152,   671,   154,     0,   155,     0,     0,   672,   156,
-     673,   674,   675,   157,   676,     0,   158,   159,   160,  1672,
-     161,     0,   162,   163,     0,     0,   164,   677,   678,   165,
-     166,  4430,   167,   679,   680,   169,   170,     0,   171,   172,
-     173,   174,   175,   681,   177,     0,   682,   179,   683,   684,
-     685,   686,   687,   688,     0,   186,   187,   188,   189,   190,
-     191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
-     689,   200,     0,   201,   690,   691,   202,     0,  3418,   203,
-     692,   693,     0,   204,   694,   695,     0,   205,   206,   207,
-     696,   697,   698,     0,     0,     0,     0,   699,   210,   700,
-       0,     0,   701,   211,     0,   212,     0,     0,     0,   213,
-       0,   214,   215,   216,   217,     0,     0,     0,   218,     0,
-       0,   219,   220,   221,     0,     0,     0,   222,     0,   223,
-     224,     0,   225,   226,   227,     0,     0,   228,   229,     0,
-     230,   231,   232,   233,   234,   235,   702,     0,   236,   237,
-     238,   703,   704,   239,   240,     0,   241,   242,   243,   705,
-       0,   244,     0,     0,     0,   245,     0,   246,     0,   247,
-       0,   248,   249,   706,   251,   707,   253,     0,   254,     0,
-     708,     0,   255,   256,   257,     0,   258,   709,   710,     0,
-     259,   260,     0,     0,     0,   711,   262,   263,   264,   712,
-       0,   265,   266,   267,     0,   268,     0,   269,     0,     0,
-       0,   713,   270,   271,   714,     0,     0,   272,     0,   273,
-     274,     0,   275,   276,     0,     0,     0,   277,     0,     0,
-     278,   279,   715,     0,  1673,   281,     0,   716,   282,   283,
-       0,     0,     0,     0,     0,   717,   285,     0,   286,     0,
-     287,     0,   288,   289,     0,     0,   718,     0,     0,     0,
-       0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
-     299,   300,   301,   302,     0,   303,   304,   305,   719,   306,
-     307,   308,   309,   720,   310,   311,     0,     0,     0,     0,
-     312,   313,   314,   315,   721,   317,     0,     0,   722,   319,
-     723,   320,     0,   321,   724,   725,   726,   727,   728,   326,
-     327,   328,   329,   330,     0,   729,   331,   332,     0,     0,
-     333,   334,   335,   336,   730,   731,   732,   337,   338,     0,
-     733,   734,     0,   339,   340,   735,     0,   342,   343,   344,
-     345,     0,   346,   347,     0,     0,     0,     0,     0,     0,
-       0,     0,   348,   349,   350,     0,   736,   351,     0,   352,
-     353,   354,   355,   737,   357,   358,   359,   360,   738,   739,
-     363,   740,     0,   364,   365,   366,     0,   367,     0,   368,
-     369,   370,   371,   372,     0,   741,   374,   375,     0,     0,
-     376,     0,     0,     0,   377,   378,   379,   380,   381,     0,
-       0,   382,   383,   384,   385,   386,     0,   387,   388,     0,
-     389,   390,   391,   742,   743,   392,     0,   393,     0,   394,
-     395,     0,   396,   397,     0,     0,   744,   398,   399,   400,
-     401,   402,   745,   404,   405,   406,   407,     0,   746,   409,
-       0,     0,     0,   410,   411,   412,   413,     0,     0,     0,
-     414,     0,     0,     0,   415,     0,   416,   417,   418,   419,
-       0,   420,   421,   422,   423,   424,   425,     0,     0,     0,
-       0,     0,     0,   426,   427,     0,   428,     0,     0,   429,
-       0,     0,   430,   431,   432,   747,   748,   433,   434,     0,
-     435,   436,   749,   438,   439,   440,   750,   751,   441,   442,
-     443,   444,   752,   445,   446,     0,   447,     0,   448,   449,
-     450,   451,     0,   753,   452,   453,     0,   754,   755,   756,
-     757,     0,     0,     0,     0,  1674,   458,   459,   460,     0,
-     758,   759,   760,   462,   463,   464,   761,   465,   466,   762,
-     467,   468,     0,   469,   470,     0,     0,   471,     0,     0,
-     472,     0,   473,     0,   763,   475,   476,     0,     0,   764,
-     765,   766,   767,   477,     0,     0,   478,   768,     0,   769,
-     479,   480,   481,   482,   483,   770,     0,     0,     0,     0,
-       0,     0,   485,   486,     0,   487,   488,   489,     0,     0,
-     771,     0,     0,     0,     0,   772,   773,     0,     0,     0,
-       0,   774,   775,     0,     0,   776,   777,     0,     0,   778,
-     779,   139,     0,   669,   141,   142,   143,   144,  3167,     0,
-     145,     0,     0,     0,   146,     0,     0,   670,     0,   148,
-     149,   150,   151,   152,   671,   154,     0,   155,     0,     0,
-    3168,   156,   673,   674,   675,   157,   676,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,   677,
-     678,   165,   166,     0,   167,   679,   680,   169,   170,     0,
-     171,   172,   173,   174,   175,   681,   177,     0,   682,   179,
-     683,   684,   685,   686,   687,   688,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   689,   200,     0,   201,   690,   691,   202,     0,
-       0,   203,   692,   693,     0,   204,   694,   695,     0,   205,
-     206,   207,   696,   697,   698,     0,     0,     0,     0,   699,
-     210,   700,     0,     0,  3169,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,   702,     0,
-     236,   237,   238,   703,   704,   239,   240,     0,   241,   242,
-     243,   705,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   706,   251,   707,   253,     0,
-     254,     0,   708,     0,   255,   256,   257,     0,   258,   709,
-     710,     0,   259,   260,     0,     0,     0,   711,   262,   263,
-     264,   712,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,   713,   270,   271,   714,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   715,     0,     0,   281,     0,   716,
-     282,   283,     0,     0,     0,     0,     0,   717,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,   718,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-     719,   306,   307,   308,   309,   720,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   721,   317,     0,     0,
-     722,   319,   723,   320,     0,   321,   724,   725,   726,   727,
-     728,   326,   327,   328,   329,   330,     0,   729,   331,   332,
-       0,     0,   333,   334,   335,   336,   730,   731,   732,   337,
-     338,     0,   733,   734,     0,   339,   340,   735,  3170,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,   736,   351,
-       0,   352,   353,   354,   355,   737,   357,   358,   359,   360,
-     738,   739,   363,   740,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   741,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,   742,   743,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,   744,   398,
-     399,   400,   401,   402,   745,   404,   405,   406,   407,     0,
-     746,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,   747,   748,   433,
-     434,     0,   435,   436,   749,   438,   439,   440,   750,   751,
-     441,   442,   443,   444,   752,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   753,   452,   453,     0,   754,
-     755,   756,   757,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,   758,   759,   760,   462,   463,   464,   761,   465,
-     466,   762,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   763,   475,   476,     0,
-       0,   764,   765,   766,   767,   477,     0,     0,   478,   768,
-       0,   769,   479,   480,   481,   482,   483,   770,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,     0,   771,     0,     0,     0,     0,   772,   773,     0,
-       0,     0,     0,   774,   775,     0,     0,   776,   777,     0,
-       0,   778,   779,   139,     0,   669,   141,   142,   143,   144,
-       0,     0,   145,     0,     0,     0,   146,     0,     0,   670,
-       0,   148,   149,   150,   151,   152,   671,   154,     0,   155,
-       0,     0,   672,   156,   673,   674,   675,   157,   676,     0,
-     158,   159,   160,     0,   161,     0,   162,   163,     0,     0,
-     164,   677,   678,   165,   166,     0,   167,   679,   680,   169,
-     170,     0,   171,   172,   173,   174,   175,   681,   177,     0,
-     682,   179,   683,   684,   685,   686,   687,   688,     0,   186,
-     187,   188,   189,   190,   191,   192,   193,     0,   194,   195,
-       0,   196,   197,   198,   689,   200,     0,   201,   690,   691,
-     202,     0,     0,   203,   692,   693,     0,   204,   694,   695,
-       0,   205,   206,   207,   696,   697,   698,     0,     0,     0,
-       0,   699,   210,   700,     0,     0,   701,   211,     0,   212,
-       0,     0,     0,   213,     0,   214,   215,   216,   217,     0,
-       0,     0,   218,     0,     0,   219,   220,   221,     0,     0,
-       0,   222,     0,   223,   224,     0,   225,   226,   227,     0,
-       0,   228,   229,     0,   230,   231,   232,   233,   234,   235,
-     702,     0,   236,   237,   238,   703,   704,   239,   240,     0,
-     241,   242,   243,   705,     0,   244,     0,     0,     0,   245,
-    2193,   246,     0,   247,     0,   248,   249,   706,   251,   707,
-     253,     0,   254,     0,   708,     0,   255,   256,   257,     0,
-     258,   709,   710,     0,   259,   260,     0,     0,     0,   711,
-     262,   263,   264,   712,     0,   265,   266,   267,     0,   268,
-       0,   269,     0,     0,     0,   713,   270,   271,   714,     0,
-       0,   272,     0,   273,   274,     0,   275,   276,     0,     0,
-       0,   277,     0,     0,   278,   279,   715,     0,     0,   281,
-       0,   716,   282,   283,     0,     0,     0,     0,     0,   717,
-     285,     0,   286,     0,   287,     0,   288,   289,     0,     0,
-     718,     0,     0,     0,     0,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,     0,   303,
-     304,   305,   719,   306,   307,   308,   309,   720,   310,   311,
-       0,     0,     0,     0,   312,   313,   314,   315,   721,   317,
-       0,     0,   722,   319,   723,   320,     0,   321,   724,   725,
-     726,   727,   728,   326,   327,   328,   329,   330,     0,   729,
-     331,   332,     0,     0,   333,   334,   335,   336,   730,   731,
-     732,   337,   338,     0,   733,   734,     0,   339,   340,   735,
-       0,   342,   343,   344,   345,     0,   346,   347,     0,     0,
-       0,     0,     0,     0,     0,     0,   348,   349,   350,     0,
-     736,   351,     0,   352,   353,   354,   355,   737,   357,   358,
-     359,   360,   738,   739,   363,   740,     0,   364,   365,   366,
-       0,   367,     0,   368,   369,   370,   371,   372,     0,   741,
-     374,   375,     0,     0,   376,     0,     0,     0,   377,   378,
-     379,   380,   381,     0,     0,   382,   383,   384,   385,   386,
-       0,   387,   388,     0,   389,   390,   391,   742,   743,   392,
-       0,   393,     0,   394,   395,     0,   396,   397,     0,     0,
-     744,   398,   399,   400,   401,   402,   745,   404,   405,   406,
-     407,     0,   746,   409,     0,     0,     0,   410,   411,   412,
-     413,     0,     0,     0,   414,     0,     0,     0,   415,     0,
-     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
-     425,     0,     0,     0,     0,     0,     0,   426,   427,     0,
-     428,     0,     0,   429,     0,     0,   430,   431,   432,   747,
-     748,   433,   434,     0,   435,   436,   749,   438,   439,   440,
-     750,   751,   441,   442,   443,   444,   752,   445,   446,     0,
-     447,     0,   448,   449,   450,   451,     0,   753,   452,   453,
-       0,   754,   755,   756,   757,     0,     0,     0,     0,     0,
-     458,   459,   460,     0,   758,   759,   760,   462,   463,   464,
-     761,   465,   466,   762,   467,   468,     0,   469,   470,     0,
-       0,   471,     0,     0,   472,     0,   473,     0,   763,   475,
-     476,     0,     0,   764,   765,   766,   767,   477,     0,     0,
-     478,   768,     0,   769,   479,   480,   481,   482,   483,   770,
-       0,     0,     0,     0,     0,     0,   485,   486,     0,   487,
-     488,   489,     0,     0,   771,     0,     0,     0,     0,   772,
-     773,     0,     0,     0,     0,   774,   775,     0,     0,   776,
-     777,     0,     0,   778,   779,   139,     0,   669,   141,   142,
-     143,   144,     0,     0,   145,     0,     0,     0,   146,     0,
-       0,   670,     0,   148,   149,   150,   151,   152,   671,   154,
-       0,   155,     0,     0,   672,   156,   673,   674,   675,   157,
-     676,     0,   158,   159,   160,     0,   161,     0,   162,   163,
-       0,     0,   164,   677,   678,   165,   166,     0,   167,   679,
-     680,   169,   170,     0,   171,   172,   173,   174,   175,   681,
-     177,     0,   682,   179,   683,   684,   685,   686,   687,   688,
+       0,     0,     0,     0,     0,     0,     0,     0,  4387,     0,
+       0,     0,   139,     0,   672,   141,   142,   143,   144,     0,
+       0,   145,     0,     0,     0,   146,     0,     0,   673,     0,
+     148,   149,   150,   151,   152,   674,   154,     0,   155,     0,
+       0,   675,   156,   676,   677,   678,   157,   679,     0,   158,
+     159,   160,  1675,   161,     0,   162,   163,     0,     0,   164,
+     680,   681,   165,   166,  4435,   167,   682,   683,   169,   170,
+       0,   171,   172,   173,   174,   175,   684,   177,     0,   685,
+     179,   686,   687,   688,   689,   690,   691,     0,   186,   187,
+     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
+     196,   197,   198,   692,   200,     0,   201,   693,   694,   202,
+       0,  3423,   203,   695,   696,     0,   204,   697,   698,     0,
+     205,   206,   207,   699,   700,   701,     0,     0,     0,     0,
+     702,   210,   703,     0,     0,   704,   211,     0,   212,     0,
+       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
+       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
+     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
+     228,   229,     0,   230,   231,   232,   233,   234,   235,   705,
+       0,   236,   237,   238,   706,   707,   239,   240,     0,   241,
+     242,   243,   708,     0,   244,     0,     0,     0,   245,     0,
+     246,     0,   247,     0,   248,   249,   709,   251,   710,   253,
+       0,   254,     0,   711,     0,   255,   256,   257,     0,   258,
+     712,   713,     0,   259,   260,     0,     0,     0,   714,   262,
+     263,   264,   715,     0,   265,   266,   267,     0,   268,     0,
+     269,     0,     0,     0,   716,   270,   271,   717,     0,     0,
+     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
+     277,     0,     0,   278,   279,   718,     0,  1676,   281,     0,
+     719,   282,   283,     0,     0,     0,     0,     0,   720,   285,
+       0,   286,     0,   287,     0,   288,   289,     0,     0,   721,
+       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
+     305,   722,   306,   307,   308,   309,   723,   310,   311,     0,
+       0,     0,     0,   312,   313,   314,   315,   724,   317,     0,
+       0,   725,   319,   726,   320,     0,   321,   727,   728,   729,
+     730,   731,   326,   327,   328,   329,   330,   331,     0,   732,
+     332,   333,     0,     0,   334,   335,   336,   337,   733,   734,
+     735,   338,   339,     0,   736,   737,     0,   340,   341,   738,
+       0,   343,   344,   345,   346,     0,   347,   348,     0,     0,
+       0,     0,     0,     0,     0,     0,   349,   350,   351,     0,
+     739,   352,     0,   353,   354,   355,   356,   740,   358,   359,
+     360,   361,   741,   742,   364,   743,     0,   365,   366,   367,
+       0,   368,     0,   369,   370,   371,   372,   373,     0,   744,
+     375,   376,     0,     0,   377,     0,     0,     0,   378,   379,
+     380,   381,   382,     0,     0,   383,   384,   385,   386,   387,
+       0,   388,   389,     0,   390,   391,   392,   745,   746,   393,
+       0,   394,     0,   395,   396,     0,   397,   398,     0,     0,
+     747,   399,   400,   401,   402,   403,   748,   405,   406,   407,
+     408,     0,   749,   410,     0,     0,     0,   411,   412,   413,
+     414,     0,     0,     0,   415,     0,     0,     0,   416,     0,
+     417,   418,   419,   420,     0,   421,   422,   423,   424,   425,
+     426,     0,     0,     0,     0,     0,     0,   427,   428,     0,
+     429,     0,     0,   430,     0,     0,   431,   432,   433,   750,
+     751,   434,   435,     0,   436,   437,   752,   439,   440,   441,
+     753,   754,   442,   443,   444,   445,   755,   446,   447,     0,
+     448,     0,   449,   450,   451,   452,     0,   756,   453,   454,
+       0,   757,   758,   759,   760,     0,     0,     0,     0,  1677,
+     459,   460,   461,     0,   761,   762,   763,   463,   464,   465,
+     764,   466,   467,   765,   468,   469,     0,   470,   471,     0,
+       0,   472,     0,     0,   473,     0,   474,     0,   766,   476,
+     477,     0,     0,   767,   768,   769,   770,   478,     0,     0,
+     479,   771,     0,   772,   480,   481,   482,   483,   484,   773,
+       0,     0,     0,     0,     0,     0,   486,   487,     0,   488,
+     489,   490,     0,     0,   774,     0,     0,     0,     0,   775,
+     776,     0,     0,     0,     0,   777,   778,     0,     0,   779,
+     780,     0,     0,   781,   782,   139,     0,   672,   141,   142,
+     143,   144,  3172,     0,   145,     0,     0,     0,   146,     0,
+       0,   673,     0,   148,   149,   150,   151,   152,   674,   154,
+       0,   155,     0,     0,  3173,   156,   676,   677,   678,   157,
+     679,     0,   158,   159,   160,     0,   161,     0,   162,   163,
+       0,     0,   164,   680,   681,   165,   166,     0,   167,   682,
+     683,   169,   170,     0,   171,   172,   173,   174,   175,   684,
+     177,     0,   685,   179,   686,   687,   688,   689,   690,   691,
        0,   186,   187,   188,   189,   190,   191,   192,   193,     0,
-     194,   195,     0,   196,   197,   198,   689,   200,     0,   201,
-     690,   691,   202,     0,     0,   203,   692,   693,     0,   204,
-     694,   695,     0,   205,   206,   207,   696,   697,   698,     0,
-       0,     0,     0,   699,   210,   700,     0,     0,   701,   211,
+     194,   195,     0,   196,   197,   198,   692,   200,     0,   201,
+     693,   694,   202,     0,     0,   203,   695,   696,     0,   204,
+     697,   698,     0,   205,   206,   207,   699,   700,   701,     0,
+       0,     0,     0,   702,   210,   703,     0,     0,  3174,   211,
        0,   212,     0,     0,     0,   213,     0,   214,   215,   216,
      217,     0,     0,     0,   218,     0,     0,   219,   220,   221,
        0,     0,     0,   222,     0,   223,   224,     0,   225,   226,
      227,     0,     0,   228,   229,     0,   230,   231,   232,   233,
-     234,   235,   702,     0,   236,   237,   238,   703,   704,   239,
-     240,     0,   241,   242,   243,   705,     0,   244,     0,     0,
-       0,   245,  2195,   246,     0,   247,     0,   248,   249,   706,
-     251,   707,   253,     0,   254,     0,   708,     0,   255,   256,
-     257,     0,   258,   709,   710,     0,   259,   260,     0,     0,
-       0,   711,   262,   263,   264,   712,     0,   265,   266,   267,
-       0,   268,     0,   269,     0,     0,     0,   713,   270,   271,
-     714,     0,     0,   272,     0,   273,   274,     0,   275,   276,
-       0,     0,     0,   277,     0,     0,   278,   279,   715,     0,
-       0,   281,     0,   716,   282,   283,     0,     0,     0,     0,
-       0,   717,   285,     0,   286,     0,   287,     0,   288,   289,
-       0,     0,   718,     0,     0,     0,     0,   290,   291,   292,
+     234,   235,   705,     0,   236,   237,   238,   706,   707,   239,
+     240,     0,   241,   242,   243,   708,     0,   244,     0,     0,
+       0,   245,     0,   246,     0,   247,     0,   248,   249,   709,
+     251,   710,   253,     0,   254,     0,   711,     0,   255,   256,
+     257,     0,   258,   712,   713,     0,   259,   260,     0,     0,
+       0,   714,   262,   263,   264,   715,     0,   265,   266,   267,
+       0,   268,     0,   269,     0,     0,     0,   716,   270,   271,
+     717,     0,     0,   272,     0,   273,   274,     0,   275,   276,
+       0,     0,     0,   277,     0,     0,   278,   279,   718,     0,
+       0,   281,     0,   719,   282,   283,     0,     0,     0,     0,
+       0,   720,   285,     0,   286,     0,   287,     0,   288,   289,
+       0,     0,   721,     0,     0,     0,     0,   290,   291,   292,
      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
-       0,   303,   304,   305,   719,   306,   307,   308,   309,   720,
+       0,   303,   304,   305,   722,   306,   307,   308,   309,   723,
      310,   311,     0,     0,     0,     0,   312,   313,   314,   315,
-     721,   317,     0,     0,   722,   319,   723,   320,     0,   321,
-     724,   725,   726,   727,   728,   326,   327,   328,   329,   330,
-       0,   729,   331,   332,     0,     0,   333,   334,   335,   336,
-     730,   731,   732,   337,   338,     0,   733,   734,     0,   339,
-     340,   735,     0,   342,   343,   344,   345,     0,   346,   347,
-       0,     0,     0,     0,     0,     0,     0,     0,   348,   349,
-     350,     0,   736,   351,     0,   352,   353,   354,   355,   737,
-     357,   358,   359,   360,   738,   739,   363,   740,     0,   364,
-     365,   366,     0,   367,     0,   368,   369,   370,   371,   372,
-       0,   741,   374,   375,     0,     0,   376,     0,     0,     0,
-     377,   378,   379,   380,   381,     0,     0,   382,   383,   384,
-     385,   386,     0,   387,   388,     0,   389,   390,   391,   742,
-     743,   392,     0,   393,     0,   394,   395,     0,   396,   397,
-       0,     0,   744,   398,   399,   400,   401,   402,   745,   404,
-     405,   406,   407,     0,   746,   409,     0,     0,     0,   410,
-     411,   412,   413,     0,     0,     0,   414,     0,     0,     0,
-     415,     0,   416,   417,   418,   419,     0,   420,   421,   422,
-     423,   424,   425,     0,     0,     0,     0,     0,     0,   426,
-     427,     0,   428,     0,     0,   429,     0,     0,   430,   431,
-     432,   747,   748,   433,   434,     0,   435,   436,   749,   438,
-     439,   440,   750,   751,   441,   442,   443,   444,   752,   445,
-     446,     0,   447,     0,   448,   449,   450,   451,     0,   753,
-     452,   453,     0,   754,   755,   756,   757,     0,     0,     0,
-       0,     0,   458,   459,   460,     0,   758,   759,   760,   462,
-     463,   464,   761,   465,   466,   762,   467,   468,     0,   469,
-     470,     0,     0,   471,     0,     0,   472,     0,   473,     0,
-     763,   475,   476,     0,     0,   764,   765,   766,   767,   477,
-       0,     0,   478,   768,     0,   769,   479,   480,   481,   482,
-     483,   770,     0,     0,     0,     0,     0,     0,   485,   486,
-       0,   487,   488,   489,     0,     0,   771,     0,     0,     0,
-       0,   772,   773,     0,     0,     0,     0,   774,   775,     0,
-       0,   776,   777,     0,     0,   778,   779,   139,     0,   669,
-     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
-     146,     0,     0,   670,     0,   148,   149,   150,   151,   152,
-     671,   154,     0,   155,     0,     0,   672,   156,   673,   674,
-     675,   157,   676,     0,   158,   159,   160,     0,   161,     0,
-     162,   163,     0,     0,   164,   677,   678,   165,   166,     0,
-     167,   679,   680,   169,   170,     0,   171,   172,   173,   174,
-     175,   681,   177,     0,   682,   179,   683,   684,   685,   686,
-     687,   688,     0,   186,   187,   188,   189,   190,   191,   192,
-     193,     0,   194,   195,     0,   196,   197,   198,   689,   200,
-       0,   201,   690,   691,   202,     0,     0,   203,   692,   693,
-       0,   204,   694,   695,     0,   205,   206,   207,   696,   697,
-     698,     0,     0,     0,     0,   699,   210,   700,     0,     0,
-     701,   211,     0,   212,     0,     0,     0,   213,     0,   214,
-     215,   216,   217,     0,     0,     0,   218,     0,     0,   219,
-     220,   221,     0,     0,     0,   222,     0,   223,   224,     0,
-     225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
-     232,   233,   234,   235,   702,     0,   236,   237,   238,   703,
-     704,   239,   240,     0,   241,   242,   243,   705,     0,   244,
-       0,     0,     0,   245,  2197,   246,     0,   247,     0,   248,
-     249,   706,   251,   707,   253,     0,   254,     0,   708,     0,
-     255,   256,   257,     0,   258,   709,   710,     0,   259,   260,
-       0,     0,     0,   711,   262,   263,   264,   712,     0,   265,
-     266,   267,     0,   268,     0,   269,     0,     0,     0,   713,
-     270,   271,   714,     0,     0,   272,     0,   273,   274,     0,
-     275,   276,     0,     0,     0,   277,     0,     0,   278,   279,
-     715,     0,     0,   281,     0,   716,   282,   283,     0,     0,
-       0,     0,     0,   717,   285,     0,   286,     0,   287,     0,
-     288,   289,     0,     0,   718,     0,     0,     0,     0,   290,
-     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
-     301,   302,     0,   303,   304,   305,   719,   306,   307,   308,
-     309,   720,   310,   311,     0,     0,     0,     0,   312,   313,
-     314,   315,   721,   317,     0,     0,   722,   319,   723,   320,
-       0,   321,   724,   725,   726,   727,   728,   326,   327,   328,
-     329,   330,     0,   729,   331,   332,     0,     0,   333,   334,
-     335,   336,   730,   731,   732,   337,   338,     0,   733,   734,
-       0,   339,   340,   735,     0,   342,   343,   344,   345,     0,
-     346,   347,     0,     0,     0,     0,     0,     0,     0,     0,
-     348,   349,   350,     0,   736,   351,     0,   352,   353,   354,
-     355,   737,   357,   358,   359,   360,   738,   739,   363,   740,
-       0,   364,   365,   366,     0,   367,     0,   368,   369,   370,
-     371,   372,     0,   741,   374,   375,     0,     0,   376,     0,
-       0,     0,   377,   378,   379,   380,   381,     0,     0,   382,
-     383,   384,   385,   386,     0,   387,   388,     0,   389,   390,
-     391,   742,   743,   392,     0,   393,     0,   394,   395,     0,
-     396,   397,     0,     0,   744,   398,   399,   400,   401,   402,
-     745,   404,   405,   406,   407,     0,   746,   409,     0,     0,
-       0,   410,   411,   412,   413,     0,     0,     0,   414,     0,
-       0,     0,   415,     0,   416,   417,   418,   419,     0,   420,
-     421,   422,   423,   424,   425,     0,     0,     0,     0,     0,
-       0,   426,   427,     0,   428,     0,     0,   429,     0,     0,
-     430,   431,   432,   747,   748,   433,   434,     0,   435,   436,
-     749,   438,   439,   440,   750,   751,   441,   442,   443,   444,
-     752,   445,   446,     0,   447,     0,   448,   449,   450,   451,
-       0,   753,   452,   453,     0,   754,   755,   756,   757,     0,
-       0,     0,     0,     0,   458,   459,   460,     0,   758,   759,
-     760,   462,   463,   464,   761,   465,   466,   762,   467,   468,
-       0,   469,   470,     0,     0,   471,     0,     0,   472,     0,
-     473,     0,   763,   475,   476,     0,     0,   764,   765,   766,
-     767,   477,     0,     0,   478,   768,     0,   769,   479,   480,
-     481,   482,   483,   770,     0,     0,     0,     0,     0,     0,
-     485,   486,     0,   487,   488,   489,     0,     0,   771,     0,
-       0,     0,     0,   772,   773,     0,     0,     0,     0,   774,
-     775,     0,     0,   776,   777,     0,     0,   778,   779,   139,
-       0,   669,   141,   142,   143,   144,     0,     0,   145,     0,
-       0,     0,   146,     0,     0,   670,     0,   148,   149,   150,
-     151,   152,   671,   154,     0,   155,     0,     0,   672,   156,
-     673,   674,   675,   157,   676,     0,   158,   159,   160,     0,
-     161,     0,   162,   163,     0,     0,   164,   677,   678,   165,
-     166,     0,   167,   679,   680,   169,   170,     0,   171,   172,
-     173,   174,   175,   681,   177,     0,   682,   179,   683,   684,
-     685,   686,   687,   688,     0,   186,   187,   188,   189,   190,
-     191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
-     689,   200,     0,   201,   690,   691,   202,     0,     0,   203,
-     692,   693,     0,   204,   694,   695,     0,   205,   206,   207,
-     696,   697,   698,     0,     0,     0,     0,   699,   210,   700,
-       0,     0,   701,   211,     0,   212,     0,     0,     0,   213,
-       0,   214,   215,   216,   217,     0,     0,     0,   218,     0,
-       0,   219,   220,   221,     0,     0,     0,   222,     0,   223,
-     224,     0,   225,   226,   227,     0,     0,   228,   229,     0,
-     230,   231,   232,   233,   234,   235,   702,     0,   236,   237,
-     238,   703,   704,   239,   240,     0,   241,   242,   243,   705,
-       0,   244,     0,     0,     0,   245,     0,   246,     0,   247,
-       0,   248,   249,   706,   251,   707,   253,     0,   254,     0,
-     708,     0,   255,   256,   257,     0,   258,   709,   710,     0,
-     259,   260,     0,     0,     0,   711,   262,   263,   264,   712,
-       0,   265,   266,   267,     0,   268,     0,   269,     0,     0,
-       0,   713,   270,   271,   714,     0,     0,   272,     0,   273,
-     274,     0,   275,   276,     0,     0,     0,   277,     0,     0,
-     278,   279,   715,     0,     0,   281,     0,   716,   282,   283,
-       0,     0,     0,     0,     0,   717,   285,     0,   286,     0,
-     287,     0,   288,   289,     0,     0,   718,     0,     0,     0,
-       0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
-     299,   300,   301,   302,     0,   303,   304,   305,   719,   306,
-     307,   308,   309,   720,   310,   311,     0,     0,     0,     0,
-     312,   313,   314,   315,   721,   317,     0,     0,   722,   319,
-     723,   320,     0,   321,   724,   725,   726,   727,   728,   326,
-     327,   328,   329,   330,     0,   729,   331,   332,     0,     0,
-     333,   334,   335,   336,   730,   731,   732,   337,   338,     0,
-     733,   734,     0,   339,   340,   735,     0,   342,   343,   344,
-     345,     0,   346,   347,     0,     0,     0,     0,     0,     0,
-       0,     0,   348,   349,   350,     0,   736,   351,     0,   352,
-     353,   354,   355,   737,   357,   358,   359,   360,   738,   739,
-     363,   740,     0,   364,   365,   366,     0,   367,     0,   368,
-     369,   370,   371,   372,     0,   741,   374,   375,     0,     0,
-     376,     0,     0,     0,   377,   378,   379,   380,   381,     0,
-       0,   382,   383,   384,   385,   386,     0,   387,   388,     0,
-     389,   390,   391,   742,   743,   392,     0,   393,     0,   394,
-     395,     0,   396,   397,     0,     0,   744,   398,   399,   400,
-     401,   402,   745,   404,   405,   406,   407,     0,   746,   409,
-       0,     0,     0,   410,   411,   412,   413,     0,     0,     0,
-     414,     0,     0,     0,   415,     0,   416,   417,   418,   419,
-       0,   420,   421,   422,   423,   424,   425,     0,     0,     0,
-       0,     0,     0,   426,   427,     0,   428,     0,     0,   429,
-       0,     0,   430,   431,   432,   747,   748,   433,   434,     0,
-     435,   436,   749,   438,   439,   440,   750,   751,   441,   442,
-     443,   444,   752,   445,   446,     0,   447,     0,   448,   449,
-     450,   451,     0,   753,   452,   453,     0,   754,   755,   756,
-     757,     0,     0,     0,     0,     0,   458,   459,   460,     0,
-     758,   759,   760,   462,   463,   464,   761,   465,   466,   762,
-     467,   468,     0,   469,   470,     0,     0,   471,     0,     0,
-     472,     0,   473,     0,   763,   475,   476,     0,     0,   764,
-     765,   766,   767,   477,     0,     0,   478,   768,     0,   769,
-     479,   480,   481,   482,   483,   770,     0,     0,     0,     0,
-       0,     0,   485,   486,     0,   487,   488,   489,     0,     0,
-     771,     0,     0,     0,     0,   772,   773,     0,     0,     0,
-       0,   774,   775,     0,     0,   776,   777,     0,     0,   778,
-     779,   139,     0,   669,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   670,     0,   148,
-     149,   150,   151,   152,   671,   154,     0,   155,     0,     0,
-     672,   156,   673,   674,   675,   157,   676,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,   677,
-     678,   165,   166,     0,   167,   679,   680,   169,   170,     0,
-     171,   172,   173,   174,   175,   681,   177,     0,   682,   179,
-     683,   684,   685,   686,   687,   688,     0,   186,   187,   188,
+     724,   317,     0,     0,   725,   319,   726,   320,     0,   321,
+     727,   728,   729,   730,   731,   326,   327,   328,   329,   330,
+     331,     0,   732,   332,   333,     0,     0,   334,   335,   336,
+     337,   733,   734,   735,   338,   339,     0,   736,   737,     0,
+     340,   341,   738,  3175,   343,   344,   345,   346,     0,   347,
+     348,     0,     0,     0,     0,     0,     0,     0,     0,   349,
+     350,   351,     0,   739,   352,     0,   353,   354,   355,   356,
+     740,   358,   359,   360,   361,   741,   742,   364,   743,     0,
+     365,   366,   367,     0,   368,     0,   369,   370,   371,   372,
+     373,     0,   744,   375,   376,     0,     0,   377,     0,     0,
+       0,   378,   379,   380,   381,   382,     0,     0,   383,   384,
+     385,   386,   387,     0,   388,   389,     0,   390,   391,   392,
+     745,   746,   393,     0,   394,     0,   395,   396,     0,   397,
+     398,     0,     0,   747,   399,   400,   401,   402,   403,   748,
+     405,   406,   407,   408,     0,   749,   410,     0,     0,     0,
+     411,   412,   413,   414,     0,     0,     0,   415,     0,     0,
+       0,   416,     0,   417,   418,   419,   420,     0,   421,   422,
+     423,   424,   425,   426,     0,     0,     0,     0,     0,     0,
+     427,   428,     0,   429,     0,     0,   430,     0,     0,   431,
+     432,   433,   750,   751,   434,   435,     0,   436,   437,   752,
+     439,   440,   441,   753,   754,   442,   443,   444,   445,   755,
+     446,   447,     0,   448,     0,   449,   450,   451,   452,     0,
+     756,   453,   454,     0,   757,   758,   759,   760,     0,     0,
+       0,     0,     0,   459,   460,   461,     0,   761,   762,   763,
+     463,   464,   465,   764,   466,   467,   765,   468,   469,     0,
+     470,   471,     0,     0,   472,     0,     0,   473,     0,   474,
+       0,   766,   476,   477,     0,     0,   767,   768,   769,   770,
+     478,     0,     0,   479,   771,     0,   772,   480,   481,   482,
+     483,   484,   773,     0,     0,     0,     0,     0,     0,   486,
+     487,     0,   488,   489,   490,     0,     0,   774,     0,     0,
+       0,     0,   775,   776,     0,     0,     0,     0,   777,   778,
+       0,     0,   779,   780,     0,     0,   781,   782,   139,     0,
+     672,   141,   142,   143,   144,     0,     0,   145,     0,     0,
+       0,   146,     0,     0,   673,     0,   148,   149,   150,   151,
+     152,   674,   154,     0,   155,     0,     0,   675,   156,   676,
+     677,   678,   157,   679,     0,   158,   159,   160,     0,   161,
+       0,   162,   163,     0,     0,   164,   680,   681,   165,   166,
+       0,   167,   682,   683,   169,   170,     0,   171,   172,   173,
+     174,   175,   684,   177,     0,   685,   179,   686,   687,   688,
+     689,   690,   691,     0,   186,   187,   188,   189,   190,   191,
+     192,   193,     0,   194,   195,     0,   196,   197,   198,   692,
+     200,     0,   201,   693,   694,   202,     0,     0,   203,   695,
+     696,     0,   204,   697,   698,     0,   205,   206,   207,   699,
+     700,   701,     0,     0,     0,     0,   702,   210,   703,     0,
+       0,   704,   211,     0,   212,     0,     0,     0,   213,     0,
+     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
+     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
+       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
+     231,   232,   233,   234,   235,   705,     0,   236,   237,   238,
+     706,   707,   239,   240,     0,   241,   242,   243,   708,     0,
+     244,     0,     0,     0,   245,  2196,   246,     0,   247,     0,
+     248,   249,   709,   251,   710,   253,     0,   254,     0,   711,
+       0,   255,   256,   257,     0,   258,   712,   713,     0,   259,
+     260,     0,     0,     0,   714,   262,   263,   264,   715,     0,
+     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
+     716,   270,   271,   717,     0,     0,   272,     0,   273,   274,
+       0,   275,   276,     0,     0,     0,   277,     0,     0,   278,
+     279,   718,     0,     0,   281,     0,   719,   282,   283,     0,
+       0,     0,     0,     0,   720,   285,     0,   286,     0,   287,
+       0,   288,   289,     0,     0,   721,     0,     0,     0,     0,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,     0,   303,   304,   305,   722,   306,   307,
+     308,   309,   723,   310,   311,     0,     0,     0,     0,   312,
+     313,   314,   315,   724,   317,     0,     0,   725,   319,   726,
+     320,     0,   321,   727,   728,   729,   730,   731,   326,   327,
+     328,   329,   330,   331,     0,   732,   332,   333,     0,     0,
+     334,   335,   336,   337,   733,   734,   735,   338,   339,     0,
+     736,   737,     0,   340,   341,   738,     0,   343,   344,   345,
+     346,     0,   347,   348,     0,     0,     0,     0,     0,     0,
+       0,     0,   349,   350,   351,     0,   739,   352,     0,   353,
+     354,   355,   356,   740,   358,   359,   360,   361,   741,   742,
+     364,   743,     0,   365,   366,   367,     0,   368,     0,   369,
+     370,   371,   372,   373,     0,   744,   375,   376,     0,     0,
+     377,     0,     0,     0,   378,   379,   380,   381,   382,     0,
+       0,   383,   384,   385,   386,   387,     0,   388,   389,     0,
+     390,   391,   392,   745,   746,   393,     0,   394,     0,   395,
+     396,     0,   397,   398,     0,     0,   747,   399,   400,   401,
+     402,   403,   748,   405,   406,   407,   408,     0,   749,   410,
+       0,     0,     0,   411,   412,   413,   414,     0,     0,     0,
+     415,     0,     0,     0,   416,     0,   417,   418,   419,   420,
+       0,   421,   422,   423,   424,   425,   426,     0,     0,     0,
+       0,     0,     0,   427,   428,     0,   429,     0,     0,   430,
+       0,     0,   431,   432,   433,   750,   751,   434,   435,     0,
+     436,   437,   752,   439,   440,   441,   753,   754,   442,   443,
+     444,   445,   755,   446,   447,     0,   448,     0,   449,   450,
+     451,   452,     0,   756,   453,   454,     0,   757,   758,   759,
+     760,     0,     0,     0,     0,     0,   459,   460,   461,     0,
+     761,   762,   763,   463,   464,   465,   764,   466,   467,   765,
+     468,   469,     0,   470,   471,     0,     0,   472,     0,     0,
+     473,     0,   474,     0,   766,   476,   477,     0,     0,   767,
+     768,   769,   770,   478,     0,     0,   479,   771,     0,   772,
+     480,   481,   482,   483,   484,   773,     0,     0,     0,     0,
+       0,     0,   486,   487,     0,   488,   489,   490,     0,     0,
+     774,     0,     0,     0,     0,   775,   776,     0,     0,     0,
+       0,   777,   778,     0,     0,   779,   780,     0,     0,   781,
+     782,   139,     0,   672,   141,   142,   143,   144,     0,     0,
+     145,     0,     0,     0,   146,     0,     0,   673,     0,   148,
+     149,   150,   151,   152,   674,   154,     0,   155,     0,     0,
+     675,   156,   676,   677,   678,   157,   679,     0,   158,   159,
+     160,     0,   161,     0,   162,   163,     0,     0,   164,   680,
+     681,   165,   166,     0,   167,   682,   683,   169,   170,     0,
+     171,   172,   173,   174,   175,   684,   177,     0,   685,   179,
+     686,   687,   688,   689,   690,   691,     0,   186,   187,   188,
      189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   689,   200,     0,   201,   690,   691,   202,     0,
-       0,   203,   692,   693,     0,   204,   694,   695,     0,   205,
-     206,   207,   696,   697,   698,     0,     0,     0,     0,   699,
-     210,   700,     0,     0,   701,   211,     0,   212,     0,     0,
+     197,   198,   692,   200,     0,   201,   693,   694,   202,     0,
+       0,   203,   695,   696,     0,   204,   697,   698,     0,   205,
+     206,   207,   699,   700,   701,     0,     0,     0,     0,   702,
+     210,   703,     0,     0,   704,   211,     0,   212,     0,     0,
        0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
      218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
        0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,   702,     0,
-     236,   237,   238,   703,   704,   239,   240,     0,   241,   242,
-     243,   705,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   706,   251,   707,   253,     0,
-     254,     0,   708,     0,   255,   256,   257,     0,   258,   709,
-     710,     0,   259,   260,     0,     0,     0,   711,   262,   263,
-     264,   712,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,   713,   270,   271,   714,     0,     0,   272,
+     229,     0,   230,   231,   232,   233,   234,   235,   705,     0,
+     236,   237,   238,   706,   707,   239,   240,     0,   241,   242,
+     243,   708,     0,   244,     0,     0,     0,   245,  2198,   246,
+       0,   247,     0,   248,   249,   709,   251,   710,   253,     0,
+     254,     0,   711,     0,   255,   256,   257,     0,   258,   712,
+     713,     0,   259,   260,     0,     0,     0,   714,   262,   263,
+     264,   715,     0,   265,   266,   267,     0,   268,     0,   269,
+       0,     0,     0,   716,   270,   271,   717,     0,     0,   272,
        0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   715,     0,     0,   281,     0,   716,
-     282,   283,     0,     0,     0,     0,     0,   717,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,   718,     0,
+       0,     0,   278,   279,   718,     0,     0,   281,     0,   719,
+     282,   283,     0,     0,     0,     0,     0,   720,   285,     0,
+     286,     0,   287,     0,   288,   289,     0,     0,   721,     0,
        0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
      297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-     719,   306,   307,   308,   309,   720,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   721,   317,     0,     0,
-     722,   319,   723,   320,     0,   321,   724,   725,   726,   727,
-     728,   326,   327,   328,   329,   330,     0,   729,   331,   332,
-       0,     0,   333,   334,   335,   336,   730,   731,   732,   337,
-     338,     0,   733,   734,     0,   339,   340,   735,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,   736,   351,
-       0,   352,   353,   354,   355,   737,   357,   358,   359,   360,
-     738,   739,   363,   740,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   741,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,   742,   743,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,   744,   398,
-     399,   400,   401,   402,   745,   404,   405,   406,   407,     0,
-     746,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,   747,   748,   433,
-     434,     0,   435,   436,   749,   438,   439,   440,   750,   751,
-     441,   442,   443,   444,   752,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   753,   452,   453,     0,   754,
-     755,   756,   757,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,   758,   759,   760,   462,   463,   464,   761,   465,
-     466,   762,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   763,   475,   476,     0,
-       0,   764,   765,   766,   767,   477,     0,     0,   478,   768,
-       0,   769,   479,   480,   481,   482,   483,   770,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,     0,   771,     0,     0,     0,     0,   772,   773,     0,
-       0,     0,     0,   774,  1120,     0,     0,   776,   777,     0,
-       0,   778,   779,   139,     0,   669,   141,   142,   143,   144,
-    1706,     0,   145,     0,     0,     0,  1707,     0,     0,   670,
-       0,   148,   149,   150,   151,   152,   671,   154,     0,   155,
-       0,     0,   672,   156,   673,   674,   675,   157,   676,     0,
+     722,   306,   307,   308,   309,   723,   310,   311,     0,     0,
+       0,     0,   312,   313,   314,   315,   724,   317,     0,     0,
+     725,   319,   726,   320,     0,   321,   727,   728,   729,   730,
+     731,   326,   327,   328,   329,   330,   331,     0,   732,   332,
+     333,     0,     0,   334,   335,   336,   337,   733,   734,   735,
+     338,   339,     0,   736,   737,     0,   340,   341,   738,     0,
+     343,   344,   345,   346,     0,   347,   348,     0,     0,     0,
+       0,     0,     0,     0,     0,   349,   350,   351,     0,   739,
+     352,     0,   353,   354,   355,   356,   740,   358,   359,   360,
+     361,   741,   742,   364,   743,     0,   365,   366,   367,     0,
+     368,     0,   369,   370,   371,   372,   373,     0,   744,   375,
+     376,     0,     0,   377,     0,     0,     0,   378,   379,   380,
+     381,   382,     0,     0,   383,   384,   385,   386,   387,     0,
+     388,   389,     0,   390,   391,   392,   745,   746,   393,     0,
+     394,     0,   395,   396,     0,   397,   398,     0,     0,   747,
+     399,   400,   401,   402,   403,   748,   405,   406,   407,   408,
+       0,   749,   410,     0,     0,     0,   411,   412,   413,   414,
+       0,     0,     0,   415,     0,     0,     0,   416,     0,   417,
+     418,   419,   420,     0,   421,   422,   423,   424,   425,   426,
+       0,     0,     0,     0,     0,     0,   427,   428,     0,   429,
+       0,     0,   430,     0,     0,   431,   432,   433,   750,   751,
+     434,   435,     0,   436,   437,   752,   439,   440,   441,   753,
+     754,   442,   443,   444,   445,   755,   446,   447,     0,   448,
+       0,   449,   450,   451,   452,     0,   756,   453,   454,     0,
+     757,   758,   759,   760,     0,     0,     0,     0,     0,   459,
+     460,   461,     0,   761,   762,   763,   463,   464,   465,   764,
+     466,   467,   765,   468,   469,     0,   470,   471,     0,     0,
+     472,     0,     0,   473,     0,   474,     0,   766,   476,   477,
+       0,     0,   767,   768,   769,   770,   478,     0,     0,   479,
+     771,     0,   772,   480,   481,   482,   483,   484,   773,     0,
+       0,     0,     0,     0,     0,   486,   487,     0,   488,   489,
+     490,     0,     0,   774,     0,     0,     0,     0,   775,   776,
+       0,     0,     0,     0,   777,   778,     0,     0,   779,   780,
+       0,     0,   781,   782,   139,     0,   672,   141,   142,   143,
+     144,     0,     0,   145,     0,     0,     0,   146,     0,     0,
+     673,     0,   148,   149,   150,   151,   152,   674,   154,     0,
+     155,     0,     0,   675,   156,   676,   677,   678,   157,   679,
+       0,   158,   159,   160,     0,   161,     0,   162,   163,     0,
+       0,   164,   680,   681,   165,   166,     0,   167,   682,   683,
+     169,   170,     0,   171,   172,   173,   174,   175,   684,   177,
+       0,   685,   179,   686,   687,   688,   689,   690,   691,     0,
+     186,   187,   188,   189,   190,   191,   192,   193,     0,   194,
+     195,     0,   196,   197,   198,   692,   200,     0,   201,   693,
+     694,   202,     0,     0,   203,   695,   696,     0,   204,   697,
+     698,     0,   205,   206,   207,   699,   700,   701,     0,     0,
+       0,     0,   702,   210,   703,     0,     0,   704,   211,     0,
+     212,     0,     0,     0,   213,     0,   214,   215,   216,   217,
+       0,     0,     0,   218,     0,     0,   219,   220,   221,     0,
+       0,     0,   222,     0,   223,   224,     0,   225,   226,   227,
+       0,     0,   228,   229,     0,   230,   231,   232,   233,   234,
+     235,   705,     0,   236,   237,   238,   706,   707,   239,   240,
+       0,   241,   242,   243,   708,     0,   244,     0,     0,     0,
+     245,  2200,   246,     0,   247,     0,   248,   249,   709,   251,
+     710,   253,     0,   254,     0,   711,     0,   255,   256,   257,
+       0,   258,   712,   713,     0,   259,   260,     0,     0,     0,
+     714,   262,   263,   264,   715,     0,   265,   266,   267,     0,
+     268,     0,   269,     0,     0,     0,   716,   270,   271,   717,
+       0,     0,   272,     0,   273,   274,     0,   275,   276,     0,
+       0,     0,   277,     0,     0,   278,   279,   718,     0,     0,
+     281,     0,   719,   282,   283,     0,     0,     0,     0,     0,
+     720,   285,     0,   286,     0,   287,     0,   288,   289,     0,
+       0,   721,     0,     0,     0,     0,   290,   291,   292,   293,
+     294,   295,   296,   297,   298,   299,   300,   301,   302,     0,
+     303,   304,   305,   722,   306,   307,   308,   309,   723,   310,
+     311,     0,     0,     0,     0,   312,   313,   314,   315,   724,
+     317,     0,     0,   725,   319,   726,   320,     0,   321,   727,
+     728,   729,   730,   731,   326,   327,   328,   329,   330,   331,
+       0,   732,   332,   333,     0,     0,   334,   335,   336,   337,
+     733,   734,   735,   338,   339,     0,   736,   737,     0,   340,
+     341,   738,     0,   343,   344,   345,   346,     0,   347,   348,
+       0,     0,     0,     0,     0,     0,     0,     0,   349,   350,
+     351,     0,   739,   352,     0,   353,   354,   355,   356,   740,
+     358,   359,   360,   361,   741,   742,   364,   743,     0,   365,
+     366,   367,     0,   368,     0,   369,   370,   371,   372,   373,
+       0,   744,   375,   376,     0,     0,   377,     0,     0,     0,
+     378,   379,   380,   381,   382,     0,     0,   383,   384,   385,
+     386,   387,     0,   388,   389,     0,   390,   391,   392,   745,
+     746,   393,     0,   394,     0,   395,   396,     0,   397,   398,
+       0,     0,   747,   399,   400,   401,   402,   403,   748,   405,
+     406,   407,   408,     0,   749,   410,     0,     0,     0,   411,
+     412,   413,   414,     0,     0,     0,   415,     0,     0,     0,
+     416,     0,   417,   418,   419,   420,     0,   421,   422,   423,
+     424,   425,   426,     0,     0,     0,     0,     0,     0,   427,
+     428,     0,   429,     0,     0,   430,     0,     0,   431,   432,
+     433,   750,   751,   434,   435,     0,   436,   437,   752,   439,
+     440,   441,   753,   754,   442,   443,   444,   445,   755,   446,
+     447,     0,   448,     0,   449,   450,   451,   452,     0,   756,
+     453,   454,     0,   757,   758,   759,   760,     0,     0,     0,
+       0,     0,   459,   460,   461,     0,   761,   762,   763,   463,
+     464,   465,   764,   466,   467,   765,   468,   469,     0,   470,
+     471,     0,     0,   472,     0,     0,   473,     0,   474,     0,
+     766,   476,   477,     0,     0,   767,   768,   769,   770,   478,
+       0,     0,   479,   771,     0,   772,   480,   481,   482,   483,
+     484,   773,     0,     0,     0,     0,     0,     0,   486,   487,
+       0,   488,   489,   490,     0,     0,   774,     0,     0,     0,
+       0,   775,   776,     0,     0,     0,     0,   777,   778,     0,
+       0,   779,   780,     0,     0,   781,   782,   139,     0,   672,
+     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
+     146,     0,     0,   673,     0,   148,   149,   150,   151,   152,
+     674,   154,     0,   155,     0,     0,   675,   156,   676,   677,
+     678,   157,   679,     0,   158,   159,   160,     0,   161,     0,
+     162,   163,     0,     0,   164,   680,   681,   165,   166,     0,
+     167,   682,   683,   169,   170,     0,   171,   172,   173,   174,
+     175,   684,   177,     0,   685,   179,   686,   687,   688,   689,
+     690,   691,     0,   186,   187,   188,   189,   190,   191,   192,
+     193,     0,   194,   195,     0,   196,   197,   198,   692,   200,
+       0,   201,   693,   694,   202,     0,     0,   203,   695,   696,
+       0,   204,   697,   698,     0,   205,   206,   207,   699,   700,
+     701,     0,     0,     0,     0,   702,   210,   703,     0,     0,
+     704,   211,     0,   212,     0,     0,     0,   213,     0,   214,
+     215,   216,   217,     0,     0,     0,   218,     0,     0,   219,
+     220,   221,     0,     0,     0,   222,     0,   223,   224,     0,
+     225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
+     232,   233,   234,   235,   705,     0,   236,   237,   238,   706,
+     707,   239,   240,     0,   241,   242,   243,   708,     0,   244,
+       0,     0,     0,   245,     0,   246,     0,   247,     0,   248,
+     249,   709,   251,   710,   253,     0,   254,     0,   711,     0,
+     255,   256,   257,     0,   258,   712,   713,     0,   259,   260,
+       0,     0,     0,   714,   262,   263,   264,   715,     0,   265,
+     266,   267,     0,   268,     0,   269,     0,     0,     0,   716,
+     270,   271,   717,     0,     0,   272,     0,   273,   274,     0,
+     275,   276,     0,     0,     0,   277,     0,     0,   278,   279,
+     718,     0,     0,   281,     0,   719,   282,   283,     0,     0,
+       0,     0,     0,   720,   285,     0,   286,     0,   287,     0,
+     288,   289,     0,     0,   721,     0,     0,     0,     0,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
+     301,   302,     0,   303,   304,   305,   722,   306,   307,   308,
+     309,   723,   310,   311,     0,     0,     0,     0,   312,   313,
+     314,   315,   724,   317,     0,     0,   725,   319,   726,   320,
+       0,   321,   727,   728,   729,   730,   731,   326,   327,   328,
+     329,   330,   331,     0,   732,   332,   333,     0,     0,   334,
+     335,   336,   337,   733,   734,   735,   338,   339,     0,   736,
+     737,     0,   340,   341,   738,     0,   343,   344,   345,   346,
+       0,   347,   348,     0,     0,     0,     0,     0,     0,     0,
+       0,   349,   350,   351,     0,   739,   352,     0,   353,   354,
+     355,   356,   740,   358,   359,   360,   361,   741,   742,   364,
+     743,     0,   365,   366,   367,     0,   368,     0,   369,   370,
+     371,   372,   373,     0,   744,   375,   376,     0,     0,   377,
+       0,     0,     0,   378,   379,   380,   381,   382,     0,     0,
+     383,   384,   385,   386,   387,     0,   388,   389,     0,   390,
+     391,   392,   745,   746,   393,     0,   394,     0,   395,   396,
+       0,   397,   398,     0,     0,   747,   399,   400,   401,   402,
+     403,   748,   405,   406,   407,   408,     0,   749,   410,     0,
+       0,     0,   411,   412,   413,   414,     0,     0,     0,   415,
+       0,     0,     0,   416,     0,   417,   418,   419,   420,     0,
+     421,   422,   423,   424,   425,   426,     0,     0,     0,     0,
+       0,     0,   427,   428,     0,   429,     0,     0,   430,     0,
+       0,   431,   432,   433,   750,   751,   434,   435,     0,   436,
+     437,   752,   439,   440,   441,   753,   754,   442,   443,   444,
+     445,   755,   446,   447,     0,   448,     0,   449,   450,   451,
+     452,     0,   756,   453,   454,     0,   757,   758,   759,   760,
+       0,     0,     0,     0,     0,   459,   460,   461,     0,   761,
+     762,   763,   463,   464,   465,   764,   466,   467,   765,   468,
+     469,     0,   470,   471,     0,     0,   472,     0,     0,   473,
+       0,   474,     0,   766,   476,   477,     0,     0,   767,   768,
+     769,   770,   478,     0,     0,   479,   771,     0,   772,   480,
+     481,   482,   483,   484,   773,     0,     0,     0,     0,     0,
+       0,   486,   487,     0,   488,   489,   490,     0,     0,   774,
+       0,     0,     0,     0,   775,   776,     0,     0,     0,     0,
+     777,   778,     0,     0,   779,   780,     0,     0,   781,   782,
+     139,     0,   672,   141,   142,   143,   144,     0,     0,   145,
+       0,     0,     0,   146,     0,     0,   673,     0,   148,   149,
+     150,   151,   152,   674,   154,     0,   155,     0,     0,   675,
+     156,   676,   677,   678,   157,   679,     0,   158,   159,   160,
+       0,   161,     0,   162,   163,     0,     0,   164,   680,   681,
+     165,   166,     0,   167,   682,   683,   169,   170,     0,   171,
+     172,   173,   174,   175,   684,   177,     0,   685,   179,   686,
+     687,   688,   689,   690,   691,     0,   186,   187,   188,   189,
+     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
+     198,   692,   200,     0,   201,   693,   694,   202,     0,     0,
+     203,   695,   696,     0,   204,   697,   698,     0,   205,   206,
+     207,   699,   700,   701,     0,     0,     0,     0,   702,   210,
+     703,     0,     0,   704,   211,     0,   212,     0,     0,     0,
+     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
+       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
+     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
+       0,   230,   231,   232,   233,   234,   235,   705,     0,   236,
+     237,   238,   706,   707,   239,   240,     0,   241,   242,   243,
+     708,     0,   244,     0,     0,     0,   245,     0,   246,     0,
+     247,     0,   248,   249,   709,   251,   710,   253,     0,   254,
+       0,   711,     0,   255,   256,   257,     0,   258,   712,   713,
+       0,   259,   260,     0,     0,     0,   714,   262,   263,   264,
+     715,     0,   265,   266,   267,     0,   268,     0,   269,     0,
+       0,     0,   716,   270,   271,   717,     0,     0,   272,     0,
+     273,   274,     0,   275,   276,     0,     0,     0,   277,     0,
+       0,   278,   279,   718,     0,     0,   281,     0,   719,   282,
+     283,     0,     0,     0,     0,     0,   720,   285,     0,   286,
+       0,   287,     0,   288,   289,     0,     0,   721,     0,     0,
+       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,     0,   303,   304,   305,   722,
+     306,   307,   308,   309,   723,   310,   311,     0,     0,     0,
+       0,   312,   313,   314,   315,   724,   317,     0,     0,   725,
+     319,   726,   320,     0,   321,   727,   728,   729,   730,   731,
+     326,   327,   328,   329,   330,   331,     0,   732,   332,   333,
+       0,     0,   334,   335,   336,   337,   733,   734,   735,   338,
+     339,     0,   736,   737,     0,   340,   341,   738,     0,   343,
+     344,   345,   346,     0,   347,   348,     0,     0,     0,     0,
+       0,     0,     0,     0,   349,   350,   351,     0,   739,   352,
+       0,   353,   354,   355,   356,   740,   358,   359,   360,   361,
+     741,   742,   364,   743,     0,   365,   366,   367,     0,   368,
+       0,   369,   370,   371,   372,   373,     0,   744,   375,   376,
+       0,     0,   377,     0,     0,     0,   378,   379,   380,   381,
+     382,     0,     0,   383,   384,   385,   386,   387,     0,   388,
+     389,     0,   390,   391,   392,   745,   746,   393,     0,   394,
+       0,   395,   396,     0,   397,   398,     0,     0,   747,   399,
+     400,   401,   402,   403,   748,   405,   406,   407,   408,     0,
+     749,   410,     0,     0,     0,   411,   412,   413,   414,     0,
+       0,     0,   415,     0,     0,     0,   416,     0,   417,   418,
+     419,   420,     0,   421,   422,   423,   424,   425,   426,     0,
+       0,     0,     0,     0,     0,   427,   428,     0,   429,     0,
+       0,   430,     0,     0,   431,   432,   433,   750,   751,   434,
+     435,     0,   436,   437,   752,   439,   440,   441,   753,   754,
+     442,   443,   444,   445,   755,   446,   447,     0,   448,     0,
+     449,   450,   451,   452,     0,   756,   453,   454,     0,   757,
+     758,   759,   760,     0,     0,     0,     0,     0,   459,   460,
+     461,     0,   761,   762,   763,   463,   464,   465,   764,   466,
+     467,   765,   468,   469,     0,   470,   471,     0,     0,   472,
+       0,     0,   473,     0,   474,     0,   766,   476,   477,     0,
+       0,   767,   768,   769,   770,   478,     0,     0,   479,   771,
+       0,   772,   480,   481,   482,   483,   484,   773,     0,     0,
+       0,     0,     0,     0,   486,   487,     0,   488,   489,   490,
+       0,     0,   774,     0,     0,     0,     0,   775,   776,     0,
+       0,     0,     0,   777,  1123,     0,     0,   779,   780,     0,
+       0,   781,   782,   139,     0,   672,   141,   142,   143,   144,
+    1709,     0,   145,     0,     0,     0,  1710,     0,     0,   673,
+       0,   148,   149,   150,   151,   152,   674,   154,     0,   155,
+       0,     0,   675,   156,   676,   677,   678,   157,   679,     0,
      158,   159,   160,     0,   161,     0,   162,   163,     0,     0,
-     164,   677,   678,   165,   166,     0,   167,   679,   680,   169,
-     170,     0,   171,   172,   173,   174,   175,   681,   177,     0,
-     682,   179,   683,   684,   685,   686,   687,   688,     0,   186,
+     164,   680,   681,   165,   166,     0,   167,   682,   683,   169,
+     170,     0,   171,   172,   173,   174,   175,   684,   177,     0,
+     685,   179,   686,   687,   688,   689,   690,   691,     0,   186,
      187,   188,   189,   190,   191,   192,   193,     0,   194,   195,
-       0,   196,   197,   198,   689,   200,     0,   201,   690,   691,
-     202,     0,     0,   203,   692,   693,     0,   204,   694,   695,
-       0,   205,   206,   207,   696,   697,   698,     0,     0,     0,
-       0,   699,   210,   700,     0,     0,   701,   211,     0,   212,
+       0,   196,   197,   198,   692,   200,     0,   201,   693,   694,
+     202,     0,     0,   203,   695,   696,     0,   204,   697,   698,
+       0,   205,   206,   207,   699,   700,   701,     0,     0,     0,
+       0,   702,   210,   703,     0,     0,   704,   211,     0,   212,
        0,     0,     0,   213,     0,   214,   215,   216,   217,     0,
        0,     0,   218,     0,     0,   219,   220,   221,     0,     0,
        0,   222,     0,   223,   224,     0,   225,   226,   227,     0,
        0,   228,   229,     0,   230,   231,   232,   233,   234,   235,
-     702,     0,   236,   237,   238,   703,   704,   239,   240,     0,
-     241,   242,   243,   705,     0,   244,     0,     0,     0,   245,
-       0,   246,     0,   247,     0,   248,   249,   706,   251,   707,
-     253,     0,   254,     0,   708,     0,   255,   256,   257,     0,
-     258,   709,   710,     0,   259,   260,     0,     0,     0,   711,
-     262,   263,   264,   712,     0,   265,   266,   267,     0,   268,
-       0,   269,     0,     0,     0,   713,   270,   271,   714,     0,
+     705,     0,   236,   237,   238,   706,   707,   239,   240,     0,
+     241,   242,   243,   708,     0,   244,     0,     0,     0,   245,
+       0,   246,     0,   247,     0,   248,   249,   709,   251,   710,
+     253,     0,   254,     0,   711,     0,   255,   256,   257,     0,
+     258,   712,   713,     0,   259,   260,     0,     0,     0,   714,
+     262,   263,   264,   715,     0,   265,   266,   267,     0,   268,
+       0,   269,     0,     0,     0,   716,   270,   271,   717,     0,
        0,   272,     0,   273,   274,     0,   275,   276,     0,     0,
-       0,   277,     0,     0,   278,   279,   715,     0,     0,   281,
-       0,   716,   282,   283,     0,     0,     0,     0,     0,   717,
+       0,   277,     0,     0,   278,   279,   718,     0,     0,   281,
+       0,   719,   282,   283,     0,     0,     0,     0,     0,   720,
      285,     0,   286,     0,   287,     0,   288,   289,     0,     0,
-     718,     0,     0,     0,     0,   290,   291,   292,   293,   294,
+     721,     0,     0,     0,     0,   290,   291,   292,   293,   294,
      295,   296,   297,   298,   299,   300,   301,   302,     0,   303,
-     304,   305,   719,   306,   307,   308,   309,   720,   310,   311,
-       0,     0,     0,     0,   312,   313,   314,   315,   721,   317,
-       0,     0,   722,   319,   723,   320,     0,   321,   724,   725,
-     726,   727,   728,   326,   327,   328,   329,   330,     0,   729,
-     331,   332,     0,     0,   333,   334,   335,   336,   730,     0,
-     732,   337,   338,     0,   733,   734,     0,   339,   340,   735,
-       0,   342,   343,   344,   345,     0,   346,   347,     0,     0,
-       0,     0,     0,     0,     0,     0,   348,   349,   350,     0,
-     736,   351,     0,   352,   353,   354,   355,   737,   357,   358,
-     359,   360,   738,   739,   363,   740,     0,   364,   365,   366,
-       0,   367,     0,   368,   369,   370,   371,   372,     0,   741,
-     374,   375,     0,     0,   376,     0,     0,     0,   377,   378,
-     379,   380,   381,     0,     0,   382,   383,   384,   385,   386,
-       0,   387,   388,     0,   389,   390,   391,   742,   743,   392,
-       0,   393,     0,   394,   395,     0,   396,   397,     0,     0,
-     744,   398,   399,   400,   401,   402,   745,   404,   405,   406,
-     407,     0,   746,   409,     0,     0,     0,   410,   411,   412,
-     413,     0,     0,     0,   414,     0,     0,     0,   415,     0,
-     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
-     425,     0,     0,     0,     0,     0,     0,   426,   427,     0,
-     428,     0,     0,   429,     0,     0,   430,   431,   432,   747,
-     748,   433,   434,     0,   435,   436,   749,   438,   439,   440,
-     750,   751,   441,   442,   443,   444,   752,   445,   446,     0,
-     447,     0,   448,   449,   450,   451,     0,   753,   452,   453,
-       0,   754,   755,   756,   757,     0,     0,     0,     0,     0,
-     458,   459,   460,     0,   758,   759,   760,   462,   463,   464,
-     761,   465,   466,   762,   467,   468,     0,   469,   470,     0,
-       0,   471,     0,     0,   472,     0,   473,     0,   763,   475,
-     476,     0,     0,   764,   765,   766,   767,   477,     0,     0,
-     478,   768,     0,   769,   479,   480,   481,   482,   483,   770,
-       0,     0,     0,     0,     0,     0,   485,   486,     0,   487,
-     488,   489,     0,     0,   771,     0,     0,     0,     0,   772,
-     773,     0,     0,     0,     0,   774,   775,     0,     0,   776,
-     777,     0,     0,   778,   779,   139,     0,   669,   141,   142,
-     143,   144,     0,     0,   145,     0,     0,     0,   146,     0,
-       0,   670,     0,   148,   149,   150,   151,   152,   671,   154,
-       0,   155,     0,     0,   672,   156,   673,   674,   675,   157,
-     676,     0,   158,   159,   160,     0,   161,     0,   162,   163,
-       0,     0,   164,   677,   678,   165,   166,     0,   167,   679,
-     680,   169,   170,     0,   171,   172,   173,   174,   175,   681,
-     177,     0,   682,   179,   683,   684,   685,   686,   687,   688,
-       0,   186,   187,   188,   189,   190,   191,   192,   193,     0,
-     194,   195,     0,   196,   197,   198,   689,   200,     0,   201,
-     690,   691,   202,     0,     0,   203,   692,   693,     0,   204,
-     694,   695,     0,   205,   206,   207,   696,   697,   698,     0,
-       0,     0,     0,   699,   210,   700,     0,     0,   701,   211,
-       0,   212,     0,     0,     0,   213,     0,   214,   215,   216,
-     217,     0,     0,     0,   218,     0,     0,   219,   220,   221,
-       0,     0,     0,   222,     0,   223,   224,     0,   225,   226,
-     227,     0,     0,   228,   229,     0,   230,   231,   232,   233,
-     234,   235,   702,     0,   236,   237,   238,   703,   704,   239,
-     240,     0,   241,   242,   243,   705,     0,   244,     0,     0,
-       0,   245,     0,   246,     0,   247,     0,   248,   249,   706,
-     251,   707,   253,     0,   254,     0,   708,     0,   255,   256,
-     257,     0,   258,   709,   710,     0,   259,   260,     0,     0,
-       0,   711,   262,   263,   264,   712,     0,   265,   266,   267,
-       0,   268,     0,   269,     0,     0,     0,   713,   270,   271,
-     714,     0,     0,   272,     0,   273,   274,     0,   275,   276,
-       0,     0,     0,   277,     0,     0,   278,   279,   715,     0,
-       0,   281,     0,   716,   282,   283,     0,     0,     0,     0,
-       0,   717,   285,     0,   286,     0,   287,     0,   288,   289,
-       0,     0,   718,     0,     0,     0,     0,   290,   291,   292,
-     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
-       0,   303,   304,   305,   719,   306,   307,   308,   309,   720,
-     310,   311,     0,     0,     0,     0,   312,   313,   314,   315,
-     721,   317,     0,     0,   722,   319,   723,   320,     0,   321,
-     724,   725,   726,   727,   728,   326,   327,   328,   329,   330,
-       0,   729,   331,   332,     0,     0,   333,   334,   335,   336,
-     730,   731,   732,   337,   338,     0,   733,   734,     0,   339,
-     340,   735,     0,   342,   343,   344,   345,     0,   346,   347,
-       0,     0,     0,     0,     0,     0,     0,     0,   348,   349,
-     350,     0,   736,   351,     0,   352,   353,   354,   355,   737,
-     357,   358,   359,   360,   738,   739,   363,   740,     0,   364,
-     365,   366,     0,   367,     0,   368,   369,   370,   371,   372,
-       0,   741,   374,   375,     0,     0,   376,     0,     0,     0,
-     377,   378,   379,   380,   381,     0,     0,   382,   383,   384,
-     385,   386,     0,   387,   388,     0,   389,   390,   391,   742,
-     743,   392,     0,   393,     0,   394,   395,     0,   396,   397,
-       0,     0,   744,   398,   399,   400,   401,   402,   745,   404,
-     405,   406,   407,     0,   746,   409,     0,     0,     0,   410,
-     411,   412,   413,     0,     0,     0,   414,     0,     0,     0,
-     415,     0,   416,   417,   418,   419,     0,   420,   421,   422,
-     423,   424,   425,     0,     0,     0,     0,     0,     0,   426,
-     427,     0,   428,     0,     0,   429,     0,     0,   430,   431,
-     432,   747,   748,   433,   434,     0,   435,   436,   749,   438,
-     439,   440,   750,   751,   441,   442,   443,   444,   752,   445,
-     446,     0,   447,     0,   448,   449,   450,   451,     0,   753,
-     452,   453,     0,   754,   755,   756,   757,     0,     0,     0,
-       0,     0,   458,   459,   460,     0,   758,   759,   760,   462,
-     463,   464,   761,   465,   466,   762,   467,   468,     0,   469,
-     470,     0,     0,   471,     0,     0,   472,     0,   473,     0,
-    1781,   475,   476,     0,     0,   764,   765,   766,   767,   477,
-       0,     0,   478,   768,     0,   769,   479,   480,   481,   482,
-     483,   770,     0,     0,     0,     0,     0,     0,   485,   486,
-       0,   487,   488,   489,     0,     0,   771,     0,     0,     0,
-       0,   772,   773,     0,     0,     0,     0,   774,   775,     0,
-       0,   776,   777,     0,     0,   778,   779,   139,     0,   669,
-     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
-     146,     0,     0,   670,     0,   148,   149,   150,   151,   152,
-     671,   154,     0,   155,     0,     0,   672,   156,   673,   674,
-     675,   157,   676,     0,   158,   159,   160,     0,   161,     0,
-     162,   163,     0,     0,   164,   677,   678,   165,   166,     0,
-     167,   679,   680,   169,   170,     0,   171,   172,   173,   174,
-     175,   681,   177,     0,   682,   179,   683,   684,   685,   686,
-     687,   688,     0,   186,   187,   188,   189,   190,   191,   192,
-     193,     0,   194,   195,     0,   196,   197,   198,   689,   200,
-       0,   201,   690,   691,   202,     0,     0,   203,   692,   693,
-       0,   204,   694,   695,     0,   205,   206,   207,   696,   697,
-     698,     0,     0,     0,     0,   699,   210,   700,     0,     0,
-     701,   211,     0,   212,     0,     0,     0,   213,     0,   214,
-     215,   216,   217,     0,     0,     0,   218,     0,     0,   219,
-     220,   221,     0,     0,     0,   222,     0,   223,   224,     0,
-     225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
-     232,   233,   234,   235,   702,     0,   236,   237,   238,   703,
-     704,   239,   240,     0,   241,   242,   243,   705,     0,   244,
-       0,     0,     0,   245,     0,   246,     0,   247,     0,   248,
-     249,   706,   251,   707,   253,     0,   254,     0,   708,     0,
-     255,   256,   257,     0,   258,   709,   710,     0,   259,   260,
-       0,     0,     0,   711,   262,   263,   264,   712,     0,   265,
-     266,   267,     0,   268,     0,   269,     0,     0,     0,   713,
-     270,   271,  2604,     0,     0,   272,     0,   273,   274,     0,
-     275,   276,     0,     0,     0,   277,     0,     0,   278,   279,
-     715,     0,     0,   281,     0,   716,   282,   283,     0,     0,
-       0,     0,     0,   717,   285,     0,   286,     0,   287,     0,
-     288,   289,     0,     0,   718,     0,     0,     0,     0,   290,
-     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
-     301,   302,     0,   303,   304,   305,   719,   306,   307,   308,
-     309,   720,   310,   311,     0,     0,     0,     0,   312,   313,
-     314,   315,   721,   317,     0,     0,   722,   319,   723,   320,
-       0,   321,   724,   725,   726,   727,   728,   326,   327,   328,
-     329,   330,     0,   729,   331,   332,     0,     0,   333,   334,
-     335,   336,   730,   731,   732,   337,   338,     0,   733,   734,
-       0,   339,   340,   735,     0,   342,   343,   344,   345,     0,
-     346,   347,     0,     0,     0,     0,     0,     0,     0,     0,
-     348,   349,   350,     0,   736,   351,     0,   352,   353,   354,
-     355,   737,   357,   358,   359,   360,   738,   739,   363,   740,
-       0,   364,   365,   366,     0,   367,     0,   368,   369,   370,
-     371,   372,     0,   741,   374,   375,     0,     0,   376,     0,
-       0,     0,   377,   378,   379,   380,   381,     0,     0,   382,
-     383,   384,   385,   386,     0,   387,   388,     0,   389,   390,
-     391,   742,   743,   392,     0,   393,     0,   394,   395,     0,
-     396,   397,     0,     0,   744,   398,   399,   400,   401,   402,
-     745,   404,   405,   406,   407,     0,   746,   409,     0,     0,
-       0,   410,   411,   412,   413,     0,     0,     0,   414,     0,
-       0,     0,   415,     0,   416,   417,   418,   419,     0,   420,
-     421,   422,   423,   424,   425,     0,     0,     0,     0,     0,
-       0,   426,   427,     0,   428,     0,     0,   429,     0,     0,
-     430,   431,   432,   747,   748,   433,   434,     0,   435,   436,
-     749,   438,   439,   440,   750,   751,   441,   442,   443,   444,
-     752,   445,   446,     0,   447,     0,   448,   449,   450,   451,
-       0,   753,   452,   453,     0,   754,   755,   756,   757,     0,
-       0,     0,     0,     0,   458,   459,   460,     0,   758,   759,
-     760,   462,   463,   464,   761,   465,   466,   762,   467,   468,
-       0,   469,   470,     0,     0,   471,     0,     0,   472,     0,
-     473,     0,   763,   475,   476,     0,     0,   764,   765,   766,
-     767,   477,     0,     0,   478,   768,     0,   769,   479,   480,
-     481,   482,   483,   770,     0,     0,     0,     0,     0,     0,
-     485,   486,     0,   487,   488,   489,     0,     0,   771,     0,
-       0,     0,     0,   772,   773,     0,     0,     0,     0,   774,
-     775,     0,     0,   776,   777,     0,     0,   778,   779,   139,
-       0,   669,   141,   142,   143,   144,     0,     0,   145,     0,
-       0,     0,   146,     0,     0,   670,     0,   148,   149,   150,
-     151,   152,   671,   154,     0,   155,     0,     0,   672,   156,
-     673,   674,   675,   157,   676,     0,   158,   159,   160,     0,
-     161,     0,   162,   163,     0,     0,   164,   677,   678,   165,
-     166,     0,   167,   679,   680,   169,   170,     0,   171,   172,
-     173,   174,   175,   681,   177,     0,   682,   179,   683,   684,
-     685,   686,   687,   688,     0,   186,   187,   188,   189,   190,
+     304,   305,   722,   306,   307,   308,   309,   723,   310,   311,
+       0,     0,     0,     0,   312,   313,   314,   315,   724,   317,
+       0,     0,   725,   319,   726,   320,     0,   321,   727,   728,
+     729,   730,   731,   326,   327,   328,   329,   330,   331,     0,
+     732,   332,   333,     0,     0,   334,   335,   336,   337,   733,
+       0,   735,   338,   339,     0,   736,   737,     0,   340,   341,
+     738,     0,   343,   344,   345,   346,     0,   347,   348,     0,
+       0,     0,     0,     0,     0,     0,     0,   349,   350,   351,
+       0,   739,   352,     0,   353,   354,   355,   356,   740,   358,
+     359,   360,   361,   741,   742,   364,   743,     0,   365,   366,
+     367,     0,   368,     0,   369,   370,   371,   372,   373,     0,
+     744,   375,   376,     0,     0,   377,     0,     0,     0,   378,
+     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
+     387,     0,   388,   389,     0,   390,   391,   392,   745,   746,
+     393,     0,   394,     0,   395,   396,     0,   397,   398,     0,
+       0,   747,   399,   400,   401,   402,   403,   748,   405,   406,
+     407,   408,     0,   749,   410,     0,     0,     0,   411,   412,
+     413,   414,     0,     0,     0,   415,     0,     0,     0,   416,
+       0,   417,   418,   419,   420,     0,   421,   422,   423,   424,
+     425,   426,     0,     0,     0,     0,     0,     0,   427,   428,
+       0,   429,     0,     0,   430,     0,     0,   431,   432,   433,
+     750,   751,   434,   435,     0,   436,   437,   752,   439,   440,
+     441,   753,   754,   442,   443,   444,   445,   755,   446,   447,
+       0,   448,     0,   449,   450,   451,   452,     0,   756,   453,
+     454,     0,   757,   758,   759,   760,     0,     0,     0,     0,
+       0,   459,   460,   461,     0,   761,   762,   763,   463,   464,
+     465,   764,   466,   467,   765,   468,   469,     0,   470,   471,
+       0,     0,   472,     0,     0,   473,     0,   474,     0,   766,
+     476,   477,     0,     0,   767,   768,   769,   770,   478,     0,
+       0,   479,   771,     0,   772,   480,   481,   482,   483,   484,
+     773,     0,     0,     0,     0,     0,     0,   486,   487,     0,
+     488,   489,   490,     0,     0,   774,     0,     0,     0,     0,
+     775,   776,     0,     0,     0,     0,   777,   778,     0,     0,
+     779,   780,     0,     0,   781,   782,   139,     0,   672,   141,
+     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
+       0,     0,   673,     0,   148,   149,   150,   151,   152,   674,
+     154,     0,   155,     0,     0,   675,   156,   676,   677,   678,
+     157,   679,     0,   158,   159,   160,     0,   161,     0,   162,
+     163,     0,     0,   164,   680,   681,   165,   166,     0,   167,
+     682,   683,   169,   170,     0,   171,   172,   173,   174,   175,
+     684,   177,     0,   685,   179,   686,   687,   688,   689,   690,
+     691,     0,   186,   187,   188,   189,   190,   191,   192,   193,
+       0,   194,   195,     0,   196,   197,   198,   692,   200,     0,
+     201,   693,   694,   202,     0,     0,   203,   695,   696,     0,
+     204,   697,   698,     0,   205,   206,   207,   699,   700,   701,
+       0,     0,     0,     0,   702,   210,   703,     0,     0,   704,
+     211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
+     216,   217,     0,     0,     0,   218,     0,     0,   219,   220,
+     221,     0,     0,     0,   222,     0,   223,   224,     0,   225,
+     226,   227,     0,     0,   228,   229,     0,   230,   231,   232,
+     233,   234,   235,   705,     0,   236,   237,   238,   706,   707,
+     239,   240,     0,   241,   242,   243,   708,     0,   244,     0,
+       0,     0,   245,     0,   246,     0,   247,     0,   248,   249,
+     709,   251,   710,   253,     0,   254,     0,   711,     0,   255,
+     256,   257,     0,   258,   712,   713,     0,   259,   260,     0,
+       0,     0,   714,   262,   263,   264,   715,     0,   265,   266,
+     267,     0,   268,     0,   269,     0,     0,     0,   716,   270,
+     271,   717,     0,     0,   272,     0,   273,   274,     0,   275,
+     276,     0,     0,     0,   277,     0,     0,   278,   279,   718,
+       0,     0,   281,     0,   719,   282,   283,     0,     0,     0,
+       0,     0,   720,   285,     0,   286,     0,   287,     0,   288,
+     289,     0,     0,   721,     0,     0,     0,     0,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
+     302,     0,   303,   304,   305,   722,   306,   307,   308,   309,
+     723,   310,   311,     0,     0,     0,     0,   312,   313,   314,
+     315,   724,   317,     0,     0,   725,   319,   726,   320,     0,
+     321,   727,   728,   729,   730,   731,   326,   327,   328,   329,
+     330,   331,     0,   732,   332,   333,     0,     0,   334,   335,
+     336,   337,   733,   734,   735,   338,   339,     0,   736,   737,
+       0,   340,   341,   738,     0,   343,   344,   345,   346,     0,
+     347,   348,     0,     0,     0,     0,     0,     0,     0,     0,
+     349,   350,   351,     0,   739,   352,     0,   353,   354,   355,
+     356,   740,   358,   359,   360,   361,   741,   742,   364,   743,
+       0,   365,   366,   367,     0,   368,     0,   369,   370,   371,
+     372,   373,     0,   744,   375,   376,     0,     0,   377,     0,
+       0,     0,   378,   379,   380,   381,   382,     0,     0,   383,
+     384,   385,   386,   387,     0,   388,   389,     0,   390,   391,
+     392,   745,   746,   393,     0,   394,     0,   395,   396,     0,
+     397,   398,     0,     0,   747,   399,   400,   401,   402,   403,
+     748,   405,   406,   407,   408,     0,   749,   410,     0,     0,
+       0,   411,   412,   413,   414,     0,     0,     0,   415,     0,
+       0,     0,   416,     0,   417,   418,   419,   420,     0,   421,
+     422,   423,   424,   425,   426,     0,     0,     0,     0,     0,
+       0,   427,   428,     0,   429,     0,     0,   430,     0,     0,
+     431,   432,   433,   750,   751,   434,   435,     0,   436,   437,
+     752,   439,   440,   441,   753,   754,   442,   443,   444,   445,
+     755,   446,   447,     0,   448,     0,   449,   450,   451,   452,
+       0,   756,   453,   454,     0,   757,   758,   759,   760,     0,
+       0,     0,     0,     0,   459,   460,   461,     0,   761,   762,
+     763,   463,   464,   465,   764,   466,   467,   765,   468,   469,
+       0,   470,   471,     0,     0,   472,     0,     0,   473,     0,
+     474,     0,  1784,   476,   477,     0,     0,   767,   768,   769,
+     770,   478,     0,     0,   479,   771,     0,   772,   480,   481,
+     482,   483,   484,   773,     0,     0,     0,     0,     0,     0,
+     486,   487,     0,   488,   489,   490,     0,     0,   774,     0,
+       0,     0,     0,   775,   776,     0,     0,     0,     0,   777,
+     778,     0,     0,   779,   780,     0,     0,   781,   782,   139,
+       0,   672,   141,   142,   143,   144,     0,     0,   145,     0,
+       0,     0,   146,     0,     0,   673,     0,   148,   149,   150,
+     151,   152,   674,   154,     0,   155,     0,     0,   675,   156,
+     676,   677,   678,   157,   679,     0,   158,   159,   160,     0,
+     161,     0,   162,   163,     0,     0,   164,   680,   681,   165,
+     166,     0,   167,   682,   683,   169,   170,     0,   171,   172,
+     173,   174,   175,   684,   177,     0,   685,   179,   686,   687,
+     688,   689,   690,   691,     0,   186,   187,   188,   189,   190,
      191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
-     689,   200,     0,   201,   690,   691,   202,     0,     0,   203,
-     692,   693,     0,   204,   694,   695,     0,   205,   206,   207,
-     696,   697,   698,     0,     0,     0,     0,   699,   210,   700,
-       0,     0,   701,   211,     0,   212,     0,     0,     0,   213,
+     692,   200,     0,   201,   693,   694,   202,     0,     0,   203,
+     695,   696,     0,   204,   697,   698,     0,   205,   206,   207,
+     699,   700,   701,     0,     0,     0,     0,   702,   210,   703,
+       0,     0,   704,   211,     0,   212,     0,     0,     0,   213,
        0,   214,   215,   216,   217,     0,     0,     0,   218,     0,
        0,   219,   220,   221,     0,     0,     0,   222,     0,   223,
      224,     0,   225,   226,   227,     0,     0,   228,   229,     0,
-     230,   231,   232,   233,   234,   235,   702,     0,   236,   237,
-     238,   703,   704,   239,   240,     0,   241,   242,   243,   705,
+     230,   231,   232,   233,   234,   235,   705,     0,   236,   237,
+     238,   706,   707,   239,   240,     0,   241,   242,   243,   708,
        0,   244,     0,     0,     0,   245,     0,   246,     0,   247,
-       0,   248,   249,   706,   251,   707,   253,     0,   254,     0,
-     708,     0,   255,   256,   257,     0,   258,   709,   710,     0,
-     259,   260,     0,     0,     0,   711,   262,   263,   264,   712,
+       0,   248,   249,   709,   251,   710,   253,     0,   254,     0,
+     711,     0,   255,   256,   257,     0,   258,   712,   713,     0,
+     259,   260,     0,     0,     0,   714,   262,   263,   264,   715,
        0,   265,   266,   267,     0,   268,     0,   269,     0,     0,
-       0,   713,   270,   271,  2658,     0,     0,   272,     0,   273,
+       0,   716,   270,   271,  2608,     0,     0,   272,     0,   273,
      274,     0,   275,   276,     0,     0,     0,   277,     0,     0,
-     278,   279,   715,     0,     0,   281,     0,   716,   282,   283,
-       0,     0,     0,     0,     0,   717,   285,     0,   286,     0,
-     287,     0,   288,   289,     0,     0,   718,     0,     0,     0,
+     278,   279,   718,     0,     0,   281,     0,   719,   282,   283,
+       0,     0,     0,     0,     0,   720,   285,     0,   286,     0,
+     287,     0,   288,   289,     0,     0,   721,     0,     0,     0,
        0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
-     299,   300,   301,   302,     0,   303,   304,   305,   719,   306,
-     307,   308,   309,   720,   310,   311,     0,     0,     0,     0,
-     312,   313,   314,   315,   721,   317,     0,     0,   722,   319,
-     723,   320,     0,   321,   724,   725,   726,   727,   728,   326,
-     327,   328,   329,   330,     0,   729,   331,   332,     0,     0,
-     333,   334,   335,   336,   730,   731,   732,   337,   338,     0,
-     733,   734,     0,   339,   340,   735,     0,   342,   343,   344,
-     345,     0,   346,   347,     0,     0,     0,     0,     0,     0,
-       0,     0,   348,   349,   350,     0,   736,   351,     0,   352,
-     353,   354,   355,   737,   357,   358,   359,   360,   738,   739,
-     363,   740,     0,   364,   365,   366,     0,   367,     0,   368,
-     369,   370,   371,   372,     0,   741,   374,   375,     0,     0,
-     376,     0,     0,     0,   377,   378,   379,   380,   381,     0,
-       0,   382,   383,   384,   385,   386,     0,   387,   388,     0,
-     389,   390,   391,   742,   743,   392,     0,   393,     0,   394,
-     395,     0,   396,   397,     0,     0,   744,   398,   399,   400,
-     401,   402,   745,   404,   405,   406,   407,     0,   746,   409,
-       0,     0,     0,   410,   411,   412,   413,     0,     0,     0,
-     414,     0,     0,     0,   415,     0,   416,   417,   418,   419,
-       0,   420,   421,   422,   423,   424,   425,     0,     0,     0,
-       0,     0,     0,   426,   427,     0,   428,     0,     0,   429,
-       0,     0,   430,   431,   432,   747,   748,   433,   434,     0,
-     435,   436,   749,   438,   439,   440,   750,   751,   441,   442,
-     443,   444,   752,   445,   446,     0,   447,     0,   448,   449,
-     450,   451,     0,   753,   452,   453,     0,   754,   755,   756,
-     757,     0,     0,     0,     0,     0,   458,   459,   460,     0,
-     758,   759,   760,   462,   463,   464,   761,   465,   466,   762,
-     467,   468,     0,   469,   470,     0,     0,   471,     0,     0,
-     472,     0,   473,     0,   763,   475,   476,     0,     0,   764,
-     765,   766,   767,   477,     0,     0,   478,   768,     0,   769,
-     479,   480,   481,   482,   483,   770,     0,     0,     0,     0,
-       0,     0,   485,   486,     0,   487,   488,   489,     0,     0,
-     771,     0,     0,     0,     0,   772,   773,     0,     0,     0,
-       0,   774,   775,     0,     0,   776,   777,     0,     0,   778,
-     779,   139,     0,   669,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   670,     0,   148,
-     149,   150,   151,   152,   671,   154,     0,   155,     0,     0,
-     672,   156,   673,   674,   675,   157,   676,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,   677,
-     678,   165,   166,     0,   167,   679,   680,   169,   170,     0,
-     171,   172,   173,   174,   175,   681,   177,     0,   682,   179,
-     683,   684,   685,   686,   687,   688,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   689,   200,     0,   201,   690,   691,   202,     0,
-       0,   203,   692,   693,     0,   204,   694,   695,     0,   205,
-     206,   207,   696,   697,   698,     0,     0,     0,     0,   699,
-     210,   700,     0,     0,  3417,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,   702,     0,
-     236,   237,   238,   703,   704,   239,   240,     0,   241,   242,
-     243,   705,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   706,   251,   707,   253,     0,
-     254,     0,   708,     0,   255,   256,   257,     0,   258,   709,
-     710,     0,   259,   260,     0,     0,     0,   711,   262,   263,
-     264,   712,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,   713,   270,   271,   714,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   715,     0,     0,   281,     0,   716,
-     282,   283,     0,     0,     0,     0,     0,   717,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,   718,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-     719,   306,   307,   308,   309,   720,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   721,   317,     0,     0,
-     722,   319,   723,   320,     0,   321,   724,   725,   726,   727,
-     728,   326,   327,   328,   329,   330,     0,   729,   331,   332,
-       0,     0,   333,   334,   335,   336,   730,   731,   732,   337,
-     338,     0,   733,   734,     0,   339,   340,   735,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,   736,   351,
-       0,   352,   353,   354,   355,   737,   357,   358,   359,   360,
-     738,   739,   363,   740,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   741,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,   742,   743,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,   744,   398,
-     399,   400,   401,   402,   745,   404,   405,   406,   407,     0,
-     746,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,   747,   748,   433,
-     434,     0,   435,   436,   749,   438,   439,   440,   750,   751,
-     441,   442,   443,   444,   752,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   753,   452,   453,     0,   754,
-     755,   756,   757,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,   758,   759,   760,   462,   463,   464,   761,   465,
-     466,   762,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   763,   475,   476,     0,
-       0,   764,   765,   766,   767,   477,     0,     0,   478,   768,
-       0,   769,   479,   480,   481,   482,   483,   770,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,     0,   771,     0,     0,     0,     0,   772,   773,     0,
-       0,     0,     0,   774,   775,     0,     0,   776,   777,     0,
-       0,   778,   779,   139,     0,   669,   141,   142,   143,   144,
-       0,     0,   145,     0,     0,     0,   146,     0,     0,   670,
-       0,   148,   149,   150,   151,   152,   671,   154,     0,   155,
-       0,     0,   672,   156,   673,   674,   675,   157,   676,     0,
-     158,   159,   160,     0,   161,     0,   162,   163,     0,     0,
-     164,   677,   678,   165,   166,     0,   167,   679,   680,   169,
-     170,     0,   171,   172,   173,   174,   175,   681,   177,     0,
-     682,   179,   683,   684,   685,   686,   687,   688,     0,   186,
-     187,   188,   189,   190,   191,   192,   193,     0,   194,   195,
-       0,   196,   197,   198,   689,   200,     0,   201,   690,   691,
-     202,     0,     0,   203,   692,   693,     0,   204,   694,   695,
-       0,   205,   206,   207,   696,   697,   698,     0,     0,     0,
-       0,   699,   210,   700,     0,     0,   701,   211,     0,   212,
-       0,     0,     0,   213,     0,   214,   215,   216,   217,     0,
-       0,     0,   218,     0,     0,   219,   220,   221,     0,     0,
-       0,   222,     0,   223,   224,     0,   225,   226,   227,     0,
-       0,   228,   229,     0,   230,   231,   232,   233,   234,   235,
-     702,     0,   236,   237,   238,   703,   704,   239,   240,     0,
-     241,   242,   243,   705,     0,   244,     0,     0,     0,   245,
-       0,   246,     0,   247,     0,   248,   249,   706,   251,   707,
-     253,     0,   254,     0,   708,     0,   255,   256,   257,     0,
-     258,   709,   710,     0,   259,   260,     0,     0,     0,   711,
-     262,   263,   264,   712,     0,   265,   266,   267,     0,   268,
-       0,   269,     0,     0,     0,   713,   270,   271,   714,     0,
-       0,   272,     0,   273,   274,     0,   275,   276,     0,     0,
-       0,   277,     0,     0,   278,   279,   715,     0,     0,   281,
-       0,   716,   282,   283,     0,     0,     0,     0,     0,   717,
-     285,     0,   286,     0,   287,     0,   288,   289,     0,     0,
-     718,     0,     0,     0,     0,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,   300,   301,   302,     0,   303,
-     304,   305,   719,   306,   307,   308,   309,   720,   310,   311,
-    4303,     0,     0,     0,   312,   313,   314,   315,   721,   317,
-       0,     0,   722,   319,   723,   320,     0,   321,   724,   725,
-     726,   727,   728,   326,   327,   328,   329,   330,     0,   729,
-     331,   332,     0,     0,   333,   334,   335,   336,   730,     0,
-     732,   337,   338,     0,   733,   734,     0,   339,   340,   735,
-       0,   342,   343,   344,   345,     0,   346,   347,     0,     0,
-       0,     0,     0,     0,     0,     0,   348,   349,   350,     0,
-     736,   351,     0,   352,   353,   354,   355,   737,   357,   358,
-     359,   360,   738,   739,   363,   740,     0,   364,   365,   366,
-       0,   367,     0,   368,   369,   370,   371,   372,     0,   741,
-     374,   375,     0,     0,   376,     0,     0,     0,   377,   378,
-     379,   380,   381,     0,     0,   382,   383,   384,   385,   386,
-       0,   387,   388,     0,   389,   390,   391,   742,   743,   392,
-       0,   393,     0,   394,   395,     0,   396,   397,     0,     0,
-     744,   398,   399,   400,   401,   402,   745,   404,   405,   406,
-     407,     0,   746,   409,     0,     0,     0,   410,   411,   412,
-     413,     0,     0,     0,   414,     0,     0,     0,   415,     0,
-     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
-     425,     0,     0,     0,     0,     0,     0,   426,   427,     0,
-     428,     0,     0,   429,     0,     0,   430,   431,   432,   747,
-     748,   433,   434,     0,   435,   436,   749,   438,   439,   440,
-     750,   751,   441,   442,   443,   444,   752,   445,   446,     0,
-     447,     0,   448,   449,   450,   451,     0,   753,   452,   453,
-       0,   754,   755,   756,   757,     0,     0,     0,     0,     0,
-     458,   459,   460,     0,   758,   759,   760,   462,   463,   464,
-     761,   465,   466,   762,   467,   468,     0,   469,   470,     0,
-       0,   471,     0,     0,   472,     0,   473,     0,   763,   475,
-     476,     0,     0,   764,   765,   766,   767,   477,     0,     0,
-     478,   768,     0,   769,   479,   480,   481,   482,   483,   770,
-       0,     0,     0,     0,     0,     0,   485,   486,     0,   487,
-     488,   489,     0,     0,   771,     0,     0,     0,     0,   772,
-     773,     0,     0,     0,     0,   774,   775,     0,     0,   776,
-     777,     0,     0,   778,   779,   139,     0,   669,   141,   142,
+     299,   300,   301,   302,     0,   303,   304,   305,   722,   306,
+     307,   308,   309,   723,   310,   311,     0,     0,     0,     0,
+     312,   313,   314,   315,   724,   317,     0,     0,   725,   319,
+     726,   320,     0,   321,   727,   728,   729,   730,   731,   326,
+     327,   328,   329,   330,   331,     0,   732,   332,   333,     0,
+       0,   334,   335,   336,   337,   733,   734,   735,   338,   339,
+       0,   736,   737,     0,   340,   341,   738,     0,   343,   344,
+     345,   346,     0,   347,   348,     0,     0,     0,     0,     0,
+       0,     0,     0,   349,   350,   351,     0,   739,   352,     0,
+     353,   354,   355,   356,   740,   358,   359,   360,   361,   741,
+     742,   364,   743,     0,   365,   366,   367,     0,   368,     0,
+     369,   370,   371,   372,   373,     0,   744,   375,   376,     0,
+       0,   377,     0,     0,     0,   378,   379,   380,   381,   382,
+       0,     0,   383,   384,   385,   386,   387,     0,   388,   389,
+       0,   390,   391,   392,   745,   746,   393,     0,   394,     0,
+     395,   396,     0,   397,   398,     0,     0,   747,   399,   400,
+     401,   402,   403,   748,   405,   406,   407,   408,     0,   749,
+     410,     0,     0,     0,   411,   412,   413,   414,     0,     0,
+       0,   415,     0,     0,     0,   416,     0,   417,   418,   419,
+     420,     0,   421,   422,   423,   424,   425,   426,     0,     0,
+       0,     0,     0,     0,   427,   428,     0,   429,     0,     0,
+     430,     0,     0,   431,   432,   433,   750,   751,   434,   435,
+       0,   436,   437,   752,   439,   440,   441,   753,   754,   442,
+     443,   444,   445,   755,   446,   447,     0,   448,     0,   449,
+     450,   451,   452,     0,   756,   453,   454,     0,   757,   758,
+     759,   760,     0,     0,     0,     0,     0,   459,   460,   461,
+       0,   761,   762,   763,   463,   464,   465,   764,   466,   467,
+     765,   468,   469,     0,   470,   471,     0,     0,   472,     0,
+       0,   473,     0,   474,     0,   766,   476,   477,     0,     0,
+     767,   768,   769,   770,   478,     0,     0,   479,   771,     0,
+     772,   480,   481,   482,   483,   484,   773,     0,     0,     0,
+       0,     0,     0,   486,   487,     0,   488,   489,   490,     0,
+       0,   774,     0,     0,     0,     0,   775,   776,     0,     0,
+       0,     0,   777,   778,     0,     0,   779,   780,     0,     0,
+     781,   782,   139,     0,   672,   141,   142,   143,   144,     0,
+       0,   145,     0,     0,     0,   146,     0,     0,   673,     0,
+     148,   149,   150,   151,   152,   674,   154,     0,   155,     0,
+       0,   675,   156,   676,   677,   678,   157,   679,     0,   158,
+     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
+     680,   681,   165,   166,     0,   167,   682,   683,   169,   170,
+       0,   171,   172,   173,   174,   175,   684,   177,     0,   685,
+     179,   686,   687,   688,   689,   690,   691,     0,   186,   187,
+     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
+     196,   197,   198,   692,   200,     0,   201,   693,   694,   202,
+       0,     0,   203,   695,   696,     0,   204,   697,   698,     0,
+     205,   206,   207,   699,   700,   701,     0,     0,     0,     0,
+     702,   210,   703,     0,     0,   704,   211,     0,   212,     0,
+       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
+       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
+     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
+     228,   229,     0,   230,   231,   232,   233,   234,   235,   705,
+       0,   236,   237,   238,   706,   707,   239,   240,     0,   241,
+     242,   243,   708,     0,   244,     0,     0,     0,   245,     0,
+     246,     0,   247,     0,   248,   249,   709,   251,   710,   253,
+       0,   254,     0,   711,     0,   255,   256,   257,     0,   258,
+     712,   713,     0,   259,   260,     0,     0,     0,   714,   262,
+     263,   264,   715,     0,   265,   266,   267,     0,   268,     0,
+     269,     0,     0,     0,   716,   270,   271,  2662,     0,     0,
+     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
+     277,     0,     0,   278,   279,   718,     0,     0,   281,     0,
+     719,   282,   283,     0,     0,     0,     0,     0,   720,   285,
+       0,   286,     0,   287,     0,   288,   289,     0,     0,   721,
+       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
+     305,   722,   306,   307,   308,   309,   723,   310,   311,     0,
+       0,     0,     0,   312,   313,   314,   315,   724,   317,     0,
+       0,   725,   319,   726,   320,     0,   321,   727,   728,   729,
+     730,   731,   326,   327,   328,   329,   330,   331,     0,   732,
+     332,   333,     0,     0,   334,   335,   336,   337,   733,   734,
+     735,   338,   339,     0,   736,   737,     0,   340,   341,   738,
+       0,   343,   344,   345,   346,     0,   347,   348,     0,     0,
+       0,     0,     0,     0,     0,     0,   349,   350,   351,     0,
+     739,   352,     0,   353,   354,   355,   356,   740,   358,   359,
+     360,   361,   741,   742,   364,   743,     0,   365,   366,   367,
+       0,   368,     0,   369,   370,   371,   372,   373,     0,   744,
+     375,   376,     0,     0,   377,     0,     0,     0,   378,   379,
+     380,   381,   382,     0,     0,   383,   384,   385,   386,   387,
+       0,   388,   389,     0,   390,   391,   392,   745,   746,   393,
+       0,   394,     0,   395,   396,     0,   397,   398,     0,     0,
+     747,   399,   400,   401,   402,   403,   748,   405,   406,   407,
+     408,     0,   749,   410,     0,     0,     0,   411,   412,   413,
+     414,     0,     0,     0,   415,     0,     0,     0,   416,     0,
+     417,   418,   419,   420,     0,   421,   422,   423,   424,   425,
+     426,     0,     0,     0,     0,     0,     0,   427,   428,     0,
+     429,     0,     0,   430,     0,     0,   431,   432,   433,   750,
+     751,   434,   435,     0,   436,   437,   752,   439,   440,   441,
+     753,   754,   442,   443,   444,   445,   755,   446,   447,     0,
+     448,     0,   449,   450,   451,   452,     0,   756,   453,   454,
+       0,   757,   758,   759,   760,     0,     0,     0,     0,     0,
+     459,   460,   461,     0,   761,   762,   763,   463,   464,   465,
+     764,   466,   467,   765,   468,   469,     0,   470,   471,     0,
+       0,   472,     0,     0,   473,     0,   474,     0,   766,   476,
+     477,     0,     0,   767,   768,   769,   770,   478,     0,     0,
+     479,   771,     0,   772,   480,   481,   482,   483,   484,   773,
+       0,     0,     0,     0,     0,     0,   486,   487,     0,   488,
+     489,   490,     0,     0,   774,     0,     0,     0,     0,   775,
+     776,     0,     0,     0,     0,   777,   778,     0,     0,   779,
+     780,     0,     0,   781,   782,   139,     0,   672,   141,   142,
      143,   144,     0,     0,   145,     0,     0,     0,   146,     0,
-       0,   670,     0,   148,   149,   150,   151,   152,   671,   154,
-       0,   155,     0,     0,   672,   156,   673,   674,   675,   157,
-     676,     0,   158,   159,   160,     0,   161,     0,   162,   163,
-       0,     0,   164,   677,   678,   165,   166,     0,   167,   679,
-     680,   169,   170,     0,   171,   172,   173,   174,   175,   681,
-     177,     0,   682,   179,   683,   684,   685,   686,   687,   688,
+       0,   673,     0,   148,   149,   150,   151,   152,   674,   154,
+       0,   155,     0,     0,   675,   156,   676,   677,   678,   157,
+     679,     0,   158,   159,   160,     0,   161,     0,   162,   163,
+       0,     0,   164,   680,   681,   165,   166,     0,   167,   682,
+     683,   169,   170,     0,   171,   172,   173,   174,   175,   684,
+     177,     0,   685,   179,   686,   687,   688,   689,   690,   691,
        0,   186,   187,   188,   189,   190,   191,   192,   193,     0,
-     194,   195,     0,   196,   197,   198,   689,   200,     0,   201,
-     690,   691,   202,     0,     0,   203,   692,   693,     0,   204,
-     694,   695,     0,   205,   206,   207,   696,   697,   698,     0,
-       0,     0,     0,   699,   210,   700,     0,     0,   701,   211,
+     194,   195,     0,   196,   197,   198,   692,   200,     0,   201,
+     693,   694,   202,     0,     0,   203,   695,   696,     0,   204,
+     697,   698,     0,   205,   206,   207,   699,   700,   701,     0,
+       0,     0,     0,   702,   210,   703,     0,     0,  3422,   211,
        0,   212,     0,     0,     0,   213,     0,   214,   215,   216,
      217,     0,     0,     0,   218,     0,     0,   219,   220,   221,
        0,     0,     0,   222,     0,   223,   224,     0,   225,   226,
      227,     0,     0,   228,   229,     0,   230,   231,   232,   233,
-     234,   235,   702,     0,   236,   237,   238,   703,   704,   239,
-     240,     0,   241,   242,   243,   705,     0,   244,     0,     0,
-       0,   245,     0,   246,     0,   247,     0,   248,   249,   706,
-     251,   707,   253,     0,   254,     0,   708,     0,   255,   256,
-     257,     0,   258,   709,   710,     0,   259,   260,     0,     0,
-       0,   711,   262,   263,   264,   712,     0,   265,   266,   267,
-       0,   268,     0,   269,     0,     0,     0,   713,   270,   271,
-     714,     0,     0,   272,     0,   273,   274,     0,   275,   276,
-       0,     0,     0,   277,     0,     0,   278,   279,   715,     0,
-       0,   281,     0,   716,   282,   283,     0,     0,     0,     0,
-       0,   717,   285,     0,   286,     0,   287,     0,   288,   289,
-       0,     0,   718,     0,     0,     0,     0,   290,   291,   292,
+     234,   235,   705,     0,   236,   237,   238,   706,   707,   239,
+     240,     0,   241,   242,   243,   708,     0,   244,     0,     0,
+       0,   245,     0,   246,     0,   247,     0,   248,   249,   709,
+     251,   710,   253,     0,   254,     0,   711,     0,   255,   256,
+     257,     0,   258,   712,   713,     0,   259,   260,     0,     0,
+       0,   714,   262,   263,   264,   715,     0,   265,   266,   267,
+       0,   268,     0,   269,     0,     0,     0,   716,   270,   271,
+     717,     0,     0,   272,     0,   273,   274,     0,   275,   276,
+       0,     0,     0,   277,     0,     0,   278,   279,   718,     0,
+       0,   281,     0,   719,   282,   283,     0,     0,     0,     0,
+       0,   720,   285,     0,   286,     0,   287,     0,   288,   289,
+       0,     0,   721,     0,     0,     0,     0,   290,   291,   292,
      293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
-       0,   303,   304,   305,   719,   306,   307,   308,   309,   720,
+       0,   303,   304,   305,   722,   306,   307,   308,   309,   723,
      310,   311,     0,     0,     0,     0,   312,   313,   314,   315,
-     721,   317,     0,     0,   722,   319,   723,   320,     0,   321,
-     724,   725,   726,   727,   728,   326,   327,   328,   329,   330,
-       0,   729,   331,   332,     0,     0,   333,   334,   335,   336,
-     730,     0,   732,   337,   338,     0,   733,   734,     0,   339,
-     340,   735,     0,   342,   343,   344,   345,     0,   346,   347,
-       0,     0,     0,     0,     0,     0,     0,     0,   348,   349,
-     350,     0,   736,   351,     0,   352,   353,   354,   355,   737,
-     357,   358,   359,   360,   738,   739,   363,   740,     0,   364,
-     365,   366,     0,   367,     0,   368,   369,   370,   371,   372,
-       0,   741,   374,   375,     0,     0,   376,     0,     0,     0,
-     377,   378,   379,   380,   381,     0,     0,   382,   383,   384,
-     385,   386,     0,   387,   388,     0,   389,   390,   391,   742,
-     743,   392,     0,   393,     0,   394,   395,     0,   396,   397,
-       0,     0,   744,   398,   399,   400,   401,   402,   745,   404,
-     405,   406,   407,     0,   746,   409,     0,     0,     0,   410,
-     411,   412,   413,     0,     0,     0,   414,     0,     0,     0,
-     415,     0,   416,   417,   418,   419,     0,   420,   421,   422,
-     423,   424,   425,     0,     0,     0,     0,     0,     0,   426,
-     427,     0,   428,     0,     0,   429,     0,     0,   430,   431,
-     432,   747,   748,   433,   434,     0,   435,   436,   749,   438,
-     439,   440,   750,   751,   441,   442,   443,   444,   752,   445,
-     446,     0,   447,     0,   448,   449,   450,   451,     0,   753,
-     452,   453,     0,   754,   755,   756,   757,     0,     0,     0,
-       0,     0,   458,   459,   460,     0,   758,   759,   760,   462,
-     463,   464,   761,   465,   466,   762,   467,   468,     0,   469,
-     470,     0,     0,   471,     0,     0,   472,     0,   473,     0,
-     763,   475,   476,     0,     0,   764,   765,   766,   767,   477,
-       0,     0,   478,   768,     0,   769,   479,   480,   481,   482,
-     483,   770,     0,     0,     0,     0,     0,     0,   485,   486,
-       0,   487,   488,   489,     0,     0,   771,     0,     0,     0,
-       0,   772,   773,     0,     0,     0,     0,   774,   775,     0,
-       0,   776,   777,     0,     0,   778,   779,   139,     0,   669,
-     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
-     146,     0,     0,   670,     0,   148,   149,   150,   151,   152,
-     671,   154,     0,   155,     0,     0,   672,   156,   673,   674,
-     675,   157,   676,     0,   158,   159,   160,     0,   161,     0,
-     162,   163,     0,     0,   164,   677,   678,   165,   166,     0,
-     167,   679,   680,   169,   170,     0,   171,   172,   173,   174,
-     175,   681,   177,     0,   682,   179,   683,   684,   685,   686,
-     687,   688,     0,   186,   187,   188,   189,   190,   191,   192,
-     193,     0,   194,   195,     0,   196,   197,   198,   689,   200,
-       0,   201,   690,   691,   202,     0,     0,   203,   692,   693,
-       0,   204,   694,   695,     0,   205,   206,   207,   696,   697,
-     698,     0,     0,     0,     0,   699,   210,   700,     0,     0,
-     701,   211,     0,   212,     0,     0,     0,   213,     0,   214,
-     215,   216,   217,     0,     0,     0,   218,     0,     0,   219,
-     220,   221,     0,     0,     0,   222,     0,   223,   224,     0,
-     225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
-     232,   233,   234,   235,   702,     0,   236,   237,   238,   703,
-     704,   239,   240,     0,   241,   242,   243,   705,     0,   244,
-       0,     0,     0,   245,     0,   246,     0,   247,     0,   248,
-     249,   706,   251,   707,   253,     0,   254,     0,   708,     0,
-     255,   256,   257,     0,   258,   709,   710,     0,   259,   260,
-       0,     0,     0,   711,   262,   263,   264,   712,     0,   265,
-     266,   267,     0,   268,     0,   269,     0,     0,     0,   713,
-     270,   271,  1721,     0,     0,   272,     0,   273,   274,     0,
-     275,   276,     0,     0,     0,   277,     0,     0,   278,   279,
-     715,     0,     0,   281,     0,   716,   282,   283,     0,     0,
-       0,     0,     0,   717,   285,     0,   286,     0,   287,     0,
-     288,   289,     0,     0,   718,     0,     0,     0,     0,   290,
-     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
-     301,   302,     0,   303,   304,   305,   719,   306,   307,   308,
-     309,   720,   310,   311,     0,     0,     0,     0,   312,   313,
-     314,   315,   721,   317,     0,     0,   722,   319,   723,   320,
-       0,   321,   724,   725,   726,   727,   728,   326,   327,   328,
-     329,   330,     0,   729,   331,   332,     0,     0,   333,   334,
-     335,   336,   730,     0,   732,   337,   338,     0,   733,   734,
-       0,   339,   340,   735,     0,   342,   343,   344,   345,     0,
-     346,   347,     0,     0,     0,     0,     0,     0,     0,     0,
-     348,   349,   350,     0,   736,   351,     0,   352,   353,   354,
-     355,   737,   357,   358,   359,   360,   738,   739,   363,   740,
-       0,   364,   365,   366,     0,   367,     0,   368,   369,   370,
-     371,   372,     0,   741,   374,   375,     0,     0,   376,     0,
-       0,     0,   377,   378,   379,   380,   381,     0,     0,   382,
-     383,   384,   385,   386,     0,   387,   388,     0,   389,   390,
-     391,   742,   743,   392,     0,   393,     0,   394,   395,     0,
-     396,   397,     0,     0,   744,   398,   399,   400,   401,   402,
-     745,   404,   405,   406,   407,     0,   746,   409,     0,     0,
-       0,   410,   411,   412,   413,     0,     0,     0,   414,     0,
-       0,     0,   415,     0,   416,   417,   418,   419,     0,   420,
-     421,   422,   423,   424,   425,     0,     0,     0,     0,     0,
-       0,   426,   427,     0,   428,     0,     0,   429,     0,     0,
-     430,   431,   432,   747,   748,   433,   434,     0,   435,   436,
-     749,   438,   439,   440,   750,   751,   441,   442,   443,   444,
-     752,   445,   446,     0,   447,     0,   448,   449,   450,   451,
-       0,   753,   452,   453,     0,   754,   755,   756,   757,     0,
-       0,     0,     0,     0,   458,   459,   460,     0,   758,   759,
-     760,   462,   463,   464,   761,   465,   466,   762,   467,   468,
-       0,   469,   470,     0,     0,   471,     0,     0,   472,     0,
-     473,     0,   763,   475,   476,     0,     0,   764,   765,   766,
-     767,   477,     0,     0,   478,   768,     0,   769,   479,   480,
-     481,   482,   483,   770,     0,     0,     0,     0,     0,     0,
-     485,   486,     0,   487,   488,   489,     0,     0,   771,     0,
-       0,     0,     0,   772,   773,     0,     0,     0,     0,   774,
-     775,     0,     0,   776,   777,     0,     0,   778,   779,   139,
-       0,   669,   141,   142,   143,   144,     0,     0,   145,     0,
-       0,     0,   146,     0,     0,   670,     0,   148,   149,   150,
-     151,   152,   671,   154,     0,   155,     0,     0,   672,   156,
-     673,   674,   675,   157,   676,     0,   158,   159,   160,     0,
-     161,     0,   162,   163,     0,     0,   164,   677,   678,   165,
-     166,     0,   167,   679,   680,   169,   170,     0,   171,   172,
-     173,   174,   175,   681,   177,     0,   682,   179,   683,   684,
-     685,   686,   687,   688,     0,   186,   187,   188,   189,   190,
-     191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
-     689,   200,     0,   201,   690,   691,   202,     0,     0,   203,
-     692,   693,     0,   204,   694,   695,     0,   205,   206,   207,
-     696,   697,   698,     0,     0,     0,     0,   699,   210,   700,
-       0,     0,   701,   211,     0,   212,     0,     0,     0,   213,
-       0,   214,   215,   216,   217,     0,     0,     0,   218,     0,
-       0,   219,   220,   221,     0,     0,     0,   222,     0,   223,
-     224,     0,   225,   226,   227,     0,     0,   228,   229,     0,
-     230,   231,   232,   233,   234,   235,   702,     0,   236,   237,
-     238,   703,   704,   239,   240,     0,   241,   242,   243,   705,
-       0,   244,     0,     0,     0,   245,     0,   246,     0,   247,
-       0,   248,   249,   706,   251,   707,   253,     0,   254,     0,
-     708,     0,   255,   256,   257,     0,   258,   709,   710,     0,
-     259,   260,     0,     0,     0,   711,   262,   263,   264,   712,
-       0,   265,   266,   267,     0,   268,     0,   269,     0,     0,
-       0,   713,   270,   271,  1723,     0,     0,   272,     0,   273,
-     274,     0,   275,   276,     0,     0,     0,   277,     0,     0,
-     278,   279,   715,     0,     0,   281,     0,   716,   282,   283,
-       0,     0,     0,     0,     0,   717,   285,     0,   286,     0,
-     287,     0,   288,   289,     0,     0,   718,     0,     0,     0,
-       0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
-     299,   300,   301,   302,     0,   303,   304,   305,   719,   306,
-     307,   308,   309,   720,   310,   311,     0,     0,     0,     0,
-     312,   313,   314,   315,   721,   317,     0,     0,   722,   319,
-     723,   320,     0,   321,   724,   725,   726,   727,   728,   326,
-     327,   328,   329,   330,     0,   729,   331,   332,     0,     0,
-     333,   334,   335,   336,   730,     0,   732,   337,   338,     0,
-     733,   734,     0,   339,   340,   735,     0,   342,   343,   344,
-     345,     0,   346,   347,     0,     0,     0,     0,     0,     0,
-       0,     0,   348,   349,   350,     0,   736,   351,     0,   352,
-     353,   354,   355,   737,   357,   358,   359,   360,   738,   739,
-     363,   740,     0,   364,   365,   366,     0,   367,     0,   368,
-     369,   370,   371,   372,     0,   741,   374,   375,     0,     0,
-     376,     0,     0,     0,   377,   378,   379,   380,   381,     0,
-       0,   382,   383,   384,   385,   386,     0,   387,   388,     0,
-     389,   390,   391,   742,   743,   392,     0,   393,     0,   394,
-     395,     0,   396,   397,     0,     0,   744,   398,   399,   400,
-     401,   402,   745,   404,   405,   406,   407,     0,   746,   409,
-       0,     0,     0,   410,   411,   412,   413,     0,     0,     0,
-     414,     0,     0,     0,   415,     0,   416,   417,   418,   419,
-       0,   420,   421,   422,   423,   424,   425,     0,     0,     0,
-       0,     0,     0,   426,   427,     0,   428,     0,     0,   429,
-       0,     0,   430,   431,   432,   747,   748,   433,   434,     0,
-     435,   436,   749,   438,   439,   440,   750,   751,   441,   442,
-     443,   444,   752,   445,   446,     0,   447,     0,   448,   449,
-     450,   451,     0,   753,   452,   453,     0,   754,   755,   756,
-     757,     0,     0,     0,     0,     0,   458,   459,   460,     0,
-     758,   759,   760,   462,   463,   464,   761,   465,   466,   762,
-     467,   468,     0,   469,   470,     0,     0,   471,     0,     0,
-     472,     0,   473,     0,   763,   475,   476,     0,     0,   764,
-     765,   766,   767,   477,     0,     0,   478,   768,     0,   769,
-     479,   480,   481,   482,   483,   770,     0,     0,     0,     0,
-       0,     0,   485,   486,     0,   487,   488,   489,     0,     0,
-     771,     0,     0,     0,     0,   772,   773,     0,     0,     0,
-       0,   774,   775,     0,     0,   776,   777,     0,     0,   778,
-     779,   139,     0,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,   673,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
+     724,   317,     0,     0,   725,   319,   726,   320,     0,   321,
+     727,   728,   729,   730,   731,   326,   327,   328,   329,   330,
+     331,     0,   732,   332,   333,     0,     0,   334,   335,   336,
+     337,   733,   734,   735,   338,   339,     0,   736,   737,     0,
+     340,   341,   738,     0,   343,   344,   345,   346,     0,   347,
+     348,     0,     0,     0,     0,     0,     0,     0,     0,   349,
+     350,   351,     0,   739,   352,     0,   353,   354,   355,   356,
+     740,   358,   359,   360,   361,   741,   742,   364,   743,     0,
+     365,   366,   367,     0,   368,     0,   369,   370,   371,   372,
+     373,     0,   744,   375,   376,     0,     0,   377,     0,     0,
+       0,   378,   379,   380,   381,   382,     0,     0,   383,   384,
+     385,   386,   387,     0,   388,   389,     0,   390,   391,   392,
+     745,   746,   393,     0,   394,     0,   395,   396,     0,   397,
+     398,     0,     0,   747,   399,   400,   401,   402,   403,   748,
+     405,   406,   407,   408,     0,   749,   410,     0,     0,     0,
+     411,   412,   413,   414,     0,     0,     0,   415,     0,     0,
+       0,   416,     0,   417,   418,   419,   420,     0,   421,   422,
+     423,   424,   425,   426,     0,     0,     0,     0,     0,     0,
+     427,   428,     0,   429,     0,     0,   430,     0,     0,   431,
+     432,   433,   750,   751,   434,   435,     0,   436,   437,   752,
+     439,   440,   441,   753,   754,   442,   443,   444,   445,   755,
+     446,   447,     0,   448,     0,   449,   450,   451,   452,     0,
+     756,   453,   454,     0,   757,   758,   759,   760,     0,     0,
+       0,     0,     0,   459,   460,   461,     0,   761,   762,   763,
+     463,   464,   465,   764,   466,   467,   765,   468,   469,     0,
+     470,   471,     0,     0,   472,     0,     0,   473,     0,   474,
+       0,   766,   476,   477,     0,     0,   767,   768,   769,   770,
+     478,     0,     0,   479,   771,     0,   772,   480,   481,   482,
+     483,   484,   773,     0,     0,     0,     0,     0,     0,   486,
+     487,     0,   488,   489,   490,     0,     0,   774,     0,     0,
+       0,     0,   775,   776,     0,     0,     0,     0,   777,   778,
+       0,     0,   779,   780,     0,     0,   781,   782,   139,     0,
+     672,   141,   142,   143,   144,     0,     0,   145,     0,     0,
+       0,   146,     0,     0,   673,     0,   148,   149,   150,   151,
+     152,   674,   154,     0,   155,     0,     0,   675,   156,   676,
+     677,   678,   157,   679,     0,   158,   159,   160,     0,   161,
+       0,   162,   163,     0,     0,   164,   680,   681,   165,   166,
+       0,   167,   682,   683,   169,   170,     0,   171,   172,   173,
+     174,   175,   684,   177,     0,   685,   179,   686,   687,   688,
+     689,   690,   691,     0,   186,   187,   188,   189,   190,   191,
+     192,   193,     0,   194,   195,     0,   196,   197,   198,   692,
+     200,     0,   201,   693,   694,   202,     0,     0,   203,   695,
+     696,     0,   204,   697,   698,     0,   205,   206,   207,   699,
+     700,   701,     0,     0,     0,     0,   702,   210,   703,     0,
+       0,   704,   211,     0,   212,     0,     0,     0,   213,     0,
+     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
+     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
+       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
+     231,   232,   233,   234,   235,   705,     0,   236,   237,   238,
+     706,   707,   239,   240,     0,   241,   242,   243,   708,     0,
+     244,     0,     0,     0,   245,     0,   246,     0,   247,     0,
+     248,   249,   709,   251,   710,   253,     0,   254,     0,   711,
+       0,   255,   256,   257,     0,   258,   712,   713,     0,   259,
+     260,     0,     0,     0,   714,   262,   263,   264,   715,     0,
+     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
+     716,   270,   271,   717,     0,     0,   272,     0,   273,   274,
+       0,   275,   276,     0,     0,     0,   277,     0,     0,   278,
+     279,   718,     0,     0,   281,     0,   719,   282,   283,     0,
+       0,     0,     0,     0,   720,   285,     0,   286,     0,   287,
+       0,   288,   289,     0,     0,   721,     0,     0,     0,     0,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,     0,   303,   304,   305,   722,   306,   307,
+     308,   309,   723,   310,   311,  4308,     0,     0,     0,   312,
+     313,   314,   315,   724,   317,     0,     0,   725,   319,   726,
+     320,     0,   321,   727,   728,   729,   730,   731,   326,   327,
+     328,   329,   330,   331,     0,   732,   332,   333,     0,     0,
+     334,   335,   336,   337,   733,     0,   735,   338,   339,     0,
+     736,   737,     0,   340,   341,   738,     0,   343,   344,   345,
+     346,     0,   347,   348,     0,     0,     0,     0,     0,     0,
+       0,     0,   349,   350,   351,     0,   739,   352,     0,   353,
+     354,   355,   356,   740,   358,   359,   360,   361,   741,   742,
+     364,   743,     0,   365,   366,   367,     0,   368,     0,   369,
+     370,   371,   372,   373,     0,   744,   375,   376,     0,     0,
+     377,     0,     0,     0,   378,   379,   380,   381,   382,     0,
+       0,   383,   384,   385,   386,   387,     0,   388,   389,     0,
+     390,   391,   392,   745,   746,   393,     0,   394,     0,   395,
+     396,     0,   397,   398,     0,     0,   747,   399,   400,   401,
+     402,   403,   748,   405,   406,   407,   408,     0,   749,   410,
+       0,     0,     0,   411,   412,   413,   414,     0,     0,     0,
+     415,     0,     0,     0,   416,     0,   417,   418,   419,   420,
+       0,   421,   422,   423,   424,   425,   426,     0,     0,     0,
+       0,     0,     0,   427,   428,     0,   429,     0,     0,   430,
+       0,     0,   431,   432,   433,   750,   751,   434,   435,     0,
+     436,   437,   752,   439,   440,   441,   753,   754,   442,   443,
+     444,   445,   755,   446,   447,     0,   448,     0,   449,   450,
+     451,   452,     0,   756,   453,   454,     0,   757,   758,   759,
+     760,     0,     0,     0,     0,     0,   459,   460,   461,     0,
+     761,   762,   763,   463,   464,   465,   764,   466,   467,   765,
+     468,   469,     0,   470,   471,     0,     0,   472,     0,     0,
+     473,     0,   474,     0,   766,   476,   477,     0,     0,   767,
+     768,   769,   770,   478,     0,     0,   479,   771,     0,   772,
+     480,   481,   482,   483,   484,   773,     0,     0,     0,     0,
+       0,     0,   486,   487,     0,   488,   489,   490,     0,     0,
+     774,     0,     0,     0,     0,   775,   776,     0,     0,     0,
+       0,   777,   778,     0,     0,   779,   780,     0,     0,   781,
+     782,   139,     0,   672,   141,   142,   143,   144,     0,     0,
+     145,     0,     0,     0,   146,     0,     0,   673,     0,   148,
+     149,   150,   151,   152,   674,   154,     0,   155,     0,     0,
+     675,   156,   676,   677,   678,   157,   679,     0,   158,   159,
+     160,     0,   161,     0,   162,   163,     0,     0,   164,   680,
+     681,   165,   166,     0,   167,   682,   683,   169,   170,     0,
+     171,   172,   173,   174,   175,   684,   177,     0,   685,   179,
+     686,   687,   688,   689,   690,   691,     0,   186,   187,   188,
      189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,  2331,     0,     0,     0,     0,   209,
-     210,   700,     0,     0,     0,   211,     0,   212,     0,     0,
+     197,   198,   692,   200,     0,   201,   693,   694,   202,     0,
+       0,   203,   695,   696,     0,   204,   697,   698,     0,   205,
+     206,   207,   699,   700,   701,     0,     0,     0,     0,   702,
+     210,   703,     0,     0,   704,   211,     0,   212,     0,     0,
        0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
      218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
        0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,   704,   239,   240,     0,   241,   242,
-     243,   705,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,   709,
-     710,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
+     229,     0,   230,   231,   232,   233,   234,   235,   705,     0,
+     236,   237,   238,   706,   707,   239,   240,     0,   241,   242,
+     243,   708,     0,   244,     0,     0,     0,   245,     0,   246,
+       0,   247,     0,   248,   249,   709,   251,   710,   253,     0,
+     254,     0,   711,     0,   255,   256,   257,     0,   258,   712,
+     713,     0,   259,   260,     0,     0,     0,   714,   262,   263,
+     264,   715,     0,   265,   266,   267,     0,   268,     0,   269,
+       0,     0,     0,   716,   270,   271,   717,     0,     0,   272,
        0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,   718,     0,
+       0,     0,   278,   279,   718,     0,     0,   281,     0,   719,
+     282,   283,     0,     0,     0,     0,     0,   720,   285,     0,
+     286,     0,   287,     0,   288,   289,     0,     0,   721,     0,
        0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
      297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,   729,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,   733,   734,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   753,   452,   453,     0,  2332,
-     455,   456,  2333,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,   759,   461,   462,   463,   464,   761,   465,
-     466,   762,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,     0,   490,     0,     0,     0,     0,   139,     0,   140,
+     722,   306,   307,   308,   309,   723,   310,   311,     0,     0,
+       0,     0,   312,   313,   314,   315,   724,   317,     0,     0,
+     725,   319,   726,   320,     0,   321,   727,   728,   729,   730,
+     731,   326,   327,   328,   329,   330,   331,     0,   732,   332,
+     333,     0,     0,   334,   335,   336,   337,   733,     0,   735,
+     338,   339,     0,   736,   737,     0,   340,   341,   738,     0,
+     343,   344,   345,   346,     0,   347,   348,     0,     0,     0,
+       0,     0,     0,     0,     0,   349,   350,   351,     0,   739,
+     352,     0,   353,   354,   355,   356,   740,   358,   359,   360,
+     361,   741,   742,   364,   743,     0,   365,   366,   367,     0,
+     368,     0,   369,   370,   371,   372,   373,     0,   744,   375,
+     376,     0,     0,   377,     0,     0,     0,   378,   379,   380,
+     381,   382,     0,     0,   383,   384,   385,   386,   387,     0,
+     388,   389,     0,   390,   391,   392,   745,   746,   393,     0,
+     394,     0,   395,   396,     0,   397,   398,     0,     0,   747,
+     399,   400,   401,   402,   403,   748,   405,   406,   407,   408,
+       0,   749,   410,     0,     0,     0,   411,   412,   413,   414,
+       0,     0,     0,   415,     0,     0,     0,   416,     0,   417,
+     418,   419,   420,     0,   421,   422,   423,   424,   425,   426,
+       0,     0,     0,     0,     0,     0,   427,   428,     0,   429,
+       0,     0,   430,     0,     0,   431,   432,   433,   750,   751,
+     434,   435,     0,   436,   437,   752,   439,   440,   441,   753,
+     754,   442,   443,   444,   445,   755,   446,   447,     0,   448,
+       0,   449,   450,   451,   452,     0,   756,   453,   454,     0,
+     757,   758,   759,   760,     0,     0,     0,     0,     0,   459,
+     460,   461,     0,   761,   762,   763,   463,   464,   465,   764,
+     466,   467,   765,   468,   469,     0,   470,   471,     0,     0,
+     472,     0,     0,   473,     0,   474,     0,   766,   476,   477,
+       0,     0,   767,   768,   769,   770,   478,     0,     0,   479,
+     771,     0,   772,   480,   481,   482,   483,   484,   773,     0,
+       0,     0,     0,     0,     0,   486,   487,     0,   488,   489,
+     490,     0,     0,   774,     0,     0,     0,     0,   775,   776,
+       0,     0,     0,     0,   777,   778,     0,     0,   779,   780,
+       0,     0,   781,   782,   139,     0,   672,   141,   142,   143,
+     144,     0,     0,   145,     0,     0,     0,   146,     0,     0,
+     673,     0,   148,   149,   150,   151,   152,   674,   154,     0,
+     155,     0,     0,   675,   156,   676,   677,   678,   157,   679,
+       0,   158,   159,   160,     0,   161,     0,   162,   163,     0,
+       0,   164,   680,   681,   165,   166,     0,   167,   682,   683,
+     169,   170,     0,   171,   172,   173,   174,   175,   684,   177,
+       0,   685,   179,   686,   687,   688,   689,   690,   691,     0,
+     186,   187,   188,   189,   190,   191,   192,   193,     0,   194,
+     195,     0,   196,   197,   198,   692,   200,     0,   201,   693,
+     694,   202,     0,     0,   203,   695,   696,     0,   204,   697,
+     698,     0,   205,   206,   207,   699,   700,   701,     0,     0,
+       0,     0,   702,   210,   703,     0,     0,   704,   211,     0,
+     212,     0,     0,     0,   213,     0,   214,   215,   216,   217,
+       0,     0,     0,   218,     0,     0,   219,   220,   221,     0,
+       0,     0,   222,     0,   223,   224,     0,   225,   226,   227,
+       0,     0,   228,   229,     0,   230,   231,   232,   233,   234,
+     235,   705,     0,   236,   237,   238,   706,   707,   239,   240,
+       0,   241,   242,   243,   708,     0,   244,     0,     0,     0,
+     245,     0,   246,     0,   247,     0,   248,   249,   709,   251,
+     710,   253,     0,   254,     0,   711,     0,   255,   256,   257,
+       0,   258,   712,   713,     0,   259,   260,     0,     0,     0,
+     714,   262,   263,   264,   715,     0,   265,   266,   267,     0,
+     268,     0,   269,     0,     0,     0,   716,   270,   271,  1724,
+       0,     0,   272,     0,   273,   274,     0,   275,   276,     0,
+       0,     0,   277,     0,     0,   278,   279,   718,     0,     0,
+     281,     0,   719,   282,   283,     0,     0,     0,     0,     0,
+     720,   285,     0,   286,     0,   287,     0,   288,   289,     0,
+       0,   721,     0,     0,     0,     0,   290,   291,   292,   293,
+     294,   295,   296,   297,   298,   299,   300,   301,   302,     0,
+     303,   304,   305,   722,   306,   307,   308,   309,   723,   310,
+     311,     0,     0,     0,     0,   312,   313,   314,   315,   724,
+     317,     0,     0,   725,   319,   726,   320,     0,   321,   727,
+     728,   729,   730,   731,   326,   327,   328,   329,   330,   331,
+       0,   732,   332,   333,     0,     0,   334,   335,   336,   337,
+     733,     0,   735,   338,   339,     0,   736,   737,     0,   340,
+     341,   738,     0,   343,   344,   345,   346,     0,   347,   348,
+       0,     0,     0,     0,     0,     0,     0,     0,   349,   350,
+     351,     0,   739,   352,     0,   353,   354,   355,   356,   740,
+     358,   359,   360,   361,   741,   742,   364,   743,     0,   365,
+     366,   367,     0,   368,     0,   369,   370,   371,   372,   373,
+       0,   744,   375,   376,     0,     0,   377,     0,     0,     0,
+     378,   379,   380,   381,   382,     0,     0,   383,   384,   385,
+     386,   387,     0,   388,   389,     0,   390,   391,   392,   745,
+     746,   393,     0,   394,     0,   395,   396,     0,   397,   398,
+       0,     0,   747,   399,   400,   401,   402,   403,   748,   405,
+     406,   407,   408,     0,   749,   410,     0,     0,     0,   411,
+     412,   413,   414,     0,     0,     0,   415,     0,     0,     0,
+     416,     0,   417,   418,   419,   420,     0,   421,   422,   423,
+     424,   425,   426,     0,     0,     0,     0,     0,     0,   427,
+     428,     0,   429,     0,     0,   430,     0,     0,   431,   432,
+     433,   750,   751,   434,   435,     0,   436,   437,   752,   439,
+     440,   441,   753,   754,   442,   443,   444,   445,   755,   446,
+     447,     0,   448,     0,   449,   450,   451,   452,     0,   756,
+     453,   454,     0,   757,   758,   759,   760,     0,     0,     0,
+       0,     0,   459,   460,   461,     0,   761,   762,   763,   463,
+     464,   465,   764,   466,   467,   765,   468,   469,     0,   470,
+     471,     0,     0,   472,     0,     0,   473,     0,   474,     0,
+     766,   476,   477,     0,     0,   767,   768,   769,   770,   478,
+       0,     0,   479,   771,     0,   772,   480,   481,   482,   483,
+     484,   773,     0,     0,     0,     0,     0,     0,   486,   487,
+       0,   488,   489,   490,     0,     0,   774,     0,     0,     0,
+       0,   775,   776,     0,     0,     0,     0,   777,   778,     0,
+       0,   779,   780,     0,     0,   781,   782,   139,     0,   672,
+     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
+     146,     0,     0,   673,     0,   148,   149,   150,   151,   152,
+     674,   154,     0,   155,     0,     0,   675,   156,   676,   677,
+     678,   157,   679,     0,   158,   159,   160,     0,   161,     0,
+     162,   163,     0,     0,   164,   680,   681,   165,   166,     0,
+     167,   682,   683,   169,   170,     0,   171,   172,   173,   174,
+     175,   684,   177,     0,   685,   179,   686,   687,   688,   689,
+     690,   691,     0,   186,   187,   188,   189,   190,   191,   192,
+     193,     0,   194,   195,     0,   196,   197,   198,   692,   200,
+       0,   201,   693,   694,   202,     0,     0,   203,   695,   696,
+       0,   204,   697,   698,     0,   205,   206,   207,   699,   700,
+     701,     0,     0,     0,     0,   702,   210,   703,     0,     0,
+     704,   211,     0,   212,     0,     0,     0,   213,     0,   214,
+     215,   216,   217,     0,     0,     0,   218,     0,     0,   219,
+     220,   221,     0,     0,     0,   222,     0,   223,   224,     0,
+     225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
+     232,   233,   234,   235,   705,     0,   236,   237,   238,   706,
+     707,   239,   240,     0,   241,   242,   243,   708,     0,   244,
+       0,     0,     0,   245,     0,   246,     0,   247,     0,   248,
+     249,   709,   251,   710,   253,     0,   254,     0,   711,     0,
+     255,   256,   257,     0,   258,   712,   713,     0,   259,   260,
+       0,     0,     0,   714,   262,   263,   264,   715,     0,   265,
+     266,   267,     0,   268,     0,   269,     0,     0,     0,   716,
+     270,   271,  1726,     0,     0,   272,     0,   273,   274,     0,
+     275,   276,     0,     0,     0,   277,     0,     0,   278,   279,
+     718,     0,     0,   281,     0,   719,   282,   283,     0,     0,
+       0,     0,     0,   720,   285,     0,   286,     0,   287,     0,
+     288,   289,     0,     0,   721,     0,     0,     0,     0,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
+     301,   302,     0,   303,   304,   305,   722,   306,   307,   308,
+     309,   723,   310,   311,     0,     0,     0,     0,   312,   313,
+     314,   315,   724,   317,     0,     0,   725,   319,   726,   320,
+       0,   321,   727,   728,   729,   730,   731,   326,   327,   328,
+     329,   330,   331,     0,   732,   332,   333,     0,     0,   334,
+     335,   336,   337,   733,     0,   735,   338,   339,     0,   736,
+     737,     0,   340,   341,   738,     0,   343,   344,   345,   346,
+       0,   347,   348,     0,     0,     0,     0,     0,     0,     0,
+       0,   349,   350,   351,     0,   739,   352,     0,   353,   354,
+     355,   356,   740,   358,   359,   360,   361,   741,   742,   364,
+     743,     0,   365,   366,   367,     0,   368,     0,   369,   370,
+     371,   372,   373,     0,   744,   375,   376,     0,     0,   377,
+       0,     0,     0,   378,   379,   380,   381,   382,     0,     0,
+     383,   384,   385,   386,   387,     0,   388,   389,     0,   390,
+     391,   392,   745,   746,   393,     0,   394,     0,   395,   396,
+       0,   397,   398,     0,     0,   747,   399,   400,   401,   402,
+     403,   748,   405,   406,   407,   408,     0,   749,   410,     0,
+       0,     0,   411,   412,   413,   414,     0,     0,     0,   415,
+       0,     0,     0,   416,     0,   417,   418,   419,   420,     0,
+     421,   422,   423,   424,   425,   426,     0,     0,     0,     0,
+       0,     0,   427,   428,     0,   429,     0,     0,   430,     0,
+       0,   431,   432,   433,   750,   751,   434,   435,     0,   436,
+     437,   752,   439,   440,   441,   753,   754,   442,   443,   444,
+     445,   755,   446,   447,     0,   448,     0,   449,   450,   451,
+     452,     0,   756,   453,   454,     0,   757,   758,   759,   760,
+       0,     0,     0,     0,     0,   459,   460,   461,     0,   761,
+     762,   763,   463,   464,   465,   764,   466,   467,   765,   468,
+     469,     0,   470,   471,     0,     0,   472,     0,     0,   473,
+       0,   474,     0,   766,   476,   477,     0,     0,   767,   768,
+     769,   770,   478,     0,     0,   479,   771,     0,   772,   480,
+     481,   482,   483,   484,   773,     0,     0,     0,     0,     0,
+       0,   486,   487,     0,   488,   489,   490,     0,     0,   774,
+       0,     0,     0,     0,   775,   776,     0,     0,     0,     0,
+     777,   778,     0,     0,   779,   780,     0,     0,   781,   782,
+     139,     0,   140,   141,   142,   143,   144,     0,     0,   145,
+       0,     0,     0,   146,     0,     0,   147,     0,   148,   149,
+     150,   151,   152,   153,   154,     0,   155,     0,     0,     0,
+     156,   676,     0,     0,   157,     0,     0,   158,   159,   160,
+       0,   161,     0,   162,   163,     0,     0,   164,     0,     0,
+     165,   166,     0,   167,   168,     0,   169,   170,     0,   171,
+     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
+     181,   182,   183,   184,   185,     0,   186,   187,   188,   189,
+     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
+     198,   199,   200,     0,   201,     0,     0,   202,     0,     0,
+     203,     0,     0,     0,   204,     0,     0,     0,   205,   206,
+     207,     0,     0,  2335,     0,     0,     0,     0,   209,   210,
+     703,     0,     0,     0,   211,     0,   212,     0,     0,     0,
+     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
+       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
+     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
+       0,   230,   231,   232,   233,   234,   235,     0,     0,   236,
+     237,   238,     0,   707,   239,   240,     0,   241,   242,   243,
+     708,     0,   244,     0,     0,     0,   245,     0,   246,     0,
+     247,     0,   248,   249,   250,   251,   252,   253,     0,   254,
+       0,     0,     0,   255,   256,   257,     0,   258,   712,   713,
+       0,   259,   260,     0,     0,     0,   261,   262,   263,   264,
+       0,     0,   265,   266,   267,     0,   268,     0,   269,     0,
+       0,     0,     0,   270,   271,     0,     0,     0,   272,     0,
+     273,   274,     0,   275,   276,     0,     0,     0,   277,     0,
+       0,   278,   279,   280,     0,     0,   281,     0,     0,   282,
+     283,     0,     0,     0,     0,     0,   284,   285,     0,   286,
+       0,   287,     0,   288,   289,     0,     0,   721,     0,     0,
+       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,     0,   303,   304,   305,     0,
+     306,   307,   308,   309,     0,   310,   311,     0,     0,     0,
+       0,   312,   313,   314,   315,   316,   317,     0,     0,   318,
+     319,     0,   320,     0,   321,     0,   322,   323,   324,   325,
+     326,   327,   328,   329,   330,   331,     0,   732,   332,   333,
+       0,     0,   334,   335,   336,   337,     0,     0,     0,   338,
+     339,     0,   736,   737,     0,   340,   341,   342,     0,   343,
+     344,   345,   346,     0,   347,   348,     0,     0,     0,     0,
+       0,     0,     0,     0,   349,   350,   351,     0,     0,   352,
+       0,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,     0,     0,   365,   366,   367,     0,   368,
+       0,   369,   370,   371,   372,   373,     0,   374,   375,   376,
+       0,     0,   377,     0,     0,     0,   378,   379,   380,   381,
+     382,     0,     0,   383,   384,   385,   386,   387,     0,   388,
+     389,     0,   390,   391,   392,     0,     0,   393,     0,   394,
+       0,   395,   396,     0,   397,   398,     0,     0,     0,   399,
+     400,   401,   402,   403,   404,   405,   406,   407,   408,     0,
+     409,   410,     0,     0,     0,   411,   412,   413,   414,     0,
+       0,     0,   415,     0,     0,     0,   416,     0,   417,   418,
+     419,   420,     0,   421,   422,   423,   424,   425,   426,     0,
+       0,     0,     0,     0,     0,   427,   428,     0,   429,     0,
+       0,   430,     0,     0,   431,   432,   433,     0,     0,   434,
+     435,     0,   436,   437,   438,   439,   440,   441,     0,     0,
+     442,   443,   444,   445,     0,   446,   447,     0,   448,     0,
+     449,   450,   451,   452,     0,   756,   453,   454,     0,  2336,
+     456,   457,  2337,     0,     0,     0,     0,     0,   459,   460,
+     461,     0,     0,   762,   462,   463,   464,   465,   764,   466,
+     467,   765,   468,   469,     0,   470,   471,     0,     0,   472,
+       0,     0,   473,     0,   474,     0,   475,   476,   477,     0,
+       0,     0,     0,     0,     0,   478,     0,     0,   479,     0,
+       0,     0,   480,   481,   482,   483,   484,   485,     0,     0,
+       0,     0,     0,     0,   486,   487,     0,   488,   489,   490,
+       0,     0,   491,     0,     0,     0,     0,   139,     0,   140,
      141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
-     146,   778,   779,   147,     0,   148,   149,   150,   151,   152,
+     146,   781,   782,   147,     0,   148,   149,   150,   151,   152,
      153,   154,     0,   155,     0,     0,     0,   156,     0,     0,
        0,   157,     0,     0,   158,   159,   160,     0,   161,     0,
      162,   163,     0,     0,   164,     0,     0,   165,   166,     0,
      167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
      175,   176,   177,     0,   178,   179,   180,   181,   182,   183,
      184,   185,     0,   186,   187,   188,   189,   190,   191,   192,
-     193,     0,   194,   195,  2446,   196,   197,   198,   199,   200,
+     193,     0,   194,   195,  2450,   196,   197,   198,   199,   200,
        0,   201,     0,     0,   202,     0,     0,   203,     0,     0,
        0,   204,     0,     0,     0,   205,   206,   207,     0,     0,
      208,     0,     0,     0,     0,   209,   210,     0,     0,     0,
@@ -7776,14 +7786,14 @@ static const yytype_int16 yytable[] =
      225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
      232,   233,   234,   235,     0,     0,   236,   237,   238,     0,
        0,   239,   240,     0,   241,   242,   243,     0,     0,   244,
-       0,     0,     0,   245,     0,   246,   504,   247,     0,   248,
+       0,     0,     0,   245,     0,   246,   507,   247,     0,   248,
      249,   250,   251,   252,   253,     0,   254,     0,     0,     0,
      255,   256,   257,     0,   258,     0,     0,     0,   259,   260,
        0,     0,     0,   261,   262,   263,   264,     0,     0,   265,
-     266,   267,  2030,   268,     0,   269,     0,     0,     0,     0,
+     266,   267,  2033,   268,     0,   269,     0,     0,     0,     0,
      270,   271,     0,     0,     0,   272,     0,   273,   274,     0,
-     275,   276,     0,     0,     0,   277,  2031,     0,   278,   279,
-     280,     0,     0,   281,     0,     0,   282,   283,     0,  3003,
+     275,   276,     0,     0,     0,   277,  2034,     0,   278,   279,
+     280,     0,     0,   281,     0,     0,   282,   283,     0,  3008,
        0,     0,     0,   284,   285,     0,   286,     0,   287,     0,
      288,   289,     0,     0,     0,     0,     0,     0,     0,   290,
      291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
@@ -7791,159 +7801,221 @@ static const yytype_int16 yytable[] =
      309,     0,   310,   311,     0,     0,     0,     0,   312,   313,
      314,   315,   316,   317,     0,     0,   318,   319,     0,   320,
        0,   321,     0,   322,   323,   324,   325,   326,   327,   328,
-     329,   330,     0,     0,   331,   332,     0,     0,   333,   334,
-     335,   336,     0,     0,     0,   337,   338,     0,     0,     0,
-       0,   339,   340,   341,     0,   342,   343,   344,   345,     0,
-     346,   347,     0,     0,     0,     0,     0,     0,     0,     0,
-     348,   349,   350,     0,     0,   351,     0,   352,   353,   354,
-    3004,   356,   357,   358,   359,   360,   361,   362,   363,     0,
-       0,   364,   365,   366,     0,   367,     0,   368,   369,   370,
-     371,   372,     0,   373,   374,   375,     0,     0,   376,     0,
-       0,     0,   377,   378,   379,   380,   381,     0,     0,   382,
-     383,   384,   385,   386,     0,   387,   388,     0,   389,   390,
-     391,     0,     0,   392,     0,   393,     0,   394,   395,     0,
-     396,   397,     0,     0,     0,   398,   399,   400,   401,   402,
-     403,   404,   405,   406,   407,     0,   408,   409,  -439,     0,
-       0,   410,   411,   412,   413,     0,     0,     0,   414,     0,
-       0,     0,   415,     0,   416,   417,   418,   419,     0,   420,
-     421,   422,   423,   424,   425,   507,     0,     0,     0,     0,
-       0,   426,   427,     0,   428,     0,     0,   429,     0,     0,
-     430,   431,   432,     0,     0,   433,   434,     0,   435,   436,
-     437,   438,   439,   440,     0,     0,   441,   442,   443,   444,
-       0,   445,   446,     0,   447,     0,   448,   449,   450,   451,
-       0,     0,   452,   453,     0,   454,   455,   456,   457,     0,
-       0,     0,     0,     0,   458,   459,   460,     0,     0,     0,
-     461,   462,   463,   464,     0,   465,   466,     0,   467,   468,
-       0,   469,   470,     0,     0,   471,     0,     0,   472,     0,
-     473,     0,   474,   475,   476,     0,     0,     0,     0,     0,
-       0,   477,     0,     0,   478,     0,     0,     0,   479,   480,
-     481,   482,   483,   484,     0,     0,     0,     0,     0,     0,
-     485,   486,     0,   487,   488,   489,     0,     0,   490,     0,
-       0,   139,     0,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,  2513,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,  2446,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-     504,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,  2030,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-    2031,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,   507,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,     0,   490,     0,     0,   139,     0,   140,   141,   142,
-     143,   144,     0,     0,   145,     0,     0,     0,   146,     0,
-       0,   147,  2513,   148,   149,   150,   151,   152,   153,   154,
-       0,   155,     0,     0,     0,   156,     0,     0,     0,   157,
-       0,     0,   158,   159,   160,     0,   161,     0,   162,   163,
-       0,     0,   164,     0,     0,   165,   166,     0,   167,   168,
-       0,   169,   170,     0,   171,   172,   173,   174,   175,   176,
-     177,     0,   178,   179,   180,   181,   182,   183,   184,   185,
-       0,   186,   187,   188,   189,   190,   191,   192,   193,     0,
-     194,   195,     0,   196,   197,   198,   199,   200,     0,   201,
-       0,     0,   202,     0,     0,   203,     0,     0,     0,   204,
-       0,     0,     0,   205,   206,   207,     0,     0,   208,     0,
-       0,     0,     0,   209,   210,     0,     0,     0,     0,   211,
-       0,   212,     0,     0,     0,   213,     0,   214,   215,   216,
-     217,     0,     0,     0,   218,     0,     0,   219,   220,   221,
-       0,     0,     0,   222,     0,   223,   224,     0,   225,   226,
-     227,     0,     0,   228,   229,     0,   230,   231,   232,   233,
-     234,   235,     0,     0,   236,   237,   238,     0,     0,   239,
-     240,     0,   241,   242,   243,     0,     0,   244,     0,     0,
-       0,   245,     0,   246,     0,   247,     0,   248,   249,   250,
-     251,   252,   253,     0,   254,     0,     0,     0,   255,   256,
-     257,     0,   258,     0,     0,     0,   259,   260,     0,     0,
-       0,   261,   262,   263,   264,     0,     0,   265,   266,   267,
-       0,   268,     0,   269,     0,     0,     0,     0,   270,   271,
-       0,     0,     0,   272,     0,   273,   274,     0,   275,   276,
-       0,     0,     0,   277,     0,     0,   278,   279,   280,     0,
-       0,   281,     0,     0,   282,   283,     0,     0,     0,     0,
-       0,   284,   285,     0,   286,     0,   287,     0,   288,   289,
-       0,     0,     0,     0,     0,     0,     0,   290,   291,   292,
-     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
-       0,   303,   304,   305,     0,   306,   307,   308,   309,     0,
-     310,   311,     0,     0,     0,     0,   312,   313,   314,   315,
-     316,   317,     0,     0,   318,   319,     0,   320,     0,   321,
-       0,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-       0,     0,   331,   332,     0,     0,   333,   334,   335,   336,
-       0,     0,     0,   337,   338,     0,     0,     0,     0,   339,
-     340,   341,     0,   342,   343,   344,   345,     0,   346,   347,
-       0,     0,     0,     0,     0,     0,     0,     0,   348,   349,
-     350,     0,     0,   351,     0,   352,   353,   354,   355,   356,
-     357,   358,   359,   360,   361,   362,   363,     0,     0,   364,
-     365,   366,     0,   367,     0,   368,   369,   370,   371,   372,
-       0,   373,   374,   375,     0,     0,   376,     0,     0,     0,
-     377,   378,   379,   380,   381,     0,     0,   382,   383,   384,
-     385,   386,     0,   387,   388,     0,   389,   390,   391,     0,
-       0,   392,     0,   393,     0,   394,   395,     0,   396,   397,
-       0,     0,     0,   398,   399,   400,   401,   402,   403,   404,
-     405,   406,   407,     0,   408,   409,  2322,     0,     0,   410,
-     411,   412,   413,     0,     0,     0,   414,     0,     0,     0,
-     415,     0,   416,   417,   418,   419,     0,   420,   421,   422,
-     423,   424,   425,     0,     0,     0,     0,     0,     0,   426,
-     427,     0,   428,     0,     0,   429,     0,     0,   430,   431,
-     432,     0,     0,   433,   434,     0,   435,   436,   437,   438,
-     439,   440,     0,     0,   441,   442,   443,   444,     0,   445,
-     446,     0,   447,     0,   448,   449,   450,   451,     0,     0,
-     452,   453,     0,   454,   455,   456,   457,     0,     0,     0,
-       0,     0,   458,   459,   460,     0,     0,     0,   461,   462,
-     463,   464,     0,   465,   466,     0,   467,   468,     0,   469,
-     470,     0,     0,   471,     0,     0,   472,     0,   473,     0,
-     474,   475,   476,     0,     0,     0,     0,     0,     0,   477,
-       0,     0,   478,     0,     0,     0,   479,   480,   481,   482,
-     483,   484,     0,     0,     0,     0,     0,     0,   485,   486,
-       0,   487,   488,   489,     0,     0,   490,     0,     0,   139,
-       0,   140,   141,   142,   143,   144,     0,     0,   145,  2752,
-       0,     0,   146,     0,     0,   147,   779,   148,   149,   150,
+     329,   330,   331,     0,     0,   332,   333,     0,     0,   334,
+     335,   336,   337,     0,     0,     0,   338,   339,     0,     0,
+       0,     0,   340,   341,   342,     0,   343,   344,   345,   346,
+       0,   347,   348,     0,     0,     0,     0,     0,     0,     0,
+       0,   349,   350,   351,     0,     0,   352,     0,   353,   354,
+     355,  3009,   357,   358,   359,   360,   361,   362,   363,   364,
+       0,     0,   365,   366,   367,     0,   368,     0,   369,   370,
+     371,   372,   373,     0,   374,   375,   376,     0,     0,   377,
+       0,     0,     0,   378,   379,   380,   381,   382,     0,     0,
+     383,   384,   385,   386,   387,     0,   388,   389,     0,   390,
+     391,   392,     0,     0,   393,     0,   394,     0,   395,   396,
+       0,   397,   398,     0,     0,     0,   399,   400,   401,   402,
+     403,   404,   405,   406,   407,   408,     0,   409,   410,  -439,
+       0,     0,   411,   412,   413,   414,     0,     0,     0,   415,
+       0,     0,     0,   416,     0,   417,   418,   419,   420,     0,
+     421,   422,   423,   424,   425,   426,   510,     0,     0,     0,
+       0,     0,   427,   428,     0,   429,     0,     0,   430,     0,
+       0,   431,   432,   433,     0,     0,   434,   435,     0,   436,
+     437,   438,   439,   440,   441,     0,     0,   442,   443,   444,
+     445,     0,   446,   447,     0,   448,     0,   449,   450,   451,
+     452,     0,     0,   453,   454,     0,   455,   456,   457,   458,
+       0,     0,     0,     0,     0,   459,   460,   461,     0,     0,
+       0,   462,   463,   464,   465,     0,   466,   467,     0,   468,
+     469,     0,   470,   471,     0,     0,   472,     0,     0,   473,
+       0,   474,     0,   475,   476,   477,     0,     0,     0,     0,
+       0,     0,   478,     0,     0,   479,     0,     0,     0,   480,
+     481,   482,   483,   484,   485,     0,     0,     0,     0,     0,
+       0,   486,   487,     0,   488,   489,   490,     0,     0,   491,
+       0,     0,   139,     0,   140,   141,   142,   143,   144,     0,
+       0,   145,     0,     0,     0,   146,     0,     0,   147,  2517,
+     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
+       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
+     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
+       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
+       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
+     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
+     188,   189,   190,   191,   192,   193,     0,   194,   195,  2450,
+     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
+       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
+     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
+     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
+       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
+       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
+     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
+     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
+       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
+     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
+     246,   507,   247,     0,   248,   249,   250,   251,   252,   253,
+       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
+       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
+     263,   264,     0,     0,   265,   266,   267,  2033,   268,     0,
+     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
+     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
+     277,  2034,     0,   278,   279,   280,     0,     0,   281,     0,
+       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
+       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
+       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
+     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
+       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
+       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
+     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
+     332,   333,     0,     0,   334,   335,   336,   337,     0,     0,
+       0,   338,   339,     0,     0,     0,     0,   340,   341,   342,
+       0,   343,   344,   345,   346,     0,   347,   348,     0,     0,
+       0,     0,     0,     0,     0,     0,   349,   350,   351,     0,
+       0,   352,     0,   353,   354,   355,   356,   357,   358,   359,
+     360,   361,   362,   363,   364,     0,     0,   365,   366,   367,
+       0,   368,     0,   369,   370,   371,   372,   373,     0,   374,
+     375,   376,     0,     0,   377,     0,     0,     0,   378,   379,
+     380,   381,   382,     0,     0,   383,   384,   385,   386,   387,
+       0,   388,   389,     0,   390,   391,   392,     0,     0,   393,
+       0,   394,     0,   395,   396,     0,   397,   398,     0,     0,
+       0,   399,   400,   401,   402,   403,   404,   405,   406,   407,
+     408,     0,   409,   410,     0,     0,     0,   411,   412,   413,
+     414,     0,     0,     0,   415,     0,     0,     0,   416,     0,
+     417,   418,   419,   420,     0,   421,   422,   423,   424,   425,
+     426,   510,     0,     0,     0,     0,     0,   427,   428,     0,
+     429,     0,     0,   430,     0,     0,   431,   432,   433,     0,
+       0,   434,   435,     0,   436,   437,   438,   439,   440,   441,
+       0,     0,   442,   443,   444,   445,     0,   446,   447,     0,
+     448,     0,   449,   450,   451,   452,     0,     0,   453,   454,
+       0,   455,   456,   457,   458,     0,     0,     0,     0,     0,
+     459,   460,   461,     0,     0,     0,   462,   463,   464,   465,
+       0,   466,   467,     0,   468,   469,     0,   470,   471,     0,
+       0,   472,     0,     0,   473,     0,   474,     0,   475,   476,
+     477,     0,     0,     0,     0,     0,     0,   478,     0,     0,
+     479,     0,     0,     0,   480,   481,   482,   483,   484,   485,
+       0,     0,     0,     0,     0,     0,   486,   487,     0,   488,
+     489,   490,     0,     0,   491,     0,     0,   139,     0,   140,
+     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
+     146,     0,     0,   147,  2517,   148,   149,   150,   151,   152,
+     153,   154,     0,   155,     0,     0,     0,   156,     0,     0,
+       0,   157,     0,     0,   158,   159,   160,     0,   161,     0,
+     162,   163,     0,     0,   164,     0,     0,   165,   166,     0,
+     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
+     175,   176,   177,     0,   178,   179,   180,   181,   182,   183,
+     184,   185,     0,   186,   187,   188,   189,   190,   191,   192,
+     193,     0,   194,   195,     0,   196,   197,   198,   199,   200,
+       0,   201,     0,     0,   202,     0,     0,   203,     0,     0,
+       0,   204,     0,     0,     0,   205,   206,   207,     0,     0,
+     208,     0,     0,     0,     0,   209,   210,     0,     0,     0,
+       0,   211,     0,   212,     0,     0,     0,   213,     0,   214,
+     215,   216,   217,     0,     0,     0,   218,     0,     0,   219,
+     220,   221,     0,     0,     0,   222,     0,   223,   224,     0,
+     225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
+     232,   233,   234,   235,     0,     0,   236,   237,   238,     0,
+       0,   239,   240,     0,   241,   242,   243,     0,     0,   244,
+       0,     0,     0,   245,     0,   246,     0,   247,     0,   248,
+     249,   250,   251,   252,   253,     0,   254,     0,     0,     0,
+     255,   256,   257,     0,   258,     0,     0,     0,   259,   260,
+       0,     0,     0,   261,   262,   263,   264,     0,     0,   265,
+     266,   267,     0,   268,     0,   269,     0,     0,     0,     0,
+     270,   271,     0,     0,     0,   272,     0,   273,   274,     0,
+     275,   276,     0,     0,     0,   277,     0,     0,   278,   279,
+     280,     0,     0,   281,     0,     0,   282,   283,     0,     0,
+       0,     0,     0,   284,   285,     0,   286,     0,   287,     0,
+     288,   289,     0,     0,     0,     0,     0,     0,     0,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
+     301,   302,     0,   303,   304,   305,     0,   306,   307,   308,
+     309,     0,   310,   311,     0,     0,     0,     0,   312,   313,
+     314,   315,   316,   317,     0,     0,   318,   319,     0,   320,
+       0,   321,     0,   322,   323,   324,   325,   326,   327,   328,
+     329,   330,   331,     0,     0,   332,   333,     0,     0,   334,
+     335,   336,   337,     0,     0,     0,   338,   339,     0,     0,
+       0,     0,   340,   341,   342,     0,   343,   344,   345,   346,
+       0,   347,   348,     0,     0,     0,     0,     0,     0,     0,
+       0,   349,   350,   351,     0,     0,   352,     0,   353,   354,
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+       0,     0,   365,   366,   367,     0,   368,     0,   369,   370,
+     371,   372,   373,     0,   374,   375,   376,     0,     0,   377,
+       0,     0,     0,   378,   379,   380,   381,   382,     0,     0,
+     383,   384,   385,   386,   387,     0,   388,   389,     0,   390,
+     391,   392,     0,     0,   393,     0,   394,     0,   395,   396,
+       0,   397,   398,     0,     0,     0,   399,   400,   401,   402,
+     403,   404,   405,   406,   407,   408,     0,   409,   410,  2326,
+       0,     0,   411,   412,   413,   414,     0,     0,     0,   415,
+       0,     0,     0,   416,     0,   417,   418,   419,   420,     0,
+     421,   422,   423,   424,   425,   426,     0,     0,     0,     0,
+       0,     0,   427,   428,     0,   429,     0,     0,   430,     0,
+       0,   431,   432,   433,     0,     0,   434,   435,     0,   436,
+     437,   438,   439,   440,   441,     0,     0,   442,   443,   444,
+     445,     0,   446,   447,     0,   448,     0,   449,   450,   451,
+     452,     0,     0,   453,   454,     0,   455,   456,   457,   458,
+       0,     0,     0,     0,     0,   459,   460,   461,     0,     0,
+       0,   462,   463,   464,   465,     0,   466,   467,     0,   468,
+     469,     0,   470,   471,     0,     0,   472,     0,     0,   473,
+       0,   474,     0,   475,   476,   477,     0,     0,     0,     0,
+       0,     0,   478,     0,     0,   479,     0,     0,     0,   480,
+     481,   482,   483,   484,   485,     0,     0,     0,     0,     0,
+       0,   486,   487,     0,   488,   489,   490,     0,     0,   491,
+       0,     0,   139,     0,   140,   141,   142,   143,   144,     0,
+       0,   145,  2757,     0,     0,   146,     0,     0,   147,   782,
+     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
+       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
+     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
+       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
+       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
+     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
+     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
+     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
+       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
+     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
+     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
+       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
+       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
+     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
+     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
+       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
+     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
+     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
+       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
+       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
+     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
+     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
+     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
+     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
+       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
+       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
+       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
+     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
+       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
+       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
+     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
+     332,   333,     0,     0,   334,   335,   336,   337,     0,     0,
+       0,   338,   339,     0,     0,     0,     0,   340,   341,   342,
+       0,   343,   344,   345,   346,     0,   347,   348,     0,     0,
+       0,     0,     0,     0,     0,     0,   349,   350,   351,     0,
+       0,   352,     0,   353,   354,   355,   356,   357,   358,   359,
+     360,   361,   362,   363,   364,     0,     0,   365,   366,   367,
+       0,   368,     0,   369,   370,   371,   372,   373,     0,   374,
+     375,   376,     0,     0,   377,     0,     0,     0,   378,   379,
+     380,   381,   382,     0,     0,   383,   384,   385,   386,   387,
+       0,   388,   389,     0,   390,   391,   392,     0,     0,   393,
+       0,   394,     0,   395,   396,     0,   397,   398,     0,     0,
+       0,   399,   400,   401,   402,   403,   404,   405,   406,   407,
+     408,     0,   409,   410,     0,     0,     0,   411,   412,   413,
+     414,     0,     0,     0,   415,     0,     0,     0,   416,     0,
+     417,   418,   419,   420,     0,   421,   422,   423,   424,   425,
+     426,     0,     0,     0,     0,     0,     0,   427,   428,     0,
+     429,     0,     0,   430,     0,     0,   431,   432,   433,     0,
+       0,   434,   435,     0,   436,   437,   438,   439,   440,   441,
+       0,     0,   442,   443,   444,   445,     0,   446,   447,     0,
+     448,     0,   449,   450,   451,   452,     0,     0,   453,   454,
+       0,   455,   456,   457,   458,     0,     0,     0,     0,     0,
+     459,   460,   461,     0,     0,     0,   462,   463,   464,   465,
+       0,   466,   467,     0,   468,   469,     0,   470,   471,     0,
+       0,   472,     0,     0,   473,     0,   474,     0,   475,   476,
+     477,     0,     0,     0,     0,     0,     0,   478,     0,     0,
+     479,     0,     0,     0,   480,   481,   482,   483,   484,   485,
+       0,     0,     0,     0,     0,     0,   486,   487,     0,   488,
+     489,   490,     0,     0,   491,     0,     0,     0,     0,   139,
+       0,   140,   141,   142,   143,   144,     0,  4440,   145,     0,
+       0,     0,   146,  4441,   782,   147,     0,   148,   149,   150,
      151,   152,   153,   154,     0,   155,     0,     0,     0,   156,
        0,     0,     0,   157,     0,     0,   158,   159,   160,     0,
      161,     0,   162,   163,     0,     0,   164,     0,     0,   165,
@@ -7975,98 +8047,98 @@ static const yytype_int16 yytable[] =
      307,   308,   309,     0,   310,   311,     0,     0,     0,     0,
      312,   313,   314,   315,   316,   317,     0,     0,   318,   319,
        0,   320,     0,   321,     0,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,     0,     0,   331,   332,     0,     0,
-     333,   334,   335,   336,     0,     0,     0,   337,   338,     0,
-       0,     0,     0,   339,   340,   341,     0,   342,   343,   344,
-     345,     0,   346,   347,     0,     0,     0,     0,     0,     0,
-       0,     0,   348,   349,   350,     0,     0,   351,     0,   352,
+     327,   328,   329,   330,   331,     0,     0,   332,   333,     0,
+       0,   334,   335,   336,   337,     0,     0,     0,   338,   339,
+       0,     0,     0,     0,   340,   341,   342,     0,   343,   344,
+     345,   346,     0,   347,   348,     0,     0,     0,     0,     0,
+       0,     0,     0,   349,   350,   351,     0,     0,   352,     0,
      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
-     363,     0,     0,   364,   365,   366,     0,   367,     0,   368,
-     369,   370,   371,   372,     0,   373,   374,   375,     0,     0,
-     376,     0,     0,     0,   377,   378,   379,   380,   381,     0,
-       0,   382,   383,   384,   385,   386,     0,   387,   388,     0,
-     389,   390,   391,     0,     0,   392,     0,   393,     0,   394,
-     395,     0,   396,   397,     0,     0,     0,   398,   399,   400,
-     401,   402,   403,   404,   405,   406,   407,     0,   408,   409,
-       0,     0,     0,   410,   411,   412,   413,     0,     0,     0,
-     414,     0,     0,     0,   415,     0,   416,   417,   418,   419,
-       0,   420,   421,   422,   423,   424,   425,     0,     0,     0,
-       0,     0,     0,   426,   427,     0,   428,     0,     0,   429,
-       0,     0,   430,   431,   432,     0,     0,   433,   434,     0,
-     435,   436,   437,   438,   439,   440,     0,     0,   441,   442,
-     443,   444,     0,   445,   446,     0,   447,     0,   448,   449,
-     450,   451,     0,     0,   452,   453,     0,   454,   455,   456,
-     457,     0,     0,     0,     0,     0,   458,   459,   460,     0,
-       0,     0,   461,   462,   463,   464,     0,   465,   466,     0,
-     467,   468,     0,   469,   470,     0,     0,   471,     0,     0,
-     472,     0,   473,     0,   474,   475,   476,     0,     0,     0,
-       0,     0,     0,   477,     0,     0,   478,     0,     0,     0,
-     479,   480,   481,   482,   483,   484,     0,     0,     0,     0,
-       0,     0,   485,   486,     0,   487,   488,   489,     0,     0,
-     490,     0,     0,     0,     0,   139,     0,   140,   141,   142,
-     143,   144,     0,  4435,   145,     0,     0,     0,   146,  4436,
-     779,   147,     0,   148,   149,   150,   151,   152,   153,   154,
-       0,   155,     0,     0,     0,   156,     0,     0,     0,   157,
-       0,     0,   158,   159,   160,     0,   161,     0,   162,   163,
-       0,     0,   164,     0,     0,   165,   166,     0,   167,   168,
-       0,   169,   170,     0,   171,   172,   173,   174,   175,   176,
-     177,     0,   178,   179,   180,   181,   182,   183,   184,   185,
-       0,   186,   187,   188,   189,   190,   191,   192,   193,     0,
-     194,   195,     0,   196,   197,   198,   199,   200,     0,   201,
-       0,     0,   202,     0,     0,   203,     0,     0,     0,   204,
-       0,     0,     0,   205,   206,   207,     0,     0,   208,     0,
-       0,     0,     0,   209,   210,     0,     0,     0,     0,   211,
-       0,   212,     0,     0,     0,   213,     0,   214,   215,   216,
-     217,     0,     0,     0,   218,     0,     0,   219,   220,   221,
-       0,     0,     0,   222,     0,   223,   224,     0,   225,   226,
-     227,     0,     0,   228,   229,     0,   230,   231,   232,   233,
-     234,   235,     0,     0,   236,   237,   238,     0,     0,   239,
-     240,     0,   241,   242,   243,     0,     0,   244,     0,     0,
-       0,   245,     0,   246,     0,   247,     0,   248,   249,   250,
-     251,   252,   253,     0,   254,     0,     0,     0,   255,   256,
-     257,     0,   258,     0,     0,     0,   259,   260,     0,     0,
-       0,   261,   262,   263,   264,     0,     0,   265,   266,   267,
-       0,   268,     0,   269,     0,     0,     0,     0,   270,   271,
-       0,     0,     0,   272,     0,   273,   274,     0,   275,   276,
-       0,     0,     0,   277,     0,     0,   278,   279,   280,     0,
-       0,   281,     0,     0,   282,   283,     0,     0,     0,     0,
-       0,   284,   285,     0,   286,     0,   287,     0,   288,   289,
-       0,     0,     0,     0,     0,     0,     0,   290,   291,   292,
-     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
-       0,   303,   304,   305,     0,   306,   307,   308,   309,     0,
-     310,   311,     0,     0,     0,     0,   312,   313,   314,   315,
-     316,   317,     0,     0,   318,   319,     0,   320,     0,   321,
-       0,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-       0,     0,   331,   332,     0,     0,   333,   334,   335,   336,
-       0,     0,     0,   337,   338,     0,     0,     0,     0,   339,
-     340,   341,     0,   342,   343,   344,   345,     0,   346,   347,
-       0,     0,     0,     0,     0,     0,     0,     0,   348,   349,
-     350,     0,     0,   351,     0,   352,   353,   354,   355,   356,
-     357,   358,   359,   360,   361,   362,   363,     0,     0,   364,
-     365,   366,     0,   367,     0,   368,   369,   370,   371,   372,
-       0,   373,   374,   375,     0,     0,   376,     0,     0,     0,
-     377,   378,   379,   380,   381,     0,     0,   382,   383,   384,
-     385,   386,     0,   387,   388,     0,   389,   390,   391,     0,
-       0,   392,     0,   393,     0,   394,   395,     0,   396,   397,
-       0,     0,     0,   398,   399,   400,   401,   402,   403,   404,
-     405,   406,   407,     0,   408,   409,     0,     0,     0,   410,
-     411,   412,   413,     0,     0,     0,   414,     0,     0,     0,
-     415,     0,   416,   417,   418,   419,     0,   420,   421,   422,
-     423,   424,   425,     0,     0,     0,     0,     0,     0,   426,
-     427,     0,   428,     0,     0,   429,     0,     0,   430,   431,
-     432,     0,     0,   433,   434,     0,   435,   436,   437,   438,
-     439,   440,     0,     0,   441,   442,   443,   444,     0,   445,
-     446,     0,   447,     0,   448,   449,   450,   451,     0,     0,
-     452,   453,     0,   454,   455,   456,   457,     0,     0,     0,
-       0,     0,   458,   459,   460,     0,     0,     0,   461,   462,
-     463,   464,     0,   465,   466,     0,   467,   468,     0,   469,
-     470,     0,     0,   471,     0,     0,   472,     0,   473,     0,
-     474,   475,   476,     0,     0,     0,     0,     0,     0,   477,
-       0,     0,   478,     0,     0,     0,   479,   480,   481,   482,
-     483,   484,     0,     0,     0,     0,     0,     0,   485,   486,
-       0,   487,   488,   489,     0,     0,   490,     0,     0,     0,
-       0,   139,     0,   140,   141,   142,   143,   144,  1125,     0,
-     145,     0,     0,     0,   146,     0,   779,   147,     0,   148,
+     363,   364,     0,     0,   365,   366,   367,     0,   368,     0,
+     369,   370,   371,   372,   373,     0,   374,   375,   376,     0,
+       0,   377,     0,     0,     0,   378,   379,   380,   381,   382,
+       0,     0,   383,   384,   385,   386,   387,     0,   388,   389,
+       0,   390,   391,   392,     0,     0,   393,     0,   394,     0,
+     395,   396,     0,   397,   398,     0,     0,     0,   399,   400,
+     401,   402,   403,   404,   405,   406,   407,   408,     0,   409,
+     410,     0,     0,     0,   411,   412,   413,   414,     0,     0,
+       0,   415,     0,     0,     0,   416,     0,   417,   418,   419,
+     420,     0,   421,   422,   423,   424,   425,   426,     0,     0,
+       0,     0,     0,     0,   427,   428,     0,   429,     0,     0,
+     430,     0,     0,   431,   432,   433,     0,     0,   434,   435,
+       0,   436,   437,   438,   439,   440,   441,     0,     0,   442,
+     443,   444,   445,     0,   446,   447,     0,   448,     0,   449,
+     450,   451,   452,     0,     0,   453,   454,     0,   455,   456,
+     457,   458,     0,     0,     0,     0,     0,   459,   460,   461,
+       0,     0,     0,   462,   463,   464,   465,     0,   466,   467,
+       0,   468,   469,     0,   470,   471,     0,     0,   472,     0,
+       0,   473,     0,   474,     0,   475,   476,   477,     0,     0,
+       0,     0,     0,     0,   478,     0,     0,   479,     0,     0,
+       0,   480,   481,   482,   483,   484,   485,     0,     0,     0,
+       0,     0,     0,   486,   487,     0,   488,   489,   490,     0,
+       0,   491,     0,     0,     0,     0,   139,     0,   140,   141,
+     142,   143,   144,  1128,     0,   145,     0,     0,     0,   146,
+       0,   782,   147,     0,   148,   149,   150,   151,   152,   153,
+     154,     0,   155,     0,     0,     0,   156,     0,     0,     0,
+     157,     0,     0,   158,   159,   160,     0,   161,     0,   162,
+     163,     0,     0,   164,     0,     0,   165,   166,     0,   167,
+     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
+     176,   177,     0,   178,   179,   180,   181,   182,   183,   184,
+     185,     0,   186,   187,   188,   189,   190,   191,   192,   193,
+       0,   194,   195,     0,   196,   197,   198,   199,   200,     0,
+     201,     0,     0,   202,     0,     0,   203,     0,     0,     0,
+     204,     0,     0,     0,   205,   206,   207,     0,     0,   208,
+       0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
+     211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
+     216,   217,     0,     0,     0,   218,     0,     0,   219,   220,
+     221,     0,     0,     0,   222,     0,   223,   224,     0,   225,
+     226,   227,     0,     0,   228,   229,     0,   230,   231,   232,
+     233,   234,   235,     0,     0,   236,   237,   238,     0,     0,
+     239,   240,     0,   241,   242,   243,     0,     0,   244,     0,
+       0,     0,   245,     0,   246,     0,   247,     0,   248,   249,
+     250,   251,   252,   253,     0,   254,     0,     0,     0,   255,
+     256,   257,     0,   258,     0,     0,     0,   259,   260,     0,
+       0,     0,   261,   262,   263,   264,     0,     0,   265,   266,
+     267,     0,   268,     0,   269,     0,     0,     0,     0,   270,
+     271,     0,  1331,     0,   272,     0,   273,   274,     0,   275,
+     276,     0,     0,     0,   277,     0,     0,   278,   279,   280,
+       0,     0,   281,     0,     0,   282,   283,     0,     0,     0,
+       0,     0,   284,   285,     0,   286,     0,   287,     0,   288,
+     289,     0,     0,     0,     0,     0,     0,     0,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
+     302,     0,   303,   304,   305,     0,   306,   307,   308,   309,
+       0,   310,   311,     0,     0,     0,     0,   312,   313,   314,
+     315,   316,   317,     0,     0,   318,   319,     0,   320,     0,
+     321,     0,   322,   323,   324,   325,   326,   327,   328,   329,
+     330,   331,     0,     0,   332,   333,     0,     0,   334,   335,
+     336,   337,     0,     0,     0,   338,   339,     0,     0,     0,
+       0,   340,   341,   342,     0,   343,   344,   345,   346,     0,
+     347,   348,     0,     0,     0,     0,     0,     0,     0,     0,
+     349,   350,   351,     0,     0,   352,     0,   353,   354,   355,
+     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
+       0,   365,   366,   367,     0,   368,     0,   369,   370,   371,
+     372,   373,     0,   374,   375,   376,     0,     0,   377,     0,
+       0,     0,   378,   379,   380,   381,   382,     0,     0,   383,
+     384,   385,   386,   387,     0,   388,   389,     0,   390,   391,
+     392,     0,     0,   393,     0,   394,     0,   395,   396,     0,
+     397,   398,     0,     0,     0,   399,   400,   401,   402,   403,
+     404,   405,   406,   407,   408,     0,   409,   410,     0,     0,
+       0,   411,   412,   413,   414,     0,     0,     0,   415,     0,
+       0,     0,   416,     0,   417,   418,   419,   420,     0,   421,
+     422,   423,   424,   425,   426,     0,     0,     0,     0,     0,
+       0,   427,   428,     0,   429,     0,     0,   430,     0,     0,
+     431,   432,   433,     0,     0,   434,   435,     0,   436,   437,
+     438,   439,   440,   441,     0,     0,   442,   443,   444,   445,
+       0,   446,   447,     0,   448,     0,   449,   450,   451,   452,
+       0,     0,   453,   454,     0,   455,   456,   457,   458,     0,
+       0,     0,     0,     0,   459,   460,   461,     0,     0,     0,
+     462,   463,   464,   465,     0,   466,   467,     0,   468,   469,
+       0,   470,   471,     0,     0,   472,     0,     0,   473,     0,
+     474,     0,   475,   476,   477,     0,     0,     0,     0,     0,
+       0,   478,     0,     0,   479,     0,     0,     0,   480,   481,
+     482,   483,   484,   485,     0,     0,     0,     0,     0,     0,
+     486,   487,     0,   488,   489,   490,     0,     0,   491,     0,
+       0,   139,     0,   140,   141,   142,   143,   144,     0,     0,
+     145,     0,     0,     0,   146,     0,     0,   147,   541,   148,
      149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
        0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
      160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
@@ -8088,7 +8160,7 @@ static const yytype_int16 yytable[] =
      254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
        0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
      264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,  1328,     0,   272,
+       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
        0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
        0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
      282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
@@ -8098,406 +8170,99 @@ static const yytype_int16 yytable[] =
        0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
        0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
      318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,     0,   490,     0,     0,   139,     0,   140,   141,   142,
-     143,   144,     0,     0,   145,     0,     0,     0,   146,     0,
-       0,   147,   538,   148,   149,   150,   151,   152,   153,   154,
-       0,   155,     0,     0,     0,   156,     0,     0,     0,   157,
-       0,     0,   158,   159,   160,     0,   161,     0,   162,   163,
-       0,     0,   164,     0,     0,   165,   166,     0,   167,   168,
-       0,   169,   170,     0,   171,   172,   173,   174,   175,   176,
-     177,     0,   178,   179,   180,   181,   182,   183,   184,   185,
-       0,   186,   187,   188,   189,   190,   191,   192,   193,     0,
-     194,   195,     0,   196,   197,   198,   199,   200,     0,   201,
-       0,     0,   202,     0,     0,   203,     0,     0,     0,   204,
-       0,     0,     0,   205,   206,   207,     0,     0,   208,     0,
-       0,     0,     0,   209,   210,     0,     0,     0,     0,   211,
-       0,   212,     0,     0,     0,   213,     0,   214,   215,   216,
-     217,     0,     0,     0,   218,     0,     0,   219,   220,   221,
-       0,     0,     0,   222,     0,   223,   224,     0,   225,   226,
-     227,     0,     0,   228,   229,     0,   230,   231,   232,   233,
-     234,   235,     0,     0,   236,   237,   238,     0,     0,   239,
-     240,     0,   241,   242,   243,     0,     0,   244,     0,     0,
-       0,   245,     0,   246,     0,   247,     0,   248,   249,   250,
-     251,   252,   253,     0,   254,     0,     0,     0,   255,   256,
-     257,     0,   258,     0,     0,     0,   259,   260,     0,     0,
-       0,   261,   262,   263,   264,     0,     0,   265,   266,   267,
-       0,   268,     0,   269,     0,     0,     0,     0,   270,   271,
-       0,     0,     0,   272,     0,   273,   274,     0,   275,   276,
-       0,     0,     0,   277,     0,     0,   278,   279,   280,     0,
-       0,   281,     0,     0,   282,   283,     0,     0,     0,     0,
-       0,   284,   285,     0,   286,     0,   287,     0,   288,   289,
-       0,     0,     0,     0,     0,     0,     0,   290,   291,   292,
-     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
-       0,   303,   304,   305,     0,   306,   307,   308,   309,     0,
-     310,   311,     0,     0,     0,     0,   312,   313,   314,   315,
-     316,   317,     0,     0,   318,   319,     0,   320,     0,   321,
-       0,   322,   323,   324,   325,   326,   327,   328,   329,   330,
-       0,     0,   331,   332,     0,     0,   333,   334,   335,   336,
-       0,     0,     0,   337,   338,     0,     0,     0,     0,   339,
-     340,   341,     0,   342,   343,   344,   345,     0,   346,   347,
-       0,     0,     0,     0,     0,     0,     0,     0,   348,   349,
-     350,     0,     0,   351,     0,   352,   353,   354,   355,   356,
-     357,   358,   359,   360,   361,   362,   363,     0,     0,   364,
-     365,   366,     0,   367,     0,   368,   369,   370,   371,   372,
-       0,   373,   374,   375,     0,     0,   376,     0,     0,     0,
-     377,   378,   379,   380,   381,     0,     0,   382,   383,   384,
-     385,   386,     0,   387,   388,     0,   389,   390,   391,     0,
-       0,   392,     0,   393,     0,   394,   395,     0,   396,   397,
-       0,     0,     0,   398,   399,   400,   401,   402,   403,   404,
-     405,   406,   407,     0,   408,   409,     0,     0,     0,   410,
-     411,   412,   413,     0,     0,     0,   414,     0,     0,     0,
-     415,     0,   416,   417,   418,   419,     0,   420,   421,   422,
-     423,   424,   425,     0,     0,     0,     0,     0,     0,   426,
-     427,     0,   428,     0,     0,   429,     0,     0,   430,   431,
-     432,     0,     0,   433,   434,     0,   435,   436,   437,   438,
-     439,   440,     0,     0,   441,   442,   443,   444,     0,   445,
-     446,     0,   447,     0,   448,   449,   450,   451,     0,     0,
-     452,   453,     0,   454,   455,   456,   457,     0,     0,     0,
-       0,     0,   458,   459,   460,     0,     0,     0,   461,   462,
-     463,   464,     0,   465,   466,     0,   467,   468,     0,   469,
-     470,     0,     0,   471,     0,     0,   472,     0,   473,     0,
-     474,   475,   476,     0,     0,     0,     0,     0,     0,   477,
-       0,     0,   478,     0,     0,     0,   479,   480,   481,   482,
-     483,   484,     0,     0,     0,     0,     0,     0,   485,   486,
-       0,   487,   488,   489,     0,     0,   490,     0,     0,     0,
-       0,     0,   139,  2270,   140,   141,   142,   143,   144,     0,
-       0,   145,     0,     0,     0,   146,   538,     0,   147,     0,
-     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
-       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
-     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
-       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
-       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
-     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
-     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
-     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
-       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
-     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
-     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
-       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
-       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
-     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
-     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
-       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
-     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
-     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
-       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
-       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
-     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
-     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
-     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
-     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
-       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
-       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
-       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
-     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
-       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
-       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
-     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
-     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
-     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
-       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
-     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
-     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
-     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
-     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
-     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
-     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
-     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
-     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
-       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
-       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
-     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
-       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
-       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
-     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
-       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
-       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
-     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
-     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
-     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
-     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
-       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
-       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
-       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
-     489,     0,     0,   490,     0,     0,     0,     0,   139,     0,
-     140,   141,   142,   143,   144,  2512,     0,   145,     0,     0,
-       0,   146,     0,  2513,   147,     0,   148,   149,   150,   151,
-     152,   153,   154,     0,   155,     0,     0,     0,   156,     0,
-       0,     0,   157,     0,     0,   158,   159,   160,     0,   161,
-       0,   162,   163,     0,     0,   164,     0,     0,   165,   166,
-       0,   167,   168,     0,   169,   170,     0,   171,   172,   173,
-     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
-     183,   184,   185,     0,   186,   187,   188,   189,   190,   191,
-     192,   193,     0,   194,   195,     0,   196,   197,   198,   199,
-     200,     0,   201,     0,     0,   202,     0,     0,   203,     0,
-       0,     0,   204,     0,     0,     0,   205,   206,   207,     0,
-       0,   208,     0,     0,     0,     0,   209,   210,     0,     0,
-       0,     0,   211,     0,   212,     0,     0,     0,   213,     0,
-     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
-     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
-       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
-     231,   232,   233,   234,   235,     0,     0,   236,   237,   238,
-       0,     0,   239,   240,     0,   241,   242,   243,     0,     0,
-     244,     0,     0,     0,   245,     0,   246,     0,   247,     0,
-     248,   249,   250,   251,   252,   253,     0,   254,     0,     0,
-       0,   255,   256,   257,     0,   258,     0,     0,     0,   259,
-     260,     0,     0,     0,   261,   262,   263,   264,     0,     0,
-     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
-       0,   270,   271,     0,     0,     0,   272,     0,   273,   274,
-       0,   275,   276,     0,     0,     0,   277,     0,     0,   278,
-     279,   280,     0,     0,   281,     0,     0,   282,   283,     0,
-       0,     0,     0,     0,   284,   285,     0,   286,     0,   287,
-       0,   288,   289,     0,     0,     0,     0,     0,     0,     0,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-     300,   301,   302,     0,   303,   304,   305,     0,   306,   307,
-     308,   309,     0,   310,   311,     0,     0,     0,     0,   312,
-     313,   314,   315,   316,   317,     0,     0,   318,   319,     0,
-     320,     0,   321,     0,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,     0,     0,   331,   332,     0,     0,   333,
-     334,   335,   336,     0,     0,     0,   337,   338,     0,     0,
-       0,     0,   339,   340,   341,     0,   342,   343,   344,   345,
-       0,   346,   347,     0,     0,     0,     0,     0,     0,     0,
-       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
-     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
-       0,     0,   364,   365,   366,     0,   367,     0,   368,   369,
-     370,   371,   372,     0,   373,   374,   375,     0,     0,   376,
-       0,     0,     0,   377,   378,   379,   380,   381,     0,     0,
-     382,   383,   384,   385,   386,     0,   387,   388,     0,   389,
-     390,   391,     0,     0,   392,     0,   393,     0,   394,   395,
-       0,   396,   397,     0,     0,     0,   398,   399,   400,   401,
-     402,   403,   404,   405,   406,   407,     0,   408,   409,     0,
-       0,     0,   410,   411,   412,   413,     0,     0,     0,   414,
-       0,     0,     0,   415,     0,   416,   417,   418,   419,     0,
-     420,   421,   422,   423,   424,   425,     0,     0,     0,     0,
-       0,     0,   426,   427,     0,   428,     0,     0,   429,     0,
-       0,   430,   431,   432,     0,     0,   433,   434,     0,   435,
-     436,   437,   438,   439,   440,     0,     0,   441,   442,   443,
-     444,     0,   445,   446,     0,   447,     0,   448,   449,   450,
-     451,     0,     0,   452,   453,     0,   454,   455,   456,   457,
-       0,     0,     0,     0,     0,   458,   459,   460,     0,     0,
-       0,   461,   462,   463,   464,     0,   465,   466,     0,   467,
-     468,     0,   469,   470,     0,     0,   471,     0,     0,   472,
-       0,   473,     0,   474,   475,   476,     0,     0,     0,     0,
-       0,     0,   477,     0,     0,   478,     0,     0,     0,   479,
-     480,   481,   482,   483,   484,     0,     0,     0,     0,     0,
-       0,   485,   486,     0,   487,   488,   489,     0,     0,   490,
-       0,     0,     0,     0,   139,     0,   140,   141,   142,   143,
-     144,     0,     0,   145,     0,     0,     0,   146,  4436,   779,
-     147,     0,   148,   149,   150,   151,   152,   153,   154,     0,
-     155,     0,     0,     0,   156,     0,     0,     0,   157,     0,
-       0,   158,   159,   160,     0,   161,     0,   162,   163,     0,
-       0,   164,     0,     0,   165,   166,     0,   167,   168,     0,
-     169,   170,     0,   171,   172,   173,   174,   175,   176,   177,
-       0,   178,   179,   180,   181,   182,   183,   184,   185,     0,
-     186,   187,   188,   189,   190,   191,   192,   193,     0,   194,
-     195,     0,   196,   197,   198,   199,   200,     0,   201,     0,
-       0,   202,     0,     0,   203,     0,     0,     0,   204,     0,
-       0,     0,   205,   206,   207,     0,     0,   208,     0,     0,
-       0,     0,   209,   210,     0,     0,     0,     0,   211,     0,
-     212,     0,     0,     0,   213,     0,   214,   215,   216,   217,
-       0,     0,     0,   218,     0,     0,   219,   220,   221,     0,
-       0,     0,   222,     0,   223,   224,     0,   225,   226,   227,
-       0,     0,   228,   229,     0,   230,   231,   232,   233,   234,
-     235,     0,     0,   236,   237,   238,     0,     0,   239,   240,
-       0,   241,   242,   243,     0,     0,   244,     0,     0,     0,
-     245,     0,   246,     0,   247,     0,   248,   249,   250,   251,
-     252,   253,     0,   254,     0,     0,     0,   255,   256,   257,
-       0,   258,     0,     0,     0,   259,   260,     0,     0,     0,
-     261,   262,   263,   264,     0,     0,   265,   266,   267,     0,
-     268,     0,   269,     0,     0,     0,     0,   270,   271,     0,
-       0,     0,   272,     0,   273,   274,     0,   275,   276,     0,
-       0,     0,   277,     0,     0,   278,   279,   280,     0,     0,
-     281,     0,     0,   282,   283,     0,     0,     0,     0,     0,
-     284,   285,     0,   286,     0,   287,     0,   288,   289,     0,
-       0,     0,     0,     0,     0,     0,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,   300,   301,   302,     0,
-     303,   304,   305,     0,   306,   307,   308,   309,     0,   310,
-     311,     0,     0,     0,     0,   312,   313,   314,   315,   316,
-     317,     0,     0,   318,   319,     0,   320,     0,   321,     0,
-     322,   323,   324,   325,   326,   327,   328,   329,   330,     0,
-       0,   331,   332,     0,     0,   333,   334,   335,   336,     0,
-       0,     0,   337,   338,     0,     0,     0,     0,   339,   340,
-     341,     0,   342,   343,   344,   345,     0,   346,   347,     0,
-       0,     0,     0,     0,     0,     0,     0,   348,   349,   350,
-       0,     0,   351,     0,   352,   353,   354,   355,   356,   357,
-     358,   359,   360,   361,   362,   363,     0,     0,   364,   365,
-     366,     0,   367,     0,   368,   369,   370,   371,   372,     0,
-     373,   374,   375,     0,     0,   376,     0,     0,     0,   377,
-     378,   379,   380,   381,     0,     0,   382,   383,   384,   385,
-     386,     0,   387,   388,     0,   389,   390,   391,     0,     0,
-     392,     0,   393,     0,   394,   395,     0,   396,   397,     0,
-       0,     0,   398,   399,   400,   401,   402,   403,   404,   405,
-     406,   407,     0,   408,   409,     0,     0,     0,   410,   411,
-     412,   413,     0,     0,     0,   414,     0,     0,     0,   415,
-       0,   416,   417,   418,   419,     0,   420,   421,   422,   423,
-     424,   425,     0,     0,     0,     0,     0,     0,   426,   427,
-       0,   428,     0,     0,   429,     0,     0,   430,   431,   432,
-       0,     0,   433,   434,     0,   435,   436,   437,   438,   439,
-     440,     0,     0,   441,   442,   443,   444,     0,   445,   446,
-       0,   447,     0,   448,   449,   450,   451,     0,     0,   452,
-     453,     0,   454,   455,   456,   457,     0,     0,     0,     0,
-       0,   458,   459,   460,     0,     0,     0,   461,   462,   463,
-     464,     0,   465,   466,     0,   467,   468,     0,   469,   470,
-       0,     0,   471,     0,     0,   472,     0,   473,     0,   474,
-     475,   476,     0,     0,     0,     0,     0,     0,   477,     0,
-       0,   478,     0,     0,     0,   479,   480,   481,   482,   483,
-     484,     0,     0,     0,     0,     0,     0,   485,   486,     0,
-     487,   488,   489,     0,     0,   490,     0,     0,   139,     0,
-     140,   141,   142,   143,   144,     0,     0,   145,     0,     0,
-       0,   146,     0,     0,   147,   538,   148,   149,   150,   151,
-     152,   153,   154,     0,   155,     0,     0,     0,   156,     0,
-       0,     0,   157,     0,     0,   158,   159,   160,     0,   161,
-       0,   162,   163,     0,     0,   164,     0,     0,   165,   166,
-       0,   167,   168,     0,   169,   170,     0,   171,   172,   173,
-     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
-     183,   184,   185,     0,   186,   187,   188,   189,   190,   191,
-     192,   193,     0,   194,   195,     0,   196,   197,   198,   199,
-     200,     0,   201,     0,     0,   202,     0,     0,   203,     0,
-       0,     0,   204,     0,     0,     0,   205,   206,   207,     0,
-       0,   208,     0,     0,     0,     0,   209,   210,     0,     0,
-       0,     0,   211,     0,   212,     0,     0,     0,   213,     0,
-     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
-     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
-       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
-     231,   232,   233,   234,   235,     0,     0,   236,   605,   238,
-       0,     0,   239,   240,     0,   241,   242,   243,     0,     0,
-     244,     0,     0,     0,   245,     0,   246,     0,   247,     0,
-     248,   249,   250,   251,   252,   253,     0,   254,     0,     0,
-       0,   255,   256,   257,     0,   258,     0,     0,     0,   259,
-     260,     0,     0,     0,   261,   262,   263,   264,     0,     0,
-     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
-       0,   270,   271,     0,     0,     0,   272,     0,   273,   274,
-       0,   275,   276,     0,     0,     0,   277,     0,     0,   278,
-     279,   280,     0,     0,   281,     0,     0,   282,   283,     0,
-       0,     0,     0,     0,   284,   285,     0,   286,     0,   287,
-       0,   288,   289,     0,     0,     0,     0,     0,     0,     0,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-     300,   301,   302,     0,   303,   304,   305,     0,   306,   307,
-     308,   309,     0,   310,   311,     0,     0,     0,     0,   312,
-     313,   314,   315,   316,   317,     0,     0,   318,   319,     0,
-     320,     0,   321,     0,   322,   323,   324,   325,   326,   327,
-     328,   329,   330,     0,     0,   331,   332,     0,     0,   333,
-     334,   335,   336,     0,     0,     0,   337,   338,     0,     0,
-       0,     0,   339,   340,   341,     0,   342,   343,   344,   345,
-       0,   346,   347,     0,     0,     0,     0,     0,     0,     0,
-       0,   348,   349,   350,     0,     0,   351,     0,   352,   353,
-     606,   355,   356,   357,   358,   359,   360,   361,   362,   363,
-       0,     0,   364,   365,   366,     0,   367,     0,   368,   369,
-     370,   371,   372,     0,   373,   374,   375,     0,     0,   376,
-       0,     0,     0,   377,   378,   379,   380,   381,     0,     0,
-     382,   383,   384,   385,   386,     0,   387,   388,     0,   389,
-     390,   391,     0,     0,   392,     0,   393,     0,   394,   395,
-       0,   396,   397,     0,     0,     0,   398,   399,   400,   401,
-     402,   403,   404,   405,   406,   407,     0,   408,   409,     0,
-       0,     0,   410,   411,   412,   413,     0,     0,     0,   414,
-       0,     0,     0,   415,     0,   416,   417,   418,   419,     0,
-     420,   421,   422,   423,   424,   425,     0,     0,     0,     0,
-       0,     0,   426,   427,     0,   428,     0,     0,   429,     0,
-       0,   430,   431,   432,     0,     0,   433,   434,     0,   435,
-     436,   437,   438,   439,   440,     0,     0,   441,   442,   443,
-     444,     0,   445,   446,     0,   447,     0,   448,   449,   450,
-     451,     0,     0,   452,   453,     0,   454,   455,   456,   457,
-       0,     0,     0,     0,     0,   458,   459,   460,     0,     0,
-       0,   461,   462,   463,   464,     0,   465,   466,     0,   467,
-     468,     0,   469,   470,     0,     0,   471,     0,     0,   472,
-       0,   473,     0,   474,   475,   476,     0,     0,     0,     0,
-       0,     0,   477,     0,     0,   478,     0,     0,     0,   479,
-     480,   481,   482,   483,   484,     0,     0,     0,     0,     0,
-       0,   485,   486,     0,   487,   488,   489,     0,     0,   490,
-       0,     0,   139,     0,   140,   141,   142,   143,   144,     0,
-       0,   145,     0,     0,     0,   146,     0,     0,   147,   538,
-     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
-       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
-     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
-       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
-       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
-     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
-     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
-     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
-       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
-     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
-     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
-       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
-       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
-     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
-     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
-       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
-     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
-     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
-       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
-       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
-     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
-     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
-     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
-     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
-       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
-       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
-       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
-     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
-       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
-       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
-     324,   325,   326,   327,   328,   329,   330,     0,     0,   331,
-     332,     0,     0,   333,   334,   335,   336,     0,     0,     0,
-     337,   338,     0,     0,     0,     0,   339,   340,   341,     0,
-     342,   343,   344,   345,     0,   346,   347,     0,     0,     0,
-       0,     0,     0,     0,     0,   348,   349,   350,     0,     0,
-     351,     0,   352,   353,   354,   355,   356,   357,   358,   359,
-     360,   361,   362,   363,     0,     0,   364,   365,   366,     0,
-     367,     0,   368,   369,   370,   371,   372,     0,   373,   374,
-     375,     0,     0,   376,     0,     0,     0,   377,   378,   379,
-     380,   381,     0,     0,   382,   383,   384,   385,   386,     0,
-     387,   388,     0,   389,   390,   391,     0,     0,   392,     0,
-     393,     0,   394,   395,     0,   396,   397,     0,     0,     0,
-     398,   399,   400,   401,   402,   403,   404,   405,   406,   407,
-       0,   408,   409,     0,     0,     0,   410,   411,   412,   413,
-       0,     0,     0,   414,     0,     0,     0,   415,     0,   416,
-     417,   418,   419,     0,   420,   421,   422,   423,   424,   425,
-       0,     0,     0,     0,     0,     0,   426,   427,     0,   428,
-       0,     0,   429,     0,     0,   430,   431,   432,     0,     0,
-     433,   434,     0,   435,   436,   437,   438,   439,   440,     0,
-       0,   441,   442,   443,   444,     0,   445,   446,     0,   447,
-       0,   448,   449,   450,   451,     0,     0,   452,   453,     0,
-     454,   455,   456,   457,     0,     0,     0,     0,     0,   458,
-     459,   460,     0,     0,     0,   461,   462,   463,   464,     0,
-     465,   466,     0,   467,   468,     0,   469,   470,     0,     0,
-     471,     0,     0,   472,     0,   473,     0,   474,   475,   476,
-       0,     0,     0,     0,     0,     0,   477,     0,     0,   478,
-       0,     0,     0,   479,   480,   481,   482,   483,   484,     0,
-       0,     0,     0,     0,     0,   485,   486,     0,   487,   488,
-     489,     0,     0,   490,     0,     0,   139,     0,   140,   141,
-     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
-       0,     0,   147,   779,   148,   149,   150,   151,   152,   153,
+     325,   326,   327,   328,   329,   330,   331,     0,     0,   332,
+     333,     0,     0,   334,   335,   336,   337,     0,     0,     0,
+     338,   339,     0,     0,     0,     0,   340,   341,   342,     0,
+     343,   344,   345,   346,     0,   347,   348,     0,     0,     0,
+       0,     0,     0,     0,     0,   349,   350,   351,     0,     0,
+     352,     0,   353,   354,   355,   356,   357,   358,   359,   360,
+     361,   362,   363,   364,     0,     0,   365,   366,   367,     0,
+     368,     0,   369,   370,   371,   372,   373,     0,   374,   375,
+     376,     0,     0,   377,     0,     0,     0,   378,   379,   380,
+     381,   382,     0,     0,   383,   384,   385,   386,   387,     0,
+     388,   389,     0,   390,   391,   392,     0,     0,   393,     0,
+     394,     0,   395,   396,     0,   397,   398,     0,     0,     0,
+     399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
+       0,   409,   410,     0,     0,     0,   411,   412,   413,   414,
+       0,     0,     0,   415,     0,     0,     0,   416,     0,   417,
+     418,   419,   420,     0,   421,   422,   423,   424,   425,   426,
+       0,     0,     0,     0,     0,     0,   427,   428,     0,   429,
+       0,     0,   430,     0,     0,   431,   432,   433,     0,     0,
+     434,   435,     0,   436,   437,   438,   439,   440,   441,     0,
+       0,   442,   443,   444,   445,     0,   446,   447,     0,   448,
+       0,   449,   450,   451,   452,     0,     0,   453,   454,     0,
+     455,   456,   457,   458,     0,     0,     0,     0,     0,   459,
+     460,   461,     0,     0,     0,   462,   463,   464,   465,     0,
+     466,   467,     0,   468,   469,     0,   470,   471,     0,     0,
+     472,     0,     0,   473,     0,   474,     0,   475,   476,   477,
+       0,     0,     0,     0,     0,     0,   478,     0,     0,   479,
+       0,     0,     0,   480,   481,   482,   483,   484,   485,     0,
+       0,     0,     0,     0,     0,   486,   487,     0,   488,   489,
+     490,     0,     0,   491,     0,     0,     0,     0,     0,   139,
+    2273,   140,   141,   142,   143,   144,     0,     0,   145,     0,
+       0,     0,   146,   541,     0,   147,     0,   148,   149,   150,
+     151,   152,   153,   154,     0,   155,     0,     0,     0,   156,
+       0,     0,     0,   157,     0,     0,   158,   159,   160,     0,
+     161,     0,   162,   163,     0,     0,   164,     0,     0,   165,
+     166,     0,   167,   168,     0,   169,   170,     0,   171,   172,
+     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
+     182,   183,   184,   185,     0,   186,   187,   188,   189,   190,
+     191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
+     199,   200,     0,   201,     0,     0,   202,     0,     0,   203,
+       0,     0,     0,   204,     0,     0,     0,   205,   206,   207,
+       0,     0,   208,     0,     0,     0,     0,   209,   210,     0,
+       0,     0,     0,   211,     0,   212,     0,     0,     0,   213,
+       0,   214,   215,   216,   217,     0,     0,     0,   218,     0,
+       0,   219,   220,   221,     0,     0,     0,   222,     0,   223,
+     224,     0,   225,   226,   227,     0,     0,   228,   229,     0,
+     230,   231,   232,   233,   234,   235,     0,     0,   236,   237,
+     238,     0,     0,   239,   240,     0,   241,   242,   243,     0,
+       0,   244,     0,     0,     0,   245,     0,   246,     0,   247,
+       0,   248,   249,   250,   251,   252,   253,     0,   254,     0,
+       0,     0,   255,   256,   257,     0,   258,     0,     0,     0,
+     259,   260,     0,     0,     0,   261,   262,   263,   264,     0,
+       0,   265,   266,   267,     0,   268,     0,   269,     0,     0,
+       0,     0,   270,   271,     0,     0,     0,   272,     0,   273,
+     274,     0,   275,   276,     0,     0,     0,   277,     0,     0,
+     278,   279,   280,     0,     0,   281,     0,     0,   282,   283,
+       0,     0,     0,     0,     0,   284,   285,     0,   286,     0,
+     287,     0,   288,   289,     0,     0,     0,     0,     0,     0,
+       0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,   300,   301,   302,     0,   303,   304,   305,     0,   306,
+     307,   308,   309,     0,   310,   311,     0,     0,     0,     0,
+     312,   313,   314,   315,   316,   317,     0,     0,   318,   319,
+       0,   320,     0,   321,     0,   322,   323,   324,   325,   326,
+     327,   328,   329,   330,   331,     0,     0,   332,   333,     0,
+       0,   334,   335,   336,   337,     0,     0,     0,   338,   339,
+       0,     0,     0,     0,   340,   341,   342,     0,   343,   344,
+     345,   346,     0,   347,   348,     0,     0,     0,     0,     0,
+       0,     0,     0,   349,   350,   351,     0,     0,   352,     0,
+     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
+     363,   364,     0,     0,   365,   366,   367,     0,   368,     0,
+     369,   370,   371,   372,   373,     0,   374,   375,   376,     0,
+       0,   377,     0,     0,     0,   378,   379,   380,   381,   382,
+       0,     0,   383,   384,   385,   386,   387,     0,   388,   389,
+       0,   390,   391,   392,     0,     0,   393,     0,   394,     0,
+     395,   396,     0,   397,   398,     0,     0,     0,   399,   400,
+     401,   402,   403,   404,   405,   406,   407,   408,     0,   409,
+     410,     0,     0,     0,   411,   412,   413,   414,     0,     0,
+       0,   415,     0,     0,     0,   416,     0,   417,   418,   419,
+     420,     0,   421,   422,   423,   424,   425,   426,     0,     0,
+       0,     0,     0,     0,   427,   428,     0,   429,     0,     0,
+     430,     0,     0,   431,   432,   433,     0,     0,   434,   435,
+       0,   436,   437,   438,   439,   440,   441,     0,     0,   442,
+     443,   444,   445,     0,   446,   447,     0,   448,     0,   449,
+     450,   451,   452,     0,     0,   453,   454,     0,   455,   456,
+     457,   458,     0,     0,     0,     0,     0,   459,   460,   461,
+       0,     0,     0,   462,   463,   464,   465,     0,   466,   467,
+       0,   468,   469,     0,   470,   471,     0,     0,   472,     0,
+       0,   473,     0,   474,     0,   475,   476,   477,     0,     0,
+       0,     0,     0,     0,   478,     0,     0,   479,     0,     0,
+       0,   480,   481,   482,   483,   484,   485,     0,     0,     0,
+       0,     0,     0,   486,   487,     0,   488,   489,   490,     0,
+       0,   491,     0,     0,     0,     0,   139,     0,   140,   141,
+     142,   143,   144,  2516,     0,   145,     0,     0,     0,   146,
+       0,  2517,   147,     0,   148,   149,   150,   151,   152,   153,
      154,     0,   155,     0,     0,     0,   156,     0,     0,     0,
      157,     0,     0,   158,   159,   160,     0,   161,     0,   162,
      163,     0,     0,   164,     0,     0,   165,   166,     0,   167,
@@ -8529,98 +8294,160 @@ static const yytype_int16 yytable[] =
        0,   310,   311,     0,     0,     0,     0,   312,   313,   314,
      315,   316,   317,     0,     0,   318,   319,     0,   320,     0,
      321,     0,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,     0,     0,   331,   332,     0,     0,   333,   334,   335,
-     336,     0,     0,     0,   337,   338,     0,     0,     0,     0,
-     339,   340,   341,     0,   342,   343,   344,   345,     0,   346,
-     347,     0,     0,     0,     0,     0,     0,     0,     0,   348,
-     349,   350,     0,     0,   351,     0,   352,   353,   354,   355,
-     356,   357,   358,   359,   360,   361,   362,   363,     0,     0,
-     364,   365,   366,     0,   367,     0,   368,   369,   370,   371,
-     372,     0,   373,   374,   375,     0,     0,   376,     0,     0,
-       0,   377,   378,   379,   380,   381,     0,     0,   382,   383,
-     384,   385,   386,     0,   387,   388,     0,   389,   390,   391,
-       0,     0,   392,     0,   393,     0,   394,   395,     0,   396,
-     397,     0,     0,     0,   398,   399,   400,   401,   402,   403,
-     404,   405,   406,   407,     0,   408,   409,     0,     0,     0,
-     410,   411,   412,   413,     0,     0,     0,   414,     0,     0,
-       0,   415,     0,   416,   417,   418,   419,     0,   420,   421,
-     422,   423,   424,   425,     0,     0,     0,     0,     0,     0,
-     426,   427,     0,   428,     0,     0,   429,     0,     0,   430,
-     431,   432,     0,     0,   433,   434,     0,   435,   436,   437,
-     438,   439,   440,     0,     0,   441,   442,   443,   444,     0,
-     445,   446,     0,   447,     0,   448,   449,   450,   451,     0,
-       0,   452,   453,     0,   454,   455,   456,   457,     0,     0,
-       0,     0,     0,   458,   459,   460,     0,     0,     0,   461,
-     462,   463,   464,     0,   465,   466,     0,   467,   468,     0,
-     469,   470,     0,     0,   471,     0,     0,   472,     0,   473,
-       0,   474,   475,   476,     0,     0,     0,     0,     0,     0,
-     477,     0,     0,   478,     0,     0,     0,   479,   480,   481,
-     482,   483,   484,     0,     0,     0,     0,     0,     0,   485,
-     486,     0,   487,   488,   489,     0,     0,   490,     0,     0,
-     139,     0,   140,   141,   142,   143,   144,     0,     0,   145,
-       0,     0,     0,   146,     0,     0,   147,  2513,   148,   149,
-     150,   151,   152,   153,   154,     0,   155,     0,     0,     0,
-     156,     0,     0,     0,   157,     0,     0,   158,   159,   160,
-       0,   161,     0,   162,   163,     0,     0,   164,     0,     0,
-     165,   166,     0,   167,   168,     0,   169,   170,     0,   171,
-     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
-     181,   182,   183,   184,   185,     0,   186,   187,   188,   189,
-     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
-     198,   199,   200,     0,   201,     0,     0,   202,     0,     0,
-     203,     0,     0,     0,   204,     0,     0,     0,   205,   206,
-     207,     0,     0,   208,     0,     0,     0,     0,   209,   210,
-       0,     0,     0,     0,   211,     0,   212,     0,     0,     0,
-     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
-       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
-     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
-       0,   230,   231,   232,   233,   234,   235,     0,     0,   236,
-     237,   238,     0,     0,   239,   240,     0,   241,   242,   243,
-       0,     0,   244,     0,     0,     0,   245,     0,   246,     0,
-     247,     0,   248,   249,   250,   251,   252,   253,     0,   254,
-       0,     0,     0,   255,   256,   257,     0,   258,     0,     0,
-       0,   259,   260,     0,     0,     0,   261,   262,   263,   264,
-       0,     0,   265,   266,   267,     0,   268,     0,   269,     0,
-       0,     0,     0,   270,   271,     0,     0,     0,   272,     0,
-     273,   274,     0,   275,   276,     0,     0,     0,   277,     0,
-       0,   278,   279,   280,     0,     0,   281,     0,     0,   282,
-     283,   617,     0,     0,     0,     0,   284,   285,     0,   286,
-       0,   287,     0,   288,   289,     0,     0,     0,     0,     0,
-       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
-     298,   299,   300,   301,   302,     0,   303,   304,   305,     0,
-     306,   307,   308,   309,     0,   310,   311,     0,     0,     0,
-       0,   312,   313,   314,   315,   316,   317,     0,     0,   318,
-     319,     0,   320,     0,   321,     0,   322,   323,   324,   325,
-     326,   327,   328,   329,   330,     0,     0,   331,   332,     0,
-       0,   333,   334,   335,   336,     0,     0,     0,   337,   338,
-       0,     0,     0,     0,   339,   340,   341,     0,   342,   343,
-     344,   345,     0,   346,   347,     0,     0,     0,     0,     0,
-       0,     0,     0,   348,   349,   350,     0,     0,   351,     0,
-     352,   353,   354,   355,   356,   357,   358,   359,   360,   361,
-     362,   363,     0,     0,   364,   365,   366,     0,   367,     0,
-     368,   369,   370,   371,   372,     0,   373,   374,   375,     0,
-       0,   376,     0,     0,     0,   377,   378,   379,   380,   381,
-       0,     0,   382,   383,   384,   385,   386,     0,   387,   388,
-       0,   389,   390,   391,     0,     0,   392,     0,   393,     0,
-     394,   395,     0,   396,   397,     0,     0,     0,   398,   399,
-     400,   401,   402,   403,   404,   405,   406,   407,     0,   408,
-     409,     0,     0,     0,   410,   411,   412,   413,     0,     0,
-       0,   414,     0,     0,     0,   415,     0,   416,   417,   418,
-     419,     0,   420,   421,   422,   423,   424,   425,     0,     0,
-       0,     0,     0,     0,   426,   427,     0,   428,     0,     0,
-     429,     0,     0,   430,   431,   432,     0,     0,   433,   434,
-       0,   435,   436,   437,   438,   439,   440,     0,     0,   441,
-     442,   443,   444,     0,   445,   446,     0,   447,     0,   448,
-     449,   450,   451,     0,   136,   452,   453,     0,   454,   455,
-     456,   457,     0,     0,     0,     0,     0,   458,   459,   460,
-       0,     0,     0,   461,   462,   463,   464,     0,   465,   466,
-       0,   467,   468,     0,   469,   470,     0,     0,   471,     0,
-       0,   472,     0,   473,     0,   474,   475,   476,     0,     0,
-       0,     0,     0,     0,   477,     0,     0,   478,     0,     0,
-       0,   479,   480,   481,   482,   483,   484,     0,     0,     0,
-       0,     0,     0,   485,   486,     0,   487,   488,   489,     0,
-       0,   490,     0,   139,     0,   140,   141,   142,   143,   144,
+     330,   331,     0,     0,   332,   333,     0,     0,   334,   335,
+     336,   337,     0,     0,     0,   338,   339,     0,     0,     0,
+       0,   340,   341,   342,     0,   343,   344,   345,   346,     0,
+     347,   348,     0,     0,     0,     0,     0,     0,     0,     0,
+     349,   350,   351,     0,     0,   352,     0,   353,   354,   355,
+     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
+       0,   365,   366,   367,     0,   368,     0,   369,   370,   371,
+     372,   373,     0,   374,   375,   376,     0,     0,   377,     0,
+       0,     0,   378,   379,   380,   381,   382,     0,     0,   383,
+     384,   385,   386,   387,     0,   388,   389,     0,   390,   391,
+     392,     0,     0,   393,     0,   394,     0,   395,   396,     0,
+     397,   398,     0,     0,     0,   399,   400,   401,   402,   403,
+     404,   405,   406,   407,   408,     0,   409,   410,     0,     0,
+       0,   411,   412,   413,   414,     0,     0,     0,   415,     0,
+       0,     0,   416,     0,   417,   418,   419,   420,     0,   421,
+     422,   423,   424,   425,   426,     0,     0,     0,     0,     0,
+       0,   427,   428,     0,   429,     0,     0,   430,     0,     0,
+     431,   432,   433,     0,     0,   434,   435,     0,   436,   437,
+     438,   439,   440,   441,     0,     0,   442,   443,   444,   445,
+       0,   446,   447,     0,   448,     0,   449,   450,   451,   452,
+       0,     0,   453,   454,     0,   455,   456,   457,   458,     0,
+       0,     0,     0,     0,   459,   460,   461,     0,     0,     0,
+     462,   463,   464,   465,     0,   466,   467,     0,   468,   469,
+       0,   470,   471,     0,     0,   472,     0,     0,   473,     0,
+     474,     0,   475,   476,   477,     0,     0,     0,     0,     0,
+       0,   478,     0,     0,   479,     0,     0,     0,   480,   481,
+     482,   483,   484,   485,     0,     0,     0,     0,     0,     0,
+     486,   487,     0,   488,   489,   490,     0,     0,   491,     0,
+       0,     0,     0,   139,     0,   140,   141,   142,   143,   144,
+       0,     0,   145,     0,     0,     0,   146,  4441,   782,   147,
+       0,   148,   149,   150,   151,   152,   153,   154,     0,   155,
+       0,     0,     0,   156,     0,     0,     0,   157,     0,     0,
+     158,   159,   160,     0,   161,     0,   162,   163,     0,     0,
+     164,     0,     0,   165,   166,     0,   167,   168,     0,   169,
+     170,     0,   171,   172,   173,   174,   175,   176,   177,     0,
+     178,   179,   180,   181,   182,   183,   184,   185,     0,   186,
+     187,   188,   189,   190,   191,   192,   193,     0,   194,   195,
+       0,   196,   197,   198,   199,   200,     0,   201,     0,     0,
+     202,     0,     0,   203,     0,     0,     0,   204,     0,     0,
+       0,   205,   206,   207,     0,     0,   208,     0,     0,     0,
+       0,   209,   210,     0,     0,     0,     0,   211,     0,   212,
+       0,     0,     0,   213,     0,   214,   215,   216,   217,     0,
+       0,     0,   218,     0,     0,   219,   220,   221,     0,     0,
+       0,   222,     0,   223,   224,     0,   225,   226,   227,     0,
+       0,   228,   229,     0,   230,   231,   232,   233,   234,   235,
+       0,     0,   236,   237,   238,     0,     0,   239,   240,     0,
+     241,   242,   243,     0,     0,   244,     0,     0,     0,   245,
+       0,   246,     0,   247,     0,   248,   249,   250,   251,   252,
+     253,     0,   254,     0,     0,     0,   255,   256,   257,     0,
+     258,     0,     0,     0,   259,   260,     0,     0,     0,   261,
+     262,   263,   264,     0,     0,   265,   266,   267,     0,   268,
+       0,   269,     0,     0,     0,     0,   270,   271,     0,     0,
+       0,   272,     0,   273,   274,     0,   275,   276,     0,     0,
+       0,   277,     0,     0,   278,   279,   280,     0,     0,   281,
+       0,     0,   282,   283,     0,     0,     0,     0,     0,   284,
+     285,     0,   286,     0,   287,     0,   288,   289,     0,     0,
+       0,     0,     0,     0,     0,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,     0,   303,
+     304,   305,     0,   306,   307,   308,   309,     0,   310,   311,
+       0,     0,     0,     0,   312,   313,   314,   315,   316,   317,
+       0,     0,   318,   319,     0,   320,     0,   321,     0,   322,
+     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
+       0,   332,   333,     0,     0,   334,   335,   336,   337,     0,
+       0,     0,   338,   339,     0,     0,     0,     0,   340,   341,
+     342,     0,   343,   344,   345,   346,     0,   347,   348,     0,
+       0,     0,     0,     0,     0,     0,     0,   349,   350,   351,
+       0,     0,   352,     0,   353,   354,   355,   356,   357,   358,
+     359,   360,   361,   362,   363,   364,     0,     0,   365,   366,
+     367,     0,   368,     0,   369,   370,   371,   372,   373,     0,
+     374,   375,   376,     0,     0,   377,     0,     0,     0,   378,
+     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
+     387,     0,   388,   389,     0,   390,   391,   392,     0,     0,
+     393,     0,   394,     0,   395,   396,     0,   397,   398,     0,
+       0,     0,   399,   400,   401,   402,   403,   404,   405,   406,
+     407,   408,     0,   409,   410,     0,     0,     0,   411,   412,
+     413,   414,     0,     0,     0,   415,     0,     0,     0,   416,
+       0,   417,   418,   419,   420,     0,   421,   422,   423,   424,
+     425,   426,     0,     0,     0,     0,     0,     0,   427,   428,
+       0,   429,     0,     0,   430,     0,     0,   431,   432,   433,
+       0,     0,   434,   435,     0,   436,   437,   438,   439,   440,
+     441,     0,     0,   442,   443,   444,   445,     0,   446,   447,
+       0,   448,     0,   449,   450,   451,   452,     0,     0,   453,
+     454,     0,   455,   456,   457,   458,     0,     0,     0,     0,
+       0,   459,   460,   461,     0,     0,     0,   462,   463,   464,
+     465,     0,   466,   467,     0,   468,   469,     0,   470,   471,
+       0,     0,   472,     0,     0,   473,     0,   474,     0,   475,
+     476,   477,     0,     0,     0,     0,     0,     0,   478,     0,
+       0,   479,     0,     0,     0,   480,   481,   482,   483,   484,
+     485,     0,     0,     0,     0,     0,     0,   486,   487,     0,
+     488,   489,   490,     0,     0,   491,     0,     0,   139,     0,
+     140,   141,   142,   143,   144,     0,     0,   145,     0,     0,
+       0,   146,     0,     0,   147,   541,   148,   149,   150,   151,
+     152,   153,   154,     0,   155,     0,     0,     0,   156,     0,
+       0,     0,   157,     0,     0,   158,   159,   160,     0,   161,
+       0,   162,   163,     0,     0,   164,     0,     0,   165,   166,
+       0,   167,   168,     0,   169,   170,     0,   171,   172,   173,
+     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
+     183,   184,   185,     0,   186,   187,   188,   189,   190,   191,
+     192,   193,     0,   194,   195,     0,   196,   197,   198,   199,
+     200,     0,   201,     0,     0,   202,     0,     0,   203,     0,
+       0,     0,   204,     0,     0,     0,   205,   206,   207,     0,
+       0,   208,     0,     0,     0,     0,   209,   210,     0,     0,
+       0,     0,   211,     0,   212,     0,     0,     0,   213,     0,
+     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
+     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
+       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
+     231,   232,   233,   234,   235,     0,     0,   236,   608,   238,
+       0,     0,   239,   240,     0,   241,   242,   243,     0,     0,
+     244,     0,     0,     0,   245,     0,   246,     0,   247,     0,
+     248,   249,   250,   251,   252,   253,     0,   254,     0,     0,
+       0,   255,   256,   257,     0,   258,     0,     0,     0,   259,
+     260,     0,     0,     0,   261,   262,   263,   264,     0,     0,
+     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
+       0,   270,   271,     0,     0,     0,   272,     0,   273,   274,
+       0,   275,   276,     0,     0,     0,   277,     0,     0,   278,
+     279,   280,     0,     0,   281,     0,     0,   282,   283,     0,
+       0,     0,     0,     0,   284,   285,     0,   286,     0,   287,
+       0,   288,   289,     0,     0,     0,     0,     0,     0,     0,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,     0,   303,   304,   305,     0,   306,   307,
+     308,   309,     0,   310,   311,     0,     0,     0,     0,   312,
+     313,   314,   315,   316,   317,     0,     0,   318,   319,     0,
+     320,     0,   321,     0,   322,   323,   324,   325,   326,   327,
+     328,   329,   330,   331,     0,     0,   332,   333,     0,     0,
+     334,   335,   336,   337,     0,     0,     0,   338,   339,     0,
+       0,     0,     0,   340,   341,   342,     0,   343,   344,   345,
+     346,     0,   347,   348,     0,     0,     0,     0,     0,     0,
+       0,     0,   349,   350,   351,     0,     0,   352,     0,   353,
+     354,   609,   356,   357,   358,   359,   360,   361,   362,   363,
+     364,     0,     0,   365,   366,   367,     0,   368,     0,   369,
+     370,   371,   372,   373,     0,   374,   375,   376,     0,     0,
+     377,     0,     0,     0,   378,   379,   380,   381,   382,     0,
+       0,   383,   384,   385,   386,   387,     0,   388,   389,     0,
+     390,   391,   392,     0,     0,   393,     0,   394,     0,   395,
+     396,     0,   397,   398,     0,     0,     0,   399,   400,   401,
+     402,   403,   404,   405,   406,   407,   408,     0,   409,   410,
+       0,     0,     0,   411,   412,   413,   414,     0,     0,     0,
+     415,     0,     0,     0,   416,     0,   417,   418,   419,   420,
+       0,   421,   422,   423,   424,   425,   426,     0,     0,     0,
+       0,     0,     0,   427,   428,     0,   429,     0,     0,   430,
+       0,     0,   431,   432,   433,     0,     0,   434,   435,     0,
+     436,   437,   438,   439,   440,   441,     0,     0,   442,   443,
+     444,   445,     0,   446,   447,     0,   448,     0,   449,   450,
+     451,   452,     0,     0,   453,   454,     0,   455,   456,   457,
+     458,     0,     0,     0,     0,     0,   459,   460,   461,     0,
+       0,     0,   462,   463,   464,   465,     0,   466,   467,     0,
+     468,   469,     0,   470,   471,     0,     0,   472,     0,     0,
+     473,     0,   474,     0,   475,   476,   477,     0,     0,     0,
+       0,     0,     0,   478,     0,     0,   479,     0,     0,     0,
+     480,   481,   482,   483,   484,   485,     0,     0,     0,     0,
+       0,     0,   486,   487,     0,   488,   489,   490,     0,     0,
+     491,     0,     0,   139,     0,   140,   141,   142,   143,   144,
        0,     0,   145,     0,     0,     0,   146,     0,     0,   147,
-    1693,   148,   149,   150,   151,   152,   153,   154,     0,   155,
+     541,   148,   149,   150,   151,   152,   153,   154,     0,   155,
        0,     0,     0,   156,     0,     0,     0,   157,     0,     0,
      158,   159,   160,     0,   161,     0,   162,   163,     0,     0,
      164,     0,     0,   165,   166,     0,   167,   168,     0,   169,
@@ -8644,54 +8471,361 @@ static const yytype_int16 yytable[] =
        0,   269,     0,     0,     0,     0,   270,   271,     0,     0,
        0,   272,     0,   273,   274,     0,   275,   276,     0,     0,
        0,   277,     0,     0,   278,   279,   280,     0,     0,   281,
-       0,     0,   282,   283,   617,     0,     0,     0,     0,   284,
+       0,     0,   282,   283,     0,     0,     0,     0,     0,   284,
      285,     0,   286,     0,   287,     0,   288,   289,     0,     0,
        0,     0,     0,     0,     0,   290,   291,   292,   293,   294,
      295,   296,   297,   298,   299,   300,   301,   302,     0,   303,
      304,   305,     0,   306,   307,   308,   309,     0,   310,   311,
        0,     0,     0,     0,   312,   313,   314,   315,   316,   317,
        0,     0,   318,   319,     0,   320,     0,   321,     0,   322,
-     323,   324,   325,   326,   327,   328,   329,   330,     0,     0,
-     331,   332,     0,     0,   333,   334,   335,   336,     0,     0,
-       0,   337,   338,     0,     0,     0,     0,   339,   340,   341,
-       0,   342,   343,   344,   345,     0,   346,   347,     0,     0,
-       0,     0,     0,     0,     0,     0,   348,   349,   350,     0,
-       0,   351,     0,   352,   353,   354,   355,   356,   357,   358,
-     359,   360,   361,   362,   363,     0,     0,   364,   365,   366,
-       0,   367,     0,   368,   369,   370,   371,   372,     0,   373,
-     374,   375,     0,     0,   376,     0,     0,     0,   377,   378,
-     379,   380,   381,     0,     0,   382,   383,   384,   385,   386,
-       0,   387,   388,     0,   389,   390,   391,     0,     0,   392,
-       0,   393,     0,   394,   395,     0,   396,   397,     0,     0,
-       0,   398,   399,   400,   401,   402,   403,   404,   405,   406,
-     407,     0,   408,   409,     0,     0,     0,   410,   411,   412,
-     413,     0,     0,     0,   414,     0,     0,     0,   415,     0,
-     416,   417,   418,   419,     0,   420,   421,   422,   423,   424,
-     425,     0,     0,     0,     0,     0,     0,   426,   427,     0,
-     428,     0,     0,   429,     0,     0,   430,   431,   432,     0,
-       0,   433,   434,     0,   435,   436,   437,   438,   439,   440,
-       0,     0,   441,   442,   443,   444,     0,   445,   446,     0,
-     447,     0,   448,   449,   450,   451,     0,   136,   452,   453,
-       0,   454,   455,   456,   457,     0,     0,     0,     0,     0,
-     458,   459,   460,     0,     0,     0,   461,   462,   463,   464,
-       0,   465,   466,     0,   467,   468,     0,   469,   470,     0,
-       0,   471,     0,     0,   472,     0,   473,     0,   474,   475,
-     476,     0,     0,     0,     0,     0,     0,   477,     0,     0,
-     478,     0,     0,     0,   479,   480,   481,   482,   483,   484,
-       0,     0,     0,     0,     0,     0,   485,   486,     0,   487,
-     488,   489,     0,     0,   490,     0,   139,     0,   140,   141,
-     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
-       0,     0,   147,  2792,   148,   149,   150,   151,   152,   153,
-     154,     0,   155,     0,     0,     0,   156,     0,     0,     0,
-     157,     0,     0,   158,   159,   160,     0,   161,     0,   162,
-     163,     0,     0,   164,     0,     0,   165,   166,     0,   167,
-     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
-     176,   177,     0,   178,   179,   180,   181,   182,   183,   184,
-     185,     0,   186,   187,   188,   189,   190,   191,   192,   193,
-       0,   194,   195,     0,   196,   197,   198,   199,   200,     0,
-     201,     0,     0,   202,     0,     0,   203,     0,     0,     0,
-     204,     0,     0,     0,   205,   206,   207,     0,     0,   208,
-       0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
+     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
+       0,   332,   333,     0,     0,   334,   335,   336,   337,     0,
+       0,     0,   338,   339,     0,     0,     0,     0,   340,   341,
+     342,     0,   343,   344,   345,   346,     0,   347,   348,     0,
+       0,     0,     0,     0,     0,     0,     0,   349,   350,   351,
+       0,     0,   352,     0,   353,   354,   355,   356,   357,   358,
+     359,   360,   361,   362,   363,   364,     0,     0,   365,   366,
+     367,     0,   368,     0,   369,   370,   371,   372,   373,     0,
+     374,   375,   376,     0,     0,   377,     0,     0,     0,   378,
+     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
+     387,     0,   388,   389,     0,   390,   391,   392,     0,     0,
+     393,     0,   394,     0,   395,   396,     0,   397,   398,     0,
+       0,     0,   399,   400,   401,   402,   403,   404,   405,   406,
+     407,   408,     0,   409,   410,     0,     0,     0,   411,   412,
+     413,   414,     0,     0,     0,   415,     0,     0,     0,   416,
+       0,   417,   418,   419,   420,     0,   421,   422,   423,   424,
+     425,   426,     0,     0,     0,     0,     0,     0,   427,   428,
+       0,   429,     0,     0,   430,     0,     0,   431,   432,   433,
+       0,     0,   434,   435,     0,   436,   437,   438,   439,   440,
+     441,     0,     0,   442,   443,   444,   445,     0,   446,   447,
+       0,   448,     0,   449,   450,   451,   452,     0,     0,   453,
+     454,     0,   455,   456,   457,   458,     0,     0,     0,     0,
+       0,   459,   460,   461,     0,     0,     0,   462,   463,   464,
+     465,     0,   466,   467,     0,   468,   469,     0,   470,   471,
+       0,     0,   472,     0,     0,   473,     0,   474,     0,   475,
+     476,   477,     0,     0,     0,     0,     0,     0,   478,     0,
+       0,   479,     0,     0,     0,   480,   481,   482,   483,   484,
+     485,     0,     0,     0,     0,     0,     0,   486,   487,     0,
+     488,   489,   490,     0,     0,   491,     0,     0,   139,     0,
+     140,   141,   142,   143,   144,     0,     0,   145,     0,     0,
+       0,   146,     0,     0,   147,   782,   148,   149,   150,   151,
+     152,   153,   154,     0,   155,     0,     0,     0,   156,     0,
+       0,     0,   157,     0,     0,   158,   159,   160,     0,   161,
+       0,   162,   163,     0,     0,   164,     0,     0,   165,   166,
+       0,   167,   168,     0,   169,   170,     0,   171,   172,   173,
+     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
+     183,   184,   185,     0,   186,   187,   188,   189,   190,   191,
+     192,   193,     0,   194,   195,     0,   196,   197,   198,   199,
+     200,     0,   201,     0,     0,   202,     0,     0,   203,     0,
+       0,     0,   204,     0,     0,     0,   205,   206,   207,     0,
+       0,   208,     0,     0,     0,     0,   209,   210,     0,     0,
+       0,     0,   211,     0,   212,     0,     0,     0,   213,     0,
+     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
+     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
+       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
+     231,   232,   233,   234,   235,     0,     0,   236,   237,   238,
+       0,     0,   239,   240,     0,   241,   242,   243,     0,     0,
+     244,     0,     0,     0,   245,     0,   246,     0,   247,     0,
+     248,   249,   250,   251,   252,   253,     0,   254,     0,     0,
+       0,   255,   256,   257,     0,   258,     0,     0,     0,   259,
+     260,     0,     0,     0,   261,   262,   263,   264,     0,     0,
+     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
+       0,   270,   271,     0,     0,     0,   272,     0,   273,   274,
+       0,   275,   276,     0,     0,     0,   277,     0,     0,   278,
+     279,   280,     0,     0,   281,     0,     0,   282,   283,     0,
+       0,     0,     0,     0,   284,   285,     0,   286,     0,   287,
+       0,   288,   289,     0,     0,     0,     0,     0,     0,     0,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,     0,   303,   304,   305,     0,   306,   307,
+     308,   309,     0,   310,   311,     0,     0,     0,     0,   312,
+     313,   314,   315,   316,   317,     0,     0,   318,   319,     0,
+     320,     0,   321,     0,   322,   323,   324,   325,   326,   327,
+     328,   329,   330,   331,     0,     0,   332,   333,     0,     0,
+     334,   335,   336,   337,     0,     0,     0,   338,   339,     0,
+       0,     0,     0,   340,   341,   342,     0,   343,   344,   345,
+     346,     0,   347,   348,     0,     0,     0,     0,     0,     0,
+       0,     0,   349,   350,   351,     0,     0,   352,     0,   353,
+     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
+     364,     0,     0,   365,   366,   367,     0,   368,     0,   369,
+     370,   371,   372,   373,     0,   374,   375,   376,     0,     0,
+     377,     0,     0,     0,   378,   379,   380,   381,   382,     0,
+       0,   383,   384,   385,   386,   387,     0,   388,   389,     0,
+     390,   391,   392,     0,     0,   393,     0,   394,     0,   395,
+     396,     0,   397,   398,     0,     0,     0,   399,   400,   401,
+     402,   403,   404,   405,   406,   407,   408,     0,   409,   410,
+       0,     0,     0,   411,   412,   413,   414,     0,     0,     0,
+     415,     0,     0,     0,   416,     0,   417,   418,   419,   420,
+       0,   421,   422,   423,   424,   425,   426,     0,     0,     0,
+       0,     0,     0,   427,   428,     0,   429,     0,     0,   430,
+       0,     0,   431,   432,   433,     0,     0,   434,   435,     0,
+     436,   437,   438,   439,   440,   441,     0,     0,   442,   443,
+     444,   445,     0,   446,   447,     0,   448,     0,   449,   450,
+     451,   452,     0,     0,   453,   454,     0,   455,   456,   457,
+     458,     0,     0,     0,     0,     0,   459,   460,   461,     0,
+       0,     0,   462,   463,   464,   465,     0,   466,   467,     0,
+     468,   469,     0,   470,   471,     0,     0,   472,     0,     0,
+     473,     0,   474,     0,   475,   476,   477,     0,     0,     0,
+       0,     0,     0,   478,     0,     0,   479,     0,     0,     0,
+     480,   481,   482,   483,   484,   485,     0,     0,     0,     0,
+       0,     0,   486,   487,     0,   488,   489,   490,     0,     0,
+     491,     0,     0,   139,     0,   140,   141,   142,   143,   144,
+       0,     0,   145,     0,     0,     0,   146,     0,     0,   147,
+    2517,   148,   149,   150,   151,   152,   153,   154,     0,   155,
+       0,     0,     0,   156,     0,     0,     0,   157,     0,     0,
+     158,   159,   160,     0,   161,     0,   162,   163,     0,     0,
+     164,     0,     0,   165,   166,     0,   167,   168,     0,   169,
+     170,     0,   171,   172,   173,   174,   175,   176,   177,     0,
+     178,   179,   180,   181,   182,   183,   184,   185,     0,   186,
+     187,   188,   189,   190,   191,   192,   193,     0,   194,   195,
+       0,   196,   197,   198,   199,   200,     0,   201,     0,     0,
+     202,     0,     0,   203,     0,     0,     0,   204,     0,     0,
+       0,   205,   206,   207,     0,     0,   208,     0,     0,     0,
+       0,   209,   210,     0,     0,     0,     0,   211,     0,   212,
+       0,     0,     0,   213,     0,   214,   215,   216,   217,     0,
+       0,     0,   218,     0,     0,   219,   220,   221,     0,     0,
+       0,   222,     0,   223,   224,     0,   225,   226,   227,     0,
+       0,   228,   229,     0,   230,   231,   232,   233,   234,   235,
+       0,     0,   236,   237,   238,     0,     0,   239,   240,     0,
+     241,   242,   243,     0,     0,   244,     0,     0,     0,   245,
+       0,   246,     0,   247,     0,   248,   249,   250,   251,   252,
+     253,     0,   254,     0,     0,     0,   255,   256,   257,     0,
+     258,     0,     0,     0,   259,   260,     0,     0,     0,   261,
+     262,   263,   264,     0,     0,   265,   266,   267,     0,   268,
+       0,   269,     0,     0,     0,     0,   270,   271,     0,     0,
+       0,   272,     0,   273,   274,     0,   275,   276,     0,     0,
+       0,   277,     0,     0,   278,   279,   280,     0,     0,   281,
+       0,     0,   282,   283,   620,     0,     0,     0,     0,   284,
+     285,     0,   286,     0,   287,     0,   288,   289,     0,     0,
+       0,     0,     0,     0,     0,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,     0,   303,
+     304,   305,     0,   306,   307,   308,   309,     0,   310,   311,
+       0,     0,     0,     0,   312,   313,   314,   315,   316,   317,
+       0,     0,   318,   319,     0,   320,     0,   321,     0,   322,
+     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
+       0,   332,   333,     0,     0,   334,   335,   336,   337,     0,
+       0,     0,   338,   339,     0,     0,     0,     0,   340,   341,
+     342,     0,   343,   344,   345,   346,     0,   347,   348,     0,
+       0,     0,     0,     0,     0,     0,     0,   349,   350,   351,
+       0,     0,   352,     0,   353,   354,   355,   356,   357,   358,
+     359,   360,   361,   362,   363,   364,     0,     0,   365,   366,
+     367,     0,   368,     0,   369,   370,   371,   372,   373,     0,
+     374,   375,   376,     0,     0,   377,     0,     0,     0,   378,
+     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
+     387,     0,   388,   389,     0,   390,   391,   392,     0,     0,
+     393,     0,   394,     0,   395,   396,     0,   397,   398,     0,
+       0,     0,   399,   400,   401,   402,   403,   404,   405,   406,
+     407,   408,     0,   409,   410,     0,     0,     0,   411,   412,
+     413,   414,     0,     0,     0,   415,     0,     0,     0,   416,
+       0,   417,   418,   419,   420,     0,   421,   422,   423,   424,
+     425,   426,     0,     0,     0,     0,     0,     0,   427,   428,
+       0,   429,     0,     0,   430,     0,     0,   431,   432,   433,
+       0,     0,   434,   435,     0,   436,   437,   438,   439,   440,
+     441,     0,     0,   442,   443,   444,   445,     0,   446,   447,
+       0,   448,     0,   449,   450,   451,   452,     0,   136,   453,
+     454,     0,   455,   456,   457,   458,     0,     0,     0,     0,
+       0,   459,   460,   461,     0,     0,     0,   462,   463,   464,
+     465,     0,   466,   467,     0,   468,   469,     0,   470,   471,
+       0,     0,   472,     0,     0,   473,     0,   474,     0,   475,
+     476,   477,     0,     0,     0,     0,     0,     0,   478,     0,
+       0,   479,     0,     0,     0,   480,   481,   482,   483,   484,
+     485,     0,     0,     0,     0,     0,     0,   486,   487,     0,
+     488,   489,   490,     0,     0,   491,     0,   139,     0,   140,
+     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
+     146,     0,     0,   147,  1696,   148,   149,   150,   151,   152,
+     153,   154,     0,   155,     0,     0,     0,   156,     0,     0,
+       0,   157,     0,     0,   158,   159,   160,     0,   161,     0,
+     162,   163,     0,     0,   164,     0,     0,   165,   166,     0,
+     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
+     175,   176,   177,     0,   178,   179,   180,   181,   182,   183,
+     184,   185,     0,   186,   187,   188,   189,   190,   191,   192,
+     193,     0,   194,   195,     0,   196,   197,   198,   199,   200,
+       0,   201,     0,     0,   202,     0,     0,   203,     0,     0,
+       0,   204,     0,     0,     0,   205,   206,   207,     0,     0,
+     208,     0,     0,     0,     0,   209,   210,     0,     0,     0,
+       0,   211,     0,   212,     0,     0,     0,   213,     0,   214,
+     215,   216,   217,     0,     0,     0,   218,     0,     0,   219,
+     220,   221,     0,     0,     0,   222,     0,   223,   224,     0,
+     225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
+     232,   233,   234,   235,     0,     0,   236,   237,   238,     0,
+       0,   239,   240,     0,   241,   242,   243,     0,     0,   244,
+       0,     0,     0,   245,     0,   246,     0,   247,     0,   248,
+     249,   250,   251,   252,   253,     0,   254,     0,     0,     0,
+     255,   256,   257,     0,   258,     0,     0,     0,   259,   260,
+       0,     0,     0,   261,   262,   263,   264,     0,     0,   265,
+     266,   267,     0,   268,     0,   269,     0,     0,     0,     0,
+     270,   271,     0,     0,     0,   272,     0,   273,   274,     0,
+     275,   276,     0,     0,     0,   277,     0,     0,   278,   279,
+     280,     0,     0,   281,     0,     0,   282,   283,   620,     0,
+       0,     0,     0,   284,   285,     0,   286,     0,   287,     0,
+     288,   289,     0,     0,     0,     0,     0,     0,     0,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
+     301,   302,     0,   303,   304,   305,     0,   306,   307,   308,
+     309,     0,   310,   311,     0,     0,     0,     0,   312,   313,
+     314,   315,   316,   317,     0,     0,   318,   319,     0,   320,
+       0,   321,     0,   322,   323,   324,   325,   326,   327,   328,
+     329,   330,   331,     0,     0,   332,   333,     0,     0,   334,
+     335,   336,   337,     0,     0,     0,   338,   339,     0,     0,
+       0,     0,   340,   341,   342,     0,   343,   344,   345,   346,
+       0,   347,   348,     0,     0,     0,     0,     0,     0,     0,
+       0,   349,   350,   351,     0,     0,   352,     0,   353,   354,
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+       0,     0,   365,   366,   367,     0,   368,     0,   369,   370,
+     371,   372,   373,     0,   374,   375,   376,     0,     0,   377,
+       0,     0,     0,   378,   379,   380,   381,   382,     0,     0,
+     383,   384,   385,   386,   387,     0,   388,   389,     0,   390,
+     391,   392,     0,     0,   393,     0,   394,     0,   395,   396,
+       0,   397,   398,     0,     0,     0,   399,   400,   401,   402,
+     403,   404,   405,   406,   407,   408,     0,   409,   410,     0,
+       0,     0,   411,   412,   413,   414,     0,     0,     0,   415,
+       0,     0,     0,   416,     0,   417,   418,   419,   420,     0,
+     421,   422,   423,   424,   425,   426,     0,     0,     0,     0,
+       0,     0,   427,   428,     0,   429,     0,     0,   430,     0,
+       0,   431,   432,   433,     0,     0,   434,   435,     0,   436,
+     437,   438,   439,   440,   441,     0,     0,   442,   443,   444,
+     445,     0,   446,   447,     0,   448,     0,   449,   450,   451,
+     452,     0,   136,   453,   454,     0,   455,   456,   457,   458,
+       0,     0,     0,     0,     0,   459,   460,   461,     0,     0,
+       0,   462,   463,   464,   465,     0,   466,   467,     0,   468,
+     469,     0,   470,   471,     0,     0,   472,     0,     0,   473,
+       0,   474,     0,   475,   476,   477,     0,     0,     0,     0,
+       0,     0,   478,     0,     0,   479,     0,     0,     0,   480,
+     481,   482,   483,   484,   485,     0,     0,     0,     0,     0,
+       0,   486,   487,     0,   488,   489,   490,     0,     0,   491,
+       0,   139,     0,   140,   141,   142,   143,   144,     0,     0,
+     145,     0,     0,     0,   146,     0,     0,   147,  2797,   148,
+     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
+       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
+     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
+       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
+     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
+     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
+     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
+     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
+       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
+     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
+     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
+       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
+     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
+       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
+     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
+     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
+     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
+       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
+     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
+       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
+     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
+       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
+       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
+       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
+     282,   283,   620,     0,     0,     0,     0,   284,   285,     0,
+     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
+       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
+       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
+       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
+     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,   331,     0,     0,   332,
+     333,     0,     0,   334,   335,   336,   337,     0,     0,     0,
+     338,   339,     0,     0,     0,     0,   340,   341,   342,     0,
+     343,   344,   345,   346,     0,   347,   348,     0,     0,     0,
+       0,     0,     0,     0,     0,   349,   350,   351,     0,     0,
+     352,     0,   353,   354,   355,   356,   357,   358,   359,   360,
+     361,   362,   363,   364,     0,     0,   365,   366,   367,     0,
+     368,     0,   369,   370,   371,   372,   373,     0,   374,   375,
+     376,     0,     0,   377,     0,     0,     0,   378,   379,   380,
+     381,   382,     0,     0,   383,   384,   385,   386,   387,     0,
+     388,   389,     0,   390,   391,   392,     0,     0,   393,     0,
+     394,     0,   395,   396,     0,   397,   398,     0,     0,     0,
+     399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
+       0,   409,   410,     0,     0,     0,   411,   412,   413,   414,
+       0,     0,     0,   415,     0,     0,     0,   416,     0,   417,
+     418,   419,   420,     0,   421,   422,   423,   424,   425,   426,
+       0,     0,     0,     0,     0,     0,   427,   428,     0,   429,
+       0,     0,   430,     0,     0,   431,   432,   433,     0,     0,
+     434,   435,     0,   436,   437,   438,   439,   440,   441,     0,
+       0,   442,   443,   444,   445,     0,   446,   447,     0,   448,
+       0,   449,   450,   451,   452,     0,   136,   453,   454,     0,
+     455,   456,   457,   458,     0,     0,     0,     0,     0,   459,
+     460,   461,     0,     0,     0,   462,   463,   464,   465,     0,
+     466,   467,     0,   468,   469,     0,   470,   471,     0,     0,
+     472,     0,     0,   473,     0,   474,     0,   475,   476,   477,
+       0,     0,     0,     0,     0,     0,   478,     0,     0,   479,
+       0,     0,     0,   480,   481,   482,   483,   484,   485,     0,
+       0,     0,     0,     0,     0,   486,   487,     0,   488,   489,
+     490,     0,     0,   491,     0,   139,     0,   140,   141,   142,
+     143,   144,     0,     0,   145,     0,     0,     0,   146,     0,
+       0,     0,  3454,   148,   149,   150,   151,   152,   153,     0,
+       0,  -329,     0,     0,     0,   156,     0,     0,     0,   157,
+       0,     0,   158,   159,   160,     0,   161,     0,     0,     0,
+       0,     0,   164,  3892,     0,   165,   166,     0,   167,     0,
+       0,     0,     0,     0,   171,   172,   173,   174,  3893,   176,
+     177,     0,   178,   179,     0,     0,     0,     0,     0,     0,
+       0,   186,     0,   188,     0,   190,   191,   192,   193,     0,
+     194,   195,     0,   196,   197,   198,     0,   200,     0,   201,
+       0,     0,   202,     0,     0,   203,     0,     0,     0,   204,
+       0,     0,     0,   205,   206,   207,     0,     0,   208,     0,
+       0,     0,     0,   209,     0,     0,     0,     0,     0,   211,
+       0,   212,     0,     0,     0,   213,     0,   214,   215,   216,
+     217,     0,     0,     0,     0,     0,     0,   219,   220,   221,
+       0,     0,     0,   222,     0,     0,   224,     0,   225,   226,
+     227,     0,     0,   228,   229,     0,   230,   231,   232,   233,
+       0,     0,     0,     0,   236,   237,   238,     0,     0,   239,
+     240,  3894,   241,   242,   243,     0,     0,     0,     0,     0,
+       0,   245,     0,   246,     0,   247,     0,   248,   249,   250,
+     251,   252,   253,     0,   254,     0,     0,     0,     0,   256,
+     257,     0,     0,     0,     0,     0,     0,   260,     0,     0,
+       0,   261,   262,   263,   264,  3895,     0,   265,   266,   267,
+       0,   268,     0,   269,     0,     0,     0,     0,   270,     0,
+       0,     0,     0,   272,     0,   273,   274,     0,   275,   276,
+    3896,     0,     0,   277,     0,     0,     0,   279,   280,     0,
+       0,   281,  3897,     0,   282,   283,     0,     0,     0,     0,
+       0,   284,   285,     0,   286,     0,   287,     0,   288,   289,
+       0,     0,     0,     0,  -284,     0,     0,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+       0,   303,   304,   305,     0,   306,   307,   308,   309,     0,
+     310,   311,     0,     0,     0,     0,   312,   313,   314,   315,
+     316,   317,     0,     0,   318,   319,     0,   320,     0,   321,
+       0,   322,   323,   324,   325,   326,   327,   328,   329,   330,
+     331,     0,     0,   332,   333,     0,     0,   334,   335,   336,
+     337,     0,     0,     0,     0,   339,     0,     0,     0,     0,
+     340,   341,   342,     0,   343,   344,   345,  3898,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     350,   351,     0,     0,     0,     0,   353,   354,   355,     0,
+     357,   358,   359,   360,   361,   362,   363,     0,     0,     0,
+       0,   366,   367,     0,   368,     0,   369,   370,   371,   372,
+     373,     0,   374,   375,   376,     0,     0,   377,     0,     0,
+       0,   378,   379,   380,   381,   382,     0,     0,   383,   384,
+     385,   386,   387,     0,   388,     0,     0,   390,     0,   392,
+    -284,     0,   393,     0,     0,     0,   395,     0,     0,   397,
+     398,  3899,     0,     0,     0,   400,   401,   402,   403,   404,
+     405,     0,   407,   408,     0,   409,     0,     0,     0,     0,
+     411,   412,   413,     0,     0,     0,     0,   415,     0,     0,
+       0,   416,     0,     0,   418,     0,   420,     0,   421,     0,
+     423,     0,   425,   426,     0,     0,     0,     0,     0,     0,
+     427,   428,     0,   429,     0,     0,   430,     0,     0,   431,
+       0,   433,     0,     0,     0,   435,     0,   436,   437,   438,
+     439,   440,   441,     0,     0,   442,   443,   444,   445,     0,
+     446,   447,     0,   448,     0,   449,   450,   451,   452,     0,
+       0,   453,   454,     0,   455,   456,   457,   458,     0,     0,
+       0,     0,     0,   459,   460,   461,     0,     0,     0,     0,
+     463,   464,   465,     0,   466,   467,     0,   468,   469,     0,
+       0,     0,     0,     0,   472,     0,     0,   473,     0,     0,
+       0,   475,   476,   477,     0,     0,     0,     0,     0,     0,
+     478,     0,     0,   479,     0,     0,     0,   480,   481,   482,
+     483,   484,   485,     0,     0,  -284,     0,     0,     0,   486,
+       0,     0,   488,     0,   490,     0,   139,   491,   140,   141,
+     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
+       0,  4447,   147,     0,   148,   149,   150,   151,   152,   153,
+     154,     0,   155,     0,     0,     0,   156,     0,     0,     0,
+     157,     0,     0,   158,   159,   160,     0,   161,     0,   162,
+     163,     0,     0,   164,     0,     0,   165,   166,     0,   167,
+     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
+     176,   177,     0,   178,   179,   180,   181,   182,   183,   184,
+     185,     0,   186,   187,   188,   189,   190,   191,   192,   193,
+       0,   194,   195,     0,   196,   197,   198,   199,   200,     0,
+     201,     0,     0,   202,     0,     0,   203,     0,   995,     0,
+     204,     0,     0,     0,   205,   206,   207,     0,     0,   208,
+       0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
      211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
      216,   217,     0,     0,     0,   218,     0,     0,   219,   220,
      221,     0,     0,     0,   222,     0,   223,   224,     0,   225,
@@ -8705,7 +8839,7 @@ static const yytype_int16 yytable[] =
      267,     0,   268,     0,   269,     0,     0,     0,     0,   270,
      271,     0,     0,     0,   272,     0,   273,   274,     0,   275,
      276,     0,     0,     0,   277,     0,     0,   278,   279,   280,
-       0,     0,   281,     0,     0,   282,   283,   617,     0,     0,
+       0,     0,   281,     0,     0,   282,   283,   620,     0,     0,
        0,     0,   284,   285,     0,   286,     0,   287,     0,   288,
      289,     0,     0,     0,     0,     0,     0,     0,   290,   291,
      292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
@@ -8713,97 +8847,36 @@ static const yytype_int16 yytable[] =
        0,   310,   311,     0,     0,     0,     0,   312,   313,   314,
      315,   316,   317,     0,     0,   318,   319,     0,   320,     0,
      321,     0,   322,   323,   324,   325,   326,   327,   328,   329,
-     330,     0,     0,   331,   332,     0,     0,   333,   334,   335,
-     336,     0,     0,     0,   337,   338,     0,     0,     0,     0,
-     339,   340,   341,     0,   342,   343,   344,   345,     0,   346,
-     347,     0,     0,     0,     0,     0,     0,     0,     0,   348,
-     349,   350,     0,     0,   351,     0,   352,   353,   354,   355,
-     356,   357,   358,   359,   360,   361,   362,   363,     0,     0,
-     364,   365,   366,     0,   367,     0,   368,   369,   370,   371,
-     372,     0,   373,   374,   375,     0,     0,   376,     0,     0,
-       0,   377,   378,   379,   380,   381,     0,     0,   382,   383,
-     384,   385,   386,     0,   387,   388,     0,   389,   390,   391,
-       0,     0,   392,     0,   393,     0,   394,   395,     0,   396,
-     397,     0,     0,     0,   398,   399,   400,   401,   402,   403,
-     404,   405,   406,   407,     0,   408,   409,     0,     0,     0,
-     410,   411,   412,   413,     0,     0,     0,   414,     0,     0,
-       0,   415,     0,   416,   417,   418,   419,     0,   420,   421,
-     422,   423,   424,   425,     0,     0,     0,     0,     0,     0,
-     426,   427,     0,   428,     0,     0,   429,     0,     0,   430,
-     431,   432,     0,     0,   433,   434,     0,   435,   436,   437,
-     438,   439,   440,     0,     0,   441,   442,   443,   444,     0,
-     445,   446,     0,   447,     0,   448,   449,   450,   451,     0,
-     136,   452,   453,     0,   454,   455,   456,   457,     0,     0,
-       0,     0,     0,   458,   459,   460,     0,     0,     0,   461,
-     462,   463,   464,     0,   465,   466,     0,   467,   468,     0,
-     469,   470,     0,     0,   471,     0,     0,   472,     0,   473,
-       0,   474,   475,   476,     0,     0,     0,     0,     0,     0,
-     477,     0,     0,   478,     0,     0,     0,   479,   480,   481,
-     482,   483,   484,     0,     0,     0,     0,     0,     0,   485,
-     486,     0,   487,   488,   489,     0,     0,   490,     0,   139,
+     330,   331,     0,     0,   332,   333,     0,     0,   334,   335,
+     336,   337,     0,     0,     0,   338,   339,     0,     0,     0,
+       0,   340,   341,   342,     0,   343,   344,   345,   346,     0,
+     347,   348,     0,     0,     0,     0,     0,     0,     0,     0,
+     349,   350,   351,     0,     0,   352,     0,   353,   354,   355,
+     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
+       0,   365,   366,   367,     0,   368,     0,   369,   370,   371,
+     372,   373,     0,   374,   375,   376,     0,     0,   377,     0,
+       0,     0,   378,   379,   380,   381,   382,     0,     0,   383,
+     384,   385,   386,   387,     0,   388,   389,     0,   390,   391,
+     392,     0,     0,   393,     0,   394,     0,   395,   396,     0,
+     397,   398,     0,     0,     0,   399,   400,   401,   402,   403,
+     404,   405,   406,   407,   408,     0,   409,   410,     0,     0,
+       0,   411,   412,   413,   414,     0,     0,     0,   415,     0,
+       0,     0,   416,     0,   417,   418,   419,   420,     0,   421,
+     422,   423,   424,   425,   426,     0,     0,     0,     0,     0,
+       0,   427,   428,     0,   429,     0,     0,   430,     0,     0,
+     431,   432,   433,     0,     0,   434,   435,     0,   436,   437,
+     438,   439,   440,   441,     0,     0,   442,   443,   444,   445,
+       0,   446,   447,     0,   448,     0,   449,   450,   451,   452,
+       0,   136,   453,   454,     0,   455,   456,   457,   458,     0,
+       0,     0,     0,     0,   459,   460,   461,     0,     0,     0,
+     462,   463,   464,   465,     0,   466,   467,     0,   468,   469,
+       0,   470,   471,     0,     0,   472,     0,     0,   473,     0,
+     474,     0,   475,   476,   477,     0,     0,     0,     0,     0,
+       0,   478,     0,     0,   479,     0,     0,     0,   480,   481,
+     482,   483,   484,   485,     0,     0,     0,     0,     0,     0,
+     486,   487,     0,   488,   489,   490,     0,     0,   491,   139,
        0,   140,   141,   142,   143,   144,     0,     0,   145,     0,
-       0,     0,   146,     0,     0,     0,  3449,   148,   149,   150,
-     151,   152,   153,     0,     0,  -329,     0,     0,     0,   156,
-       0,     0,     0,   157,     0,     0,   158,   159,   160,     0,
-     161,     0,     0,     0,     0,     0,   164,  3887,     0,   165,
-     166,     0,   167,     0,     0,     0,     0,     0,   171,   172,
-     173,   174,  3888,   176,   177,     0,   178,   179,     0,     0,
-       0,     0,     0,     0,     0,   186,     0,   188,     0,   190,
-     191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
-       0,   200,     0,   201,     0,     0,   202,     0,     0,   203,
-       0,     0,     0,   204,     0,     0,     0,   205,   206,   207,
-       0,     0,   208,     0,     0,     0,     0,   209,     0,     0,
-       0,     0,     0,   211,     0,   212,     0,     0,     0,   213,
-       0,   214,   215,   216,   217,     0,     0,     0,     0,     0,
-       0,   219,   220,   221,     0,     0,     0,   222,     0,     0,
-     224,     0,   225,   226,   227,     0,     0,   228,   229,     0,
-     230,   231,   232,   233,     0,     0,     0,     0,   236,   237,
-     238,     0,     0,   239,   240,  3889,   241,   242,   243,     0,
-       0,     0,     0,     0,     0,   245,     0,   246,     0,   247,
-       0,   248,   249,   250,   251,   252,   253,     0,   254,     0,
-       0,     0,     0,   256,   257,     0,     0,     0,     0,     0,
-       0,   260,     0,     0,     0,   261,   262,   263,   264,  3890,
-       0,   265,   266,   267,     0,   268,     0,   269,     0,     0,
-       0,     0,   270,     0,     0,     0,     0,   272,     0,   273,
-     274,     0,   275,   276,  3891,     0,     0,   277,     0,     0,
-       0,   279,   280,     0,     0,   281,  3892,     0,   282,   283,
-       0,     0,     0,     0,     0,   284,   285,     0,   286,     0,
-     287,     0,   288,   289,     0,     0,     0,     0,  -284,     0,
-       0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
-     299,   300,   301,   302,     0,   303,   304,   305,     0,   306,
-     307,   308,   309,     0,   310,   311,     0,     0,     0,     0,
-     312,   313,   314,   315,   316,   317,     0,     0,   318,   319,
-       0,   320,     0,   321,     0,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,     0,     0,   331,   332,     0,     0,
-     333,   334,   335,   336,     0,     0,     0,     0,   338,     0,
-       0,     0,     0,   339,   340,   341,     0,   342,   343,   344,
-    3893,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   349,   350,     0,     0,     0,     0,   352,
-     353,   354,     0,   356,   357,   358,   359,   360,   361,   362,
-       0,     0,     0,     0,   365,   366,     0,   367,     0,   368,
-     369,   370,   371,   372,     0,   373,   374,   375,     0,     0,
-     376,     0,     0,     0,   377,   378,   379,   380,   381,     0,
-       0,   382,   383,   384,   385,   386,     0,   387,     0,     0,
-     389,     0,   391,  -284,     0,   392,     0,     0,     0,   394,
-       0,     0,   396,   397,  3894,     0,     0,     0,   399,   400,
-     401,   402,   403,   404,     0,   406,   407,     0,   408,     0,
-       0,     0,     0,   410,   411,   412,     0,     0,     0,     0,
-     414,     0,     0,     0,   415,     0,     0,   417,     0,   419,
-       0,   420,     0,   422,     0,   424,   425,     0,     0,     0,
-       0,     0,     0,   426,   427,     0,   428,     0,     0,   429,
-       0,     0,   430,     0,   432,     0,     0,     0,   434,     0,
-     435,   436,   437,   438,   439,   440,     0,     0,   441,   442,
-     443,   444,     0,   445,   446,     0,   447,     0,   448,   449,
-     450,   451,     0,     0,   452,   453,     0,   454,   455,   456,
-     457,     0,     0,     0,     0,     0,   458,   459,   460,     0,
-       0,     0,     0,   462,   463,   464,     0,   465,   466,     0,
-     467,   468,     0,     0,     0,     0,     0,   471,     0,     0,
-     472,     0,     0,     0,   474,   475,   476,     0,     0,     0,
-       0,     0,     0,   477,     0,     0,   478,     0,     0,     0,
-     479,   480,   481,   482,   483,   484,     0,     0,  -284,     0,
-       0,     0,   485,     0,     0,   487,     0,   489,     0,   139,
-     490,   140,   141,   142,   143,   144,     0,     0,   145,     0,
-       0,     0,   146,     0,  4442,   147,     0,   148,   149,   150,
+    1174,     0,   146,     0,     0,   147,     0,   148,   149,   150,
      151,   152,   153,   154,     0,   155,     0,     0,     0,   156,
        0,     0,     0,   157,     0,     0,   158,   159,   160,     0,
      161,     0,   162,   163,     0,     0,   164,     0,     0,   165,
@@ -8812,7 +8885,7 @@ static const yytype_int16 yytable[] =
      182,   183,   184,   185,     0,   186,   187,   188,   189,   190,
      191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
      199,   200,     0,   201,     0,     0,   202,     0,     0,   203,
-       0,   992,     0,   204,     0,     0,     0,   205,   206,   207,
+       0,     0,     0,   204,     0,     0,     0,   205,   206,   207,
        0,     0,   208,     0,     0,     0,     0,   209,   210,     0,
        0,     0,     0,   211,     0,   212,     0,     0,     0,   213,
        0,   214,   215,   216,   217,     0,     0,     0,   218,     0,
@@ -8828,103 +8901,103 @@ static const yytype_int16 yytable[] =
        0,     0,   270,   271,     0,     0,     0,   272,     0,   273,
      274,     0,   275,   276,     0,     0,     0,   277,     0,     0,
      278,   279,   280,     0,     0,   281,     0,     0,   282,   283,
-     617,     0,     0,     0,     0,   284,   285,     0,   286,     0,
+       0,     0,     0,     0,     0,   284,   285,     0,   286,     0,
      287,     0,   288,   289,     0,     0,     0,     0,     0,     0,
        0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
      299,   300,   301,   302,     0,   303,   304,   305,     0,   306,
      307,   308,   309,     0,   310,   311,     0,     0,     0,     0,
      312,   313,   314,   315,   316,   317,     0,     0,   318,   319,
        0,   320,     0,   321,     0,   322,   323,   324,   325,   326,
-     327,   328,   329,   330,     0,     0,   331,   332,     0,     0,
-     333,   334,   335,   336,     0,     0,     0,   337,   338,     0,
-       0,     0,     0,   339,   340,   341,     0,   342,   343,   344,
-     345,     0,   346,   347,     0,     0,     0,     0,     0,     0,
-       0,     0,   348,   349,   350,     0,     0,   351,     0,   352,
+     327,   328,   329,   330,   331,     0,     0,   332,   333,     0,
+       0,   334,   335,   336,   337,     0,     0,     0,   338,   339,
+       0,     0,     0,     0,   340,   341,   342,     0,   343,   344,
+     345,   346,     0,   347,   348,     0,     0,     0,     0,     0,
+       0,     0,     0,   349,   350,   351,     0,     0,   352,     0,
      353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
-     363,     0,     0,   364,   365,   366,     0,   367,     0,   368,
-     369,   370,   371,   372,     0,   373,   374,   375,     0,     0,
-     376,     0,     0,     0,   377,   378,   379,   380,   381,     0,
-       0,   382,   383,   384,   385,   386,     0,   387,   388,     0,
-     389,   390,   391,     0,     0,   392,     0,   393,     0,   394,
-     395,     0,   396,   397,     0,     0,     0,   398,   399,   400,
-     401,   402,   403,   404,   405,   406,   407,     0,   408,   409,
-       0,     0,     0,   410,   411,   412,   413,     0,     0,     0,
-     414,     0,     0,     0,   415,     0,   416,   417,   418,   419,
-       0,   420,   421,   422,   423,   424,   425,     0,     0,     0,
-       0,     0,     0,   426,   427,     0,   428,     0,     0,   429,
-       0,     0,   430,   431,   432,     0,     0,   433,   434,     0,
-     435,   436,   437,   438,   439,   440,     0,     0,   441,   442,
-     443,   444,     0,   445,   446,     0,   447,     0,   448,   449,
-     450,   451,     0,   136,   452,   453,     0,   454,   455,   456,
-     457,     0,     0,     0,     0,     0,   458,   459,   460,     0,
-       0,     0,   461,   462,   463,   464,     0,   465,   466,     0,
-     467,   468,     0,   469,   470,     0,     0,   471,     0,     0,
-     472,     0,   473,     0,   474,   475,   476,     0,     0,     0,
-       0,     0,     0,   477,     0,     0,   478,     0,     0,     0,
-     479,   480,   481,   482,   483,   484,     0,     0,     0,     0,
-       0,     0,   485,   486,     0,   487,   488,   489,     0,     0,
-     490,   139,     0,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,  1171,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,  2102,
+     363,   364,     0,     0,   365,   366,   367,     0,   368,     0,
+     369,   370,   371,   372,   373,     0,   374,   375,   376,     0,
+       0,   377,     0,     0,     0,   378,   379,   380,   381,   382,
+       0,     0,   383,   384,   385,   386,   387,     0,   388,   389,
+       0,   390,   391,   392,     0,     0,   393,     0,   394,     0,
+     395,   396,     0,   397,   398,     0,     0,     0,   399,   400,
+     401,   402,   403,   404,   405,   406,   407,   408,     0,   409,
+     410,     0,     0,     0,   411,   412,   413,   414,     0,     0,
+       0,   415,     0,     0,     0,   416,     0,   417,   418,   419,
+     420,     0,   421,   422,   423,   424,   425,   426,     0,     0,
+       0,     0,     0,     0,   427,   428,     0,   429,     0,     0,
+     430,     0,     0,   431,   432,   433,     0,     0,   434,   435,
+       0,   436,   437,   438,   439,   440,   441,     0,     0,   442,
+     443,   444,   445,     0,   446,   447,     0,   448,     0,   449,
+     450,   451,   452,     0,     0,   453,   454,     0,   455,   456,
+     457,   458,     0,     0,     0,     0,     0,   459,   460,   461,
+       0,     0,     0,   462,   463,   464,   465,     0,   466,   467,
+       0,   468,   469,     0,   470,   471,     0,     0,   472,     0,
+       0,   473,     0,   474,     0,   475,   476,   477,     0,     0,
+       0,     0,     0,     0,   478,     0,     0,   479,     0,     0,
+       0,   480,   481,   482,   483,   484,   485,     0,     0,     0,
+       0,     0,     0,   486,   487,     0,   488,   489,   490,     0,
+     139,   491,   140,   141,   142,   143,   144,     0,  2105,   145,
+       0,     0,     0,   146,     0,     0,   147,     0,   148,   149,
+     150,   151,   152,   153,   154,     0,   155,     0,     0,     0,
+     156,     0,     0,     0,   157,     0,     0,   158,   159,   160,
+       0,   161,     0,   162,   163,     0,     0,   164,     0,     0,
+     165,   166,     0,   167,   168,     0,   169,   170,     0,   171,
+     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
+     181,   182,   183,   184,   185,     0,   186,   187,   188,   189,
+     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
+     198,   199,   200,     0,   201,     0,     0,   202,     0,     0,
+     203,     0,     0,     0,   204,     0,     0,     0,   205,   206,
+     207,     0,     0,   208,     0,     0,     0,     0,   209,   210,
+       0,     0,     0,     0,   211,     0,   212,     0,     0,     0,
+     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
+       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
+     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
+       0,   230,   231,   232,   233,   234,   235,     0,     0,   236,
+     237,   238,     0,     0,   239,   240,     0,   241,   242,   243,
+       0,     0,   244,     0,     0,     0,   245,     0,   246,     0,
+     247,     0,   248,   249,   250,   251,   252,   253,     0,   254,
+       0,     0,     0,   255,   256,   257,     0,   258,     0,     0,
+       0,   259,   260,     0,     0,     0,   261,   262,   263,   264,
+       0,     0,   265,   266,   267,     0,   268,     0,   269,     0,
+       0,     0,     0,   270,   271,     0,     0,     0,   272,     0,
+     273,   274,     0,   275,   276,     0,     0,     0,   277,     0,
+       0,   278,   279,   280,     0,     0,   281,     0,     0,   282,
+     283,     0,     0,     0,     0,     0,   284,   285,     0,   286,
+       0,   287,     0,   288,   289,     0,     0,     0,     0,     0,
+       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,     0,   303,   304,   305,     0,
+     306,   307,   308,   309,     0,   310,   311,     0,     0,     0,
+       0,   312,   313,   314,   315,   316,   317,     0,     0,   318,
+     319,     0,   320,     0,   321,     0,   322,   323,   324,   325,
+     326,   327,   328,   329,   330,   331,     0,     0,   332,   333,
+       0,     0,   334,   335,   336,   337,     0,     0,     0,   338,
+     339,     0,     0,     0,     0,   340,   341,   342,     0,   343,
+     344,   345,   346,     0,   347,   348,     0,     0,     0,     0,
+       0,     0,     0,     0,   349,   350,   351,     0,     0,   352,
+       0,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,     0,     0,   365,   366,   367,     0,   368,
+       0,   369,   370,   371,   372,   373,     0,   374,   375,   376,
+       0,     0,   377,     0,     0,     0,   378,   379,   380,   381,
+     382,     0,     0,   383,   384,   385,   386,   387,     0,   388,
+     389,     0,   390,   391,   392,     0,     0,   393,     0,   394,
+       0,   395,   396,     0,   397,   398,     0,     0,     0,   399,
+     400,   401,   402,   403,   404,   405,   406,   407,   408,     0,
+     409,   410,     0,     0,     0,   411,   412,   413,   414,     0,
+       0,     0,   415,     0,     0,     0,   416,     0,   417,   418,
+     419,   420,     0,   421,   422,   423,   424,   425,   426,     0,
+       0,     0,     0,     0,     0,   427,   428,     0,   429,     0,
+       0,   430,     0,     0,   431,   432,   433,     0,     0,   434,
+     435,     0,   436,   437,   438,   439,   440,   441,     0,     0,
+     442,   443,   444,   445,     0,   446,   447,     0,   448,     0,
+     449,   450,   451,   452,     0,     0,   453,   454,     0,   455,
+     456,   457,   458,     0,     0,     0,     0,     0,   459,   460,
+     461,     0,     0,     0,   462,   463,   464,   465,     0,   466,
+     467,     0,   468,   469,     0,   470,   471,     0,     0,   472,
+       0,     0,   473,     0,   474,     0,   475,   476,   477,     0,
+       0,     0,     0,     0,     0,   478,     0,     0,   479,     0,
+       0,     0,   480,   481,   482,   483,   484,   485,     0,     0,
+       0,     0,     0,     0,   486,   487,     0,   488,   489,   490,
+       0,   139,   491,   140,   141,   142,   143,   144,     0,  2785,
      145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
      149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
        0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
@@ -8957,7204 +9030,4769 @@ static const yytype_int16 yytable[] =
        0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
        0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
      318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,  2780,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,  3110,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,  3454,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,  2425,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,  2426,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,  2427,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,  2428,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,  1034,  1035,     0,   337,
-     338,     0,     0,  2429,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,  4422,   563,  4423,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,  2430,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,  1581,     0,     0,  2951,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,  1582,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,  2846,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,  2847,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,  2848,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,  2849,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,  1581,     0,     0,  3881,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,  1582,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,  2846,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,  2847,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,  2848,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,  2849,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,  1581,     0,     0,  4165,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,  1582,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,  2846,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,  2847,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,  2848,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,  2849,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-    2624,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,  2786,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,  2252,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,   617,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,  2253,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,   969,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,   970,
-     971,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   972,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,  1857,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,  1858,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,   736,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,  1859,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,  1860,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-    2794,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,  2795,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,   617,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,  1857,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,  1858,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,   736,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,  1860,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-    2624,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,  2786,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,   617,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,  1857,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,  1858,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,   736,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,  3603,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,  1860,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,   992,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,   617,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,  1381,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,   617,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-    2624,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,   617,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,  2837,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,   617,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,   617,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,  2776,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,  4337,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,  4338,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,   563,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,  1070,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,  2023,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,  2356,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,  2357,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,  2880,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,  2967,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,   136,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,  2356,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
-     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
-     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
-     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
-     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,  1774,
-     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
-       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,  1775,   335,   336,     0,     0,     0,   337,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,   345,     0,   346,   347,     0,     0,     0,     0,
-       0,     0,     0,     0,   348,   349,   350,     0,     0,   351,
-       0,   352,   353,   354,   355,   356,   357,   358,   359,   360,
-     361,   362,   363,     0,     0,   364,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-     388,     0,   389,   390,   391,     0,     0,   392,     0,   393,
-       0,   394,   395,     0,   396,   397,     0,     0,     0,   398,
-     399,   400,   401,   402,   403,   404,   405,   406,   407,     0,
-     408,   409,     0,     0,     0,   410,   411,   412,   413,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,   416,   417,
-     418,   419,     0,   420,   421,   422,   423,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,   431,   432,     0,     0,   433,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,   461,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,   469,   470,     0,     0,   471,
-       0,     0,   472,     0,   473,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,   486,     0,   487,   488,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
-     149,   150,   151,   152,   153,     0,     0,  -329,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,     0,     0,     0,     0,   164,  3887,
-       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
-     171,   172,   173,   174,  3888,   176,   177,     0,   178,   179,
-       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
-       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-       0,     0,     0,   219,   220,   221,     0,  -299,  -299,   222,
-       0,  -299,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,  3889,   241,   242,
-     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
-       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
-     264,  3890,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,  3891,     0,     0,   277,
-       0,     0,     0,   279,   280,     0,     0,   281,  3892,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-    -284,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,     0,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,  3893,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   349,   350,     0,     0,     0,
-       0,   352,   353,   354,     0,   356,   357,   358,   359,   360,
-     361,   362,     0,     0,     0,     0,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-       0,     0,   389,     0,   391,  -284,     0,   392,     0,     0,
-       0,   394,     0,     0,   396,   397,  3894,     0,     0,     0,
-     399,   400,   401,   402,   403,   404,     0,   406,   407,     0,
-     408,     0,     0,     0,     0,   410,   411,   412,     0,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,     0,   417,
-       0,   419,     0,   420,     0,   422,     0,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,     0,   432,     0,     0,     0,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,     0,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,     0,     0,     0,     0,   471,
-       0,     0,   472,     0,     0,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-    -284,     0,     0,     0,   485,     0,     0,   487,     0,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
-     149,   150,   151,   152,   153,     0,     0,  -329,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,     0,     0,     0,     0,   164,  3887,
-       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
-     171,   172,   173,   174,  3888,   176,   177,     0,   178,   179,
-       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
-       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-       0,     0,     0,   219,   220,   221,     0,  -320,     0,   222,
-       0,  -320,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,  3889,   241,   242,
-     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
-       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
-     264,  3890,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,  3891,     0,     0,   277,
-       0,     0,     0,   279,   280,     0,     0,   281,  3892,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-    -284,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,     0,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,  3893,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   349,   350,     0,     0,     0,
-       0,   352,   353,   354,     0,   356,   357,   358,   359,   360,
-     361,   362,     0,     0,     0,     0,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-       0,     0,   389,     0,   391,  -284,     0,   392,     0,     0,
-       0,   394,     0,     0,   396,   397,  3894,     0,     0,     0,
-     399,   400,   401,   402,   403,   404,     0,   406,   407,     0,
-     408,     0,     0,     0,     0,   410,   411,   412,     0,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,     0,   417,
-       0,   419,     0,   420,     0,   422,     0,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,     0,   432,     0,     0,     0,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,     0,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,     0,     0,     0,     0,   471,
-       0,     0,   472,     0,     0,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,  -320,     0,
-    -284,     0,     0,     0,   485,     0,     0,   487,     0,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
-     149,   150,   151,   152,   153,     0,     0,  -329,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,     0,     0,     0,     0,   164,  3887,
-       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
-     171,   172,   173,   174,  3888,   176,   177,     0,   178,   179,
-       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
-       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-       0,     0,     0,   219,   220,   221,     0,  -317,     0,   222,
-       0,  -317,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,  3889,   241,   242,
-     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
-       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
-     264,  3890,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,  3891,     0,     0,   277,
-       0,     0,     0,   279,   280,     0,     0,   281,  3892,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-    -284,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,     0,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,  3893,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   349,   350,     0,     0,     0,
-       0,   352,   353,   354,     0,   356,   357,   358,   359,   360,
-     361,   362,     0,     0,     0,     0,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-       0,     0,   389,     0,   391,  -284,     0,   392,     0,     0,
-       0,   394,     0,     0,   396,   397,  3894,     0,     0,     0,
-     399,   400,   401,   402,   403,   404,     0,   406,   407,     0,
-     408,     0,     0,     0,     0,   410,   411,   412,     0,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,     0,   417,
-       0,   419,     0,   420,     0,   422,     0,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,     0,   432,     0,     0,     0,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,     0,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,     0,     0,     0,     0,   471,
-       0,     0,   472,     0,     0,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,  -317,     0,
-    -284,     0,     0,     0,   485,     0,     0,   487,     0,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
-     149,   150,   151,   152,   153,     0,     0,  -329,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,     0,     0,     0,     0,   164,  3887,
-       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
-     171,   172,   173,   174,  3888,   176,   177,     0,   178,   179,
-       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
-       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-       0,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,  4227,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,  3889,   241,   242,
-     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
-       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
-     264,  3890,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,  3891,     0,     0,   277,
-       0,     0,     0,   279,   280,     0,     0,   281,  3892,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-    -284,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,     0,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,  3893,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   349,   350,     0,     0,     0,
-       0,   352,   353,   354,     0,   356,   357,   358,   359,   360,
-     361,   362,     0,     0,     0,     0,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-       0,     0,   389,     0,   391,  -284,     0,   392,     0,     0,
-       0,   394,     0,     0,   396,   397,  3894,     0,     0,     0,
-     399,   400,   401,   402,   403,   404,     0,   406,   407,     0,
-     408,     0,     0,     0,     0,   410,   411,   412,     0,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,     0,   417,
-       0,   419,     0,   420,     0,   422,     0,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,     0,   432,     0,     0,     0,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,     0,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,     0,     0,     0,     0,   471,
-       0,     0,   472,     0,     0,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-    -284,     0,     0,     0,   485,     0,     0,   487,     0,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
-     149,   150,   151,   152,   153,     0,     0,  -329,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,     0,     0,     0,     0,   164,  3887,
-       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
-     171,   172,   173,   174,  3888,   176,   177,     0,   178,   179,
-       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
-       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-       0,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,  -322,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,  3889,   241,   242,
-     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
-       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
-     264,  3890,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,  3891,     0,     0,   277,
-       0,     0,     0,   279,   280,     0,     0,   281,  3892,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-    -284,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,     0,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,  3893,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   349,   350,     0,     0,     0,
-       0,   352,   353,   354,     0,   356,   357,   358,   359,   360,
-     361,   362,     0,     0,     0,     0,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-       0,     0,   389,     0,   391,  -284,     0,   392,     0,     0,
-       0,   394,     0,     0,   396,   397,  3894,     0,     0,     0,
-     399,   400,   401,   402,   403,   404,     0,   406,   407,     0,
-     408,     0,     0,     0,     0,   410,   411,   412,     0,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,     0,   417,
-       0,   419,     0,   420,     0,   422,     0,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,     0,   432,     0,     0,     0,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,     0,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,     0,     0,     0,     0,   471,
-       0,     0,   472,     0,     0,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-    -284,     0,     0,     0,   485,     0,     0,   487,     0,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
-     149,   150,   151,   152,   153,     0,     0,  -329,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,     0,     0,     0,     0,   164,  3887,
-       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
-     171,   172,   173,   174,  3888,   176,   177,     0,   178,   179,
-       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
-       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-       0,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,  4342,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,  3889,   241,   242,
-     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
-       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
-     264,  3890,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,  3891,     0,     0,   277,
-       0,     0,     0,   279,   280,     0,     0,   281,  3892,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-    -284,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,     0,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,  3893,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   349,   350,     0,     0,     0,
-       0,   352,   353,   354,     0,   356,   357,   358,   359,   360,
-     361,   362,     0,     0,     0,     0,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-       0,     0,   389,     0,   391,  -284,     0,   392,     0,     0,
-       0,   394,     0,     0,   396,   397,  3894,     0,     0,     0,
-     399,   400,   401,   402,   403,   404,     0,   406,   407,     0,
-     408,     0,     0,     0,     0,   410,   411,   412,     0,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,     0,   417,
-       0,   419,     0,   420,     0,   422,     0,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,     0,   432,     0,     0,     0,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,     0,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,     0,     0,     0,     0,   471,
-       0,     0,   472,     0,     0,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-    -284,     0,     0,     0,   485,     0,     0,   487,     0,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
-     149,   150,   151,   152,   153,     0,     0,  -329,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,     0,     0,     0,     0,   164,  3887,
-       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
-     171,   172,   173,   174,  3888,   176,   177,     0,   178,   179,
-       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
-       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-       0,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,  4391,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,  3889,   241,   242,
-     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
-       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
-     264,  3890,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,  3891,     0,     0,   277,
-       0,     0,     0,   279,   280,     0,     0,   281,  3892,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-    -284,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,     0,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,  3893,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   349,   350,     0,     0,     0,
-       0,   352,   353,   354,     0,   356,   357,   358,   359,   360,
-     361,   362,     0,     0,     0,     0,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-       0,     0,   389,     0,   391,  -284,     0,   392,     0,     0,
-       0,   394,     0,     0,   396,   397,  3894,     0,     0,     0,
-     399,   400,   401,   402,   403,   404,     0,   406,   407,     0,
-     408,     0,     0,     0,     0,   410,   411,   412,     0,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,     0,   417,
-       0,   419,     0,   420,     0,   422,     0,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,     0,   432,     0,     0,     0,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,     0,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,     0,     0,     0,     0,   471,
-       0,     0,   472,     0,     0,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-    -284,     0,     0,     0,   485,     0,     0,   487,     0,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
-     149,   150,   151,   152,   153,     0,     0,  -329,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,     0,     0,     0,     0,   164,  3887,
-       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
-     171,   172,   173,   174,  3888,   176,   177,     0,   178,   179,
-       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
-       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-       0,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,  -303,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,  3889,   241,   242,
-     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
-       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
-     264,  3890,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,  3891,     0,     0,   277,
-       0,     0,     0,   279,   280,     0,     0,   281,  3892,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-    -284,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,     0,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,  3893,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   349,   350,     0,     0,     0,
-       0,   352,   353,   354,     0,   356,   357,   358,   359,   360,
-     361,   362,     0,     0,     0,     0,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-       0,     0,   389,     0,   391,  -284,     0,   392,     0,     0,
-       0,   394,     0,     0,   396,   397,  3894,     0,     0,     0,
-     399,   400,   401,   402,   403,   404,     0,   406,   407,     0,
-     408,     0,     0,     0,     0,   410,   411,   412,     0,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,     0,   417,
-       0,   419,     0,   420,     0,   422,     0,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,     0,   432,     0,     0,     0,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,     0,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,     0,     0,     0,     0,   471,
-       0,     0,   472,     0,     0,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-    -284,     0,     0,     0,   485,     0,     0,   487,     0,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
-     149,   150,   151,   152,   153,     0,     0,  -329,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,     0,     0,     0,     0,   164,  3887,
-       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
-     171,   172,   173,   174,  3888,   176,   177,     0,   178,   179,
-       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
-       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-       0,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,     0,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,  3889,   241,   242,
-     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
-       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
-     264,  3890,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,  3891,     0,     0,   277,
-       0,     0,     0,   279,   280,     0,     0,   281,  3892,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-    -284,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,     0,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,  3893,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   349,   350,     0,     0,     0,
-       0,   352,   353,   354,     0,   356,   357,   358,   359,   360,
-     361,   362,     0,     0,     0,     0,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-       0,     0,   389,     0,   391,  -284,     0,   392,     0,     0,
-       0,   394,     0,     0,   396,   397,  3894,     0,     0,     0,
-     399,   400,   401,   402,   403,   404,     0,   406,   407,     0,
-     408,     0,     0,     0,     0,   410,   411,   412,     0,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,     0,   417,
-       0,   419,     0,   420,     0,   422,     0,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,     0,   432,     0,     0,     0,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,     0,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,     0,     0,     0,     0,   471,
-       0,     0,   472,     0,     0,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-    -284,     0,     0,     0,   485,     0,     0,   487,     0,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
-     149,   150,   151,   152,   153,     0,     0,  -329,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,     0,     0,     0,     0,   164,  3887,
-       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
-     171,   172,   173,   174,  3888,   176,   177,     0,   178,   179,
-       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
-       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-       0,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,     0,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,  3889,   241,   242,
-     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
-       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
-     264,  3890,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,  3891,     0,     0,   277,
-       0,     0,     0,   279,   280,     0,     0,   281,  3892,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-    -284,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,     0,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,  3893,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   349,   350,     0,     0,     0,
-       0,   352,   353,   354,     0,   356,   357,   358,   359,   360,
-     361,   362,     0,     0,     0,     0,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-       0,     0,   389,     0,   391,  -284,     0,   392,     0,     0,
-       0,   394,     0,     0,   396,   397,  3894,     0,     0,     0,
-     399,   400,   401,   402,   403,   404,     0,   406,   407,     0,
-     408,     0,     0,     0,     0,   410,   411,   412,     0,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,     0,   417,
-       0,   419,     0,   420,     0,   422,     0,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,     0,   432,     0,     0,     0,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,     0,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,     0,     0,     0,     0,   471,
-       0,     0,  4230,     0,     0,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-    -284,     0,     0,     0,   485,     0,     0,   487,     0,   489,
-       0,   139,   490,   140,   141,   142,   143,   144,     0,     0,
-     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
-     149,   150,   151,   152,   153,     0,     0,     0,     0,     0,
-       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
-     160,     0,   161,     0,     0,     0,     0,     0,   164,     0,
-       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
-     171,   172,   173,   174,     0,   176,   177,     0,   178,   179,
-       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
-       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
-     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
-       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
-     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
-       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
-       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
-       0,     0,     0,   219,   220,   221,     0,     0,     0,   222,
-       0,     0,   224,     0,   225,   226,   227,     0,     0,   228,
-     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
-     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
-     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
-       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
-     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
-       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
-     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
-       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
-       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
-       0,     0,     0,   279,   280,     0,     0,   281,     0,     0,
-     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
-     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
-       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
-       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
-       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
-     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
-     325,   326,   327,   328,   329,   330,     0,     0,   331,   332,
-       0,     0,   333,   334,   335,   336,     0,     0,     0,     0,
-     338,     0,     0,     0,     0,   339,   340,   341,     0,   342,
-     343,   344,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,   349,   350,     0,     0,     0,
-       0,   352,   353,   354,     0,   356,   357,   358,   359,   360,
-     361,   362,     0,     0,     0,     0,   365,   366,     0,   367,
-       0,   368,   369,   370,   371,   372,     0,   373,   374,   375,
-       0,     0,   376,     0,     0,     0,   377,   378,   379,   380,
-     381,     0,     0,   382,   383,   384,   385,   386,     0,   387,
-       0,     0,   389,     0,   391,     0,     0,   392,     0,     0,
-       0,   394,     0,     0,   396,   397,     0,     0,     0,     0,
-     399,   400,   401,   402,   403,   404,     0,   406,   407,     0,
-     408,     0,     0,     0,     0,   410,   411,   412,     0,     0,
-       0,     0,   414,     0,     0,     0,   415,     0,     0,   417,
-       0,   419,     0,   420,     0,   422,     0,   424,   425,     0,
-       0,     0,     0,     0,     0,   426,   427,     0,   428,     0,
-       0,   429,     0,     0,   430,     0,   432,     0,     0,     0,
-     434,     0,   435,   436,   437,   438,   439,   440,     0,     0,
-     441,   442,   443,   444,     0,   445,   446,     0,   447,     0,
-     448,   449,   450,   451,     0,     0,   452,   453,     0,   454,
-     455,   456,   457,     0,     0,     0,     0,     0,   458,   459,
-     460,     0,     0,     0,     0,   462,   463,   464,     0,   465,
-     466,     0,   467,   468,     0,     0,     0,     0,     0,   471,
-       0,     0,   472,     0,     0,     0,   474,   475,   476,     0,
-       0,     0,     0,     0,     0,   477,     0,     0,   478,     0,
-       0,     0,   479,   480,   481,   482,   483,   484,     0,     0,
-       0,     0,     0,     0,   485,     0,     0,   487,     0,   489,
-       0,     0,   490
-};
-
-static const yytype_int16 yycheck[] =
-{
-       6,   553,   645,   576,   985,    20,   693,   576,   599,  1145,
-     896,  1690,  1102,    19,    29,  1121,    22,   124,  2016,   986,
-     613,    36,   672,  1797,  1175,  1483,    32,  1074,  1828,  1829,
-    1068,  1069,   923,    39,     6,  1175,    42,   698,  1384,   810,
-      46,   719,  1384,  1238,   921,  1307,   948,  1816,    54,  2477,
-     521,  2051,  2518,  1481,  2118,  2288,  1197,   948,  2407,    22,
-    2326,  2585,  2759,  1204,  1112,  3203,  2097,  2131,  2599,  1205,
-    1206,  1315,   949,  1209,  1210,  1211,  1212,   764,  1214,  1215,
-    1216,  1217,  1218,  1219,  1220,  1221,  2814,  1958,  2013,   990,
-      96,  1472,  1816,   754,  1464,  2217,   757,  1887,   641,   642,
-    2132,     4,   654,   655,  2395,   990,  2959,  1956,   659,  2472,
-    2076,  3439,  2076,   119,  2260,   121,  2349,   123,   124,   125,
-    1395,  1454,   772,   773,   774,   879,    34,    16,    17,  1956,
-      17,    16,    17,    96,   784,  1911,  1912,  2339,  1413,  1959,
-     783,    16,    17,  1963,    51,  2388,  1421,  1422,  3092,   121,
-    1939,   123,  1928,  2396,  1974,  1525,    73,    17,  3227,  3486,
-      19,  1827,  2451,    25,  1984,    60,    82,    16,    17,  1945,
-    1946,  2101,   114,    19,   112,  2613,  2614,  1902,    70,    16,
-      17,  2619,  2211,  2621,   131,  1961,  1962,    10,  1964,    83,
-      19,  1967,  1968,  1930,    82,  1971,    59,    60,    70,   175,
-    1976,   132,    21,    86,  1980,  1981,  1982,  1983,  2561,  3209,
-     964,  1987,  1988,    11,  1990,    34,   195,  2752,     9,   812,
-    1996,    47,  2676,  1999,  2000,   151,  2002,  2076,    30,    48,
-    2436,  2437,   950,    32,    21,   195,   151,    28,    63,   164,
-      59,    60,   178,   366,    35,    90,    16,    17,  2037,  2076,
-      36,  2616,   312,  2042,   151,    64,    68,  2870,   193,  2048,
-    2049,  1948,    34,   161,  2053,   285,   354,    16,    17,  1464,
-     157,   217,    59,    60,    16,    17,   132,   357,   267,   388,
-      63,   874,   268,  2949,  2060,  2061,  2062,  2063,   230,   442,
-     301,    56,    16,    17,    16,    17,    88,  3435,   157,  3266,
-    3267,   387,   161,  3270,   270,   992,   222,   192,   224,   157,
-     130,   251,   449,   128,   147,   161,    23,   128,   268,  2065,
-     226,   128,  3289,  3496,   130,   434,    36,   393,    21,  3296,
-    1525,   129,   140,   389,   129,   209,   512,   253,    20,    16,
-      17,    34,   157,   134,   183,    21,   157,  2553,  2554,  2380,
-     157,  2746,   393,   274,   268,    48,   539,   353,    34,   571,
-     510,  2359,  2360,  2361,    16,    17,    59,    60,    19,    16,
-      17,   233,    48,    16,    17,    16,    17,   351,   226,   210,
-     157,   237,   282,    59,    60,  3671,   372,   431,  3923,   115,
-     230,    51,   118,   244,  2454,  2587,   529,   417,   539,   506,
-     533,   412,    16,    17,    16,    17,   189,   605,    46,   215,
-     301,  3378,   168,   264,   254,  2345,   230,   629,   257,  2440,
-     356,  3707,   372,   254,   490,   404,   400,   213,   214,   192,
-      16,    17,   630,  1111,   355,   542,   432,   413,  2833,   195,
-     249,    66,   592,   192,   404,   244,   308,  1125,   243,   490,
-     385,   133,   635,    16,    17,    16,    17,   357,   372,   365,
-    3788,   505,   169,   188,  1235,   285,   190,  1434,   267,   235,
-      16,    17,  1015,   484,   337,    16,    17,   630,   244,   285,
-      40,   657,   371,   539,  3483,   374,   371,    16,    17,   374,
-     456,   268,  2394,   285,  1046,  1047,  1048,    16,    17,   636,
-     506,   226,   508,   213,   214,   268,    16,    17,   448,   317,
-     161,   599,  1389,   636,   353,  1392,  1974,  4052,    73,   525,
-    1397,   630,   371,   529,  3662,   374,   389,    16,    17,   301,
-    2821,  2456,   538,   188,   371,  2460,   542,   374,   544,  2888,
-     447,   621,   628,   376,  1298,  1740,  1423,  1424,   483,  2474,
-    2475,   557,  3725,  1454,   533,  1446,  3523,  1200,  1208,  2484,
-    1930,  2763,  2764,  2765,   510,  3532,  3232,   412,   628,  1454,
-    2601,   226,   210,   533,  1328,  1225,   374,   475,   461,   585,
-    2869,   404,  1718,  2872,  2873,   571,  1956,  2512,   353,  3556,
-     610,  2440,   440,  1729,  3561,  2561,  1732,  2561,   604,  3599,
-     425,   371,  2891,  3216,   374,   417,  1881,   613,  3143,   615,
-    2269,   377,  2401,  2440,   603,   489,  1087,  1088,   510,   402,
-     626,   557,   371,  1524,  2005,   374,   632,   426,  3627,   371,
-    2983,   637,   374,   639,   285,   641,   642,   573,   510,  1524,
-     646,   647,   545,  1114,   146,   651,   577,   371,  2677,   371,
-     374,  1122,   374,  1124,   630,   661,   662,   663,  2583,   597,
-     632,   667,  2387,   626,  1712,  1136,  1137,  1138,  2598,   563,
-    2459,   613,  2461,  1144,   637,   600,   602,  3676,  3406,  2468,
-    3134,   504,  2419,   586,   572,  2351,  4013,   602,  1281,   605,
-     550,  2467,  2481,  1464,   371,  2065,   591,   374,  2487,  2488,
-    1243,  1419,   809,  2479,   550,   602,  2076,  1797,  3708,   656,
-     519,   628,  2561,   719,  2503,  2504,  4044,  3786,   605,   371,
-     628,   577,   374,   630,   371,   614,  2059,   374,   371,   614,
-     371,   374,   555,   374,  2561,  1930,  2767,  2768,  2527,   614,
-    3006,    16,    17,   534,   633,   630,  3690,   634,   550,  2895,
-     569,  2438,  3206,   539,  1525,   584,  1510,   371,  1351,   371,
-     374,   552,   374,    16,    17,   614,   417,  1310,   630,   560,
-     596,   777,   635,   779,   597,   634,  2982,   614,  2552,   605,
-     629,   630,   569,  2559,  1327,   371,   634,   447,   374,   572,
-      16,    17,   629,   630,    64,  2793,   587,   803,   804,   805,
-    1393,   807,   808,   809,  3804,   811,   812,  2867,   371,  2555,
-     371,   374,  3250,   374,   584,   922,  3254,   543,  3010,   634,
-     546,   459,  1373,   634,  3033,   371,   603,   634,   374,   539,
-     371,  2829,   804,   374,  3834,  4163,   808,  4372,  2859,   811,
-      16,    17,   371,   849,   614,   374,  3284,  3285,  3286,    16,
-      17,   406,   371,    71,  3292,   374,   862,   634,   583,   484,
-     630,   371,  3300,   629,   374,   614,    71,  2295,   874,   875,
-    2065,   175,   614,   879,  3140,    43,   569,  3240,   175,   360,
-     629,  2076,   371,  3248,  3249,   374,   157,   629,   630,  1458,
-     614,  3256,   614,   569,  3259,  3260,    16,    17,   145,   862,
-    2700,   594,  3193,    16,    17,   629,  3197,   629,   630,    16,
-      17,  3276,   875,    51,   590,   591,   922,   126,   128,  3152,
-    2822,  2823,    16,    17,  3213,  3290,   341,  4010,   583,  3367,
-    3783,  3296,  3297,  3298,  3299,   628,  2736,   614,  3376,   372,
-    3041,  3941,   284,  4016,    16,    17,  3148,  3478,    16,    17,
-    3193,   511,   629,   630,  3197,  3954,    16,    17,   964,   610,
-    1638,   166,   614,   591,   466,   868,   594,   614,  2742,    16,
-      17,   614,   532,   614,   529,  1877,   125,   629,   630,   249,
-     986,   390,  1533,   630,  4048,  3016,  1877,   630,   629,   630,
-     154,  2760,  3991,  1870,   125,  2453,  2454,   268,   558,   554,
-     614,   165,   614,  1880,  3369,  1907,  1883,  1884,    25,  1015,
-    2859,   226,    82,  3045,   608,   629,  1907,  2983,   630,  2983,
-    2156,   279,  2812,  4106,  2370,   816,  2372,  2373,   614,   192,
-    2372,  2373,  2859,   242,  4172,   190,  2760,    16,    17,    16,
-      17,   654,   655,   629,   630,    25,   138,   168,   192,  2419,
-    4017,   614,  4019,   614,   185,   466,  2103,  2716,  2717,  2718,
-    1066,   153,  2933,  2307,  1070,  4065,  3188,   630,   614,   630,
-    2440,    16,    17,   614,   195,    16,    17,   335,   241,   349,
-    1187,  1731,    16,    17,   630,   614,    16,    17,   466,   630,
-    2231,  4091,  3301,   192,   161,   614,   371,   439,   466,   374,
-     244,   630,   125,  1066,   614,  1111,  2381,  1070,   233,   413,
-     629,  2885,    16,    17,  2934,   125,   413,  1224,   371,  1125,
-     630,   374,   277,   190,   539,   614,   628,  2508,   251,   202,
-     632,  2237,  2238,   282,  2983,  2814,   628,  2399,  1816,  3137,
-     263,   630,     8,  3891,  3892,   371,   356,  3678,   374,   630,
-     565,   282,   222,  1746,   224,   373,  2983,    12,  2059,  1930,
-      16,    17,   185,   560,    12,   460,  3267,  2303,   373,  1175,
-      80,  3202,   340,   125,  2059,  2326,    16,    17,  3176,  3470,
-    3471,  1187,  2230,   253,  1736,  2555,   178,   584,  1781,   598,
-     213,  2561,  2240,    16,    17,   371,    19,   630,   374,  4272,
-    4273,   274,   318,   466,   371,  1748,   370,   374,   357,   372,
-     419,  1318,  1805,  1806,    12,   353,   233,   628,  1224,     8,
-      16,    17,   794,  1229,  2419,   440,   357,   474,  1234,   354,
-      16,    17,   104,   185,  4298,  3932,   506,  1243,   484,   647,
-    1792,    30,    16,    17,    16,    17,  2397,   142,   347,   519,
-     628,   371,   510,   233,   374,   205,   210,  2397,   371,   282,
-     628,   374,   604,   341,   371,  3789,   269,   374,  1837,   272,
-    3998,  1234,   282,    16,    17,  1281,   369,   371,   582,   189,
-     374,    16,    17,    16,    17,   582,   141,  1293,   340,  1295,
-     363,   308,  1298,   141,  2065,  3359,  3762,  2725,  3223,   371,
-     254,   251,   374,   371,  1310,  2076,   374,   516,  3772,   447,
-     362,   371,  1318,   466,   374,   887,   542,   183,  4456,  3244,
-     230,  1327,  1328,   111,   371,   361,   159,   374,   308,   452,
-     282,  3597,   603,   630,   357,  2486,   474,   354,   466,   614,
-     202,   611,   129,   141,   254,  1351,  2486,   357,  1354,    16,
-      17,    16,    17,   389,  1461,   630,  1362,     0,   350,   351,
-    2555,   614,   234,   634,   356,   628,  2561,   422,  1374,  1375,
-    1376,  1377,  1378,  1379,   538,   533,   466,   630,  1384,   251,
-     168,    16,    17,   125,  1390,  1391,   128,  1393,   614,   514,
-    1396,   263,   371,   404,   371,   374,  1299,   374,   471,   807,
-     233,  1014,  1374,  1375,  1376,   357,  1378,   195,   475,  2867,
-    1416,   414,   274,   562,  1377,   466,  1379,   215,    12,  1391,
-     192,   537,   372,   157,  1396,    52,   371,  3891,  3892,   374,
-     371,   562,   226,   374,    19,   330,    63,   371,   614,   466,
-     374,   371,   466,   185,   374,   484,   399,   614,   564,    16,
-      17,  1064,   466,  1416,   630,  1461,   243,   622,   161,  2805,
-      12,   539,  2552,   630,   629,  3463,  1369,   371,   340,  1475,
-     374,   213,  1478,  1479,   599,   628,  2934,    16,    17,    16,
-      17,   161,    19,    16,    17,  4233,  4234,   565,  3837,  2859,
-     560,   285,   402,   504,   614,    16,    17,   514,   588,   589,
-     628,   614,   533,   539,  1510,    16,    17,   614,    89,   205,
-     630,   566,  1475,   552,   584,   371,  1479,   630,   374,   104,
-     614,   354,   629,  1529,  3790,  1531,  1532,   108,  1534,  1535,
-    3319,   371,   584,    41,   374,   341,   630,  1109,   628,   562,
-     282,  1547,   614,  1549,   555,    12,   614,   141,   371,  3613,
-     628,   374,   562,  2600,   614,  2696,  3554,    12,   630,  1531,
-    1532,   507,   630,  4177,  1467,   557,  4180,   614,   168,   508,
-     630,   628,   157,  4037,  4038,   371,   161,   628,   374,   636,
-     452,   573,   599,   630,  2234,   371,   597,  1159,   374,   141,
-     529,  1163,   538,  4059,   350,   351,  2747,   371,   584,   371,
-     374,   628,   374,  3836,   628,   190,   629,  2747,   632,   471,
-     562,    16,    17,  2983,   628,   357,   404,  4083,  4084,   413,
-     205,  2366,   129,    16,    17,   482,   211,   135,   371,    16,
-      17,   374,  1638,  1639,   636,   614,   371,   614,   371,   374,
-      17,   374,  1749,   515,   630,    16,    17,   274,  2419,   234,
-     636,   630,  2742,   630,   341,  2126,   241,   629,   630,    16,
-      17,   529,  2133,   550,    58,   533,   251,  4131,   628,   614,
-    2331,  2332,  2333,   614,   141,  2146,   636,   584,   263,   225,
-     614,   514,  4146,   268,   614,   630,   141,   622,  4302,   630,
-    1696,  3119,   277,   205,   629,  4159,   630,    16,    17,   629,
-     498,   499,   533,   501,   371,   503,   371,   374,  2179,   374,
-     614,  3485,   580,  2458,    16,    17,   536,   515,   575,   205,
-    3720,  3721,   629,   630,   230,   629,  3495,  3406,   623,   624,
-     625,   626,  1738,   539,    39,   235,   371,  2482,  2483,   374,
-    1746,    46,  1748,  1749,   244,   533,  2339,    16,    17,    16,
-      17,    16,    17,   230,  1760,   340,  1762,  4221,   614,   565,
-     617,   633,  1768,  1769,  4192,  1771,   599,   555,  3559,  4233,
-    4234,  3562,  3541,   629,   614,  1781,  2247,   362,  1784,    16,
-      17,   175,  1788,   230,  2555,   179,   225,   372,  2983,   629,
-    2561,   614,   366,    31,   509,  2885,   190,   630,   513,  1805,
-    1806,  1807,  1808,   241,   371,  1768,  1769,   374,  1771,   597,
-    1816,   289,   290,  1819,  1820,  1821,    47,  4281,   614,   404,
-     562,  1784,   628,   192,  3615,  1788,  4038,  4291,   614,   589,
-    1836,   732,   371,   629,   371,   374,   474,   374,   371,  1845,
-     614,   374,   614,   629,  1807,  1808,    84,   584,   111,   285,
-     371,   752,   539,   374,   605,   629,  1819,  1820,  1821,   417,
-     371,    16,    17,   374,   765,   766,   125,   452,   629,   128,
-    4334,   614,  4336,  2759,    16,    17,  1882,   377,   565,   614,
-     438,   614,  4346,    16,    17,   222,   629,   224,  1894,   474,
-    1002,  1003,   142,   630,   629,  1901,   629,  2466,  2800,   636,
-    1803,  4365,  4000,  4367,  4002,  4369,   634,  2809,   578,  2800,
-     636,   469,  4376,   504,  3020,    16,    17,   155,  2809,  1882,
-     629,   630,   316,  4387,    16,    17,   185,  3189,   368,  1041,
-     515,    16,    17,   628,  2811,   629,   630,  1840,  1901,  4403,
-    4404,   628,  3940,   189,  3050,  3051,     6,   614,   440,   614,
-      11,   429,   430,   216,   213,  4419,  4420,    82,    16,    17,
-    4424,   630,   629,   539,   629,  3071,   371,  2074,   628,   374,
-      16,    17,   628,  2080,    16,    17,    16,    17,   371,   614,
-     628,   374,    16,    17,   371,   636,   571,   374,   628,   606,
-     607,   628,  1998,  3144,   629,    16,    17,   629,   630,   584,
-     371,  3347,   628,   374,   628,  3347,   628,  2013,   628,  4221,
-     628,  2118,  1915,   630,   371,   629,   630,   374,   603,   413,
-     605,  1924,  1925,   282,  2131,    16,    17,    16,    17,  3818,
-    3819,  3820,  1935,  1936,  1937,  1938,   628,  1940,  1941,    16,
-      17,    16,    17,   172,   629,   630,   628,   614,   633,   634,
-    3201,   628,   371,    16,    17,   374,   628,    16,    17,    25,
-     628,  3201,   629,    16,    17,    16,    17,   628,  2074,   371,
-     629,   630,   374,  4071,  2080,   614,  2082,   614,   628,  2085,
-     330,   614,  2760,  3234,   629,   630,  2092,  2093,  2094,  2095,
-     629,   514,  2098,   614,  3234,   455,   629,   222,   357,   224,
-     192,   628,   371,   614,   371,   374,   371,   374,   629,   374,
-      25,  1282,  2118,  2085,  1285,   378,  2223,  1288,   629,   628,
-      59,    60,  4334,   628,  4336,  2131,   389,   628,   253,  2092,
-    2093,  2094,    71,   396,   371,  2038,  2039,   374,  2041,   628,
-    2043,  2044,  2045,  2046,  2047,   629,   630,  2050,  2255,  2052,
-    2702,  2744,   628,  4365,   628,   542,   629,   630,  3934,    58,
-      17,   399,    16,    17,    82,    19,  2505,    82,   628,  3969,
-    2763,  2764,  2765,   362,   523,   524,    16,    17,   527,   528,
-    3218,  3219,   531,   421,   533,   592,   593,   628,   595,   584,
-     597,  4403,  4404,   159,   629,   630,  3970,  2790,    17,  3305,
-     628,  3977,  3978,   628,   155,  3981,  3982,  3983,  3984,   614,
-      12,   628,  2983,    16,    17,   453,   371,  2223,   628,   374,
-    2691,   614,    59,    60,   629,   488,   455,   614,   628,   371,
-    3256,   628,   374,  3259,  3260,   403,   629,   628,   371,   192,
-     628,   374,  2248,   614,   159,  3703,  3704,   629,   630,  2255,
-    3276,   579,   580,  2360,   582,  2362,  2363,   614,   629,   629,
-     630,   176,   628,  2269,   629,   630,   628,   233,  4057,   628,
-     371,   509,   629,   374,   629,   630,   175,   542,   628,   371,
-     179,   628,   374,  3434,   466,   142,   371,   629,   630,   374,
-     628,   190,   474,    19,  3434,   614,  2302,   628,  3345,  2406,
-    2407,   530,   203,   562,   144,  4081,  4082,   536,   629,   630,
-     629,  4085,   614,   371,  4090,   233,   374,   580,   233,  3998,
-    2326,   629,   630,   142,    25,   371,   369,   629,   374,   371,
-     628,   371,   374,  2339,   374,   629,   630,   371,   628,   141,
-     374,   628,   308,  3369,   628,   614,  2352,   614,  2354,   614,
-     371,   580,   628,   374,  2360,   628,  2362,  2363,   629,   630,
-     629,   362,   629,   529,  2370,   362,  2372,  2373,   597,   630,
-    2477,   621,   622,   623,   624,   625,   626,   614,   104,   628,
-     371,    82,   371,   374,   628,   374,   629,   630,   354,   629,
-     630,  2397,   629,   308,   371,  3485,   371,   374,   628,   374,
-    2406,  2407,     6,   628,   305,   306,   588,   589,   371,   310,
-     311,   374,   371,   215,    82,   374,   628,   316,   371,  3386,
-     371,   374,   628,   374,   628,  3343,  3344,    11,   125,   628,
-     348,   157,  2447,   348,   628,   161,   354,  3796,  3797,   354,
-    2446,   628,  2457,   629,   630,  2451,   628,    26,  2463,  2352,
-    2456,   628,  4450,    57,  2460,   628,  2462,   629,   630,   614,
-     629,   630,   188,   628,   190,   814,  2472,   628,  2474,  2475,
-    2485,  2477,   614,   330,   629,   176,  2491,   628,  2484,   205,
-    2486,   614,  2497,  2498,   628,   211,   226,   629,   185,   628,
-    2496,   159,    71,   629,   630,    85,   629,    87,   628,  2505,
-     226,   628,  1769,    82,  1771,   423,  2512,  2513,   234,   629,
-     630,   330,  2518,   614,   413,   241,   213,   371,  3168,  2525,
-     374,    34,   614,   629,   630,   251,   628,   111,   629,   614,
-     628,   371,   233,  2496,   374,   628,  2875,   263,   128,   629,
-     630,   145,   268,   490,   629,   129,   628,    60,   514,   128,
-     628,   277,  1819,  1820,  1821,  3148,   614,   629,   630,   149,
-     628,  2464,  2465,   629,   630,   233,   628,  2906,   614,   628,
-      80,   629,   614,  3491,   614,    49,  2582,  2583,  2917,   629,
-     614,  2920,  4382,   629,   168,   282,  3945,  2490,  3059,   629,
-    3949,   629,   630,   614,   184,   629,   514,   629,   630,   514,
-     629,   630,   115,   629,   630,   118,   279,   308,   629,   629,
-     630,   195,    49,   126,   340,  2518,   629,   630,   123,  2582,
-     477,   478,   630,   614,   362,   614,   362,  2966,  3099,   460,
-     143,   629,   630,   599,   629,   630,   362,   614,   629,   614,
-     629,   571,    12,   222,   623,   224,   372,   348,  2551,   567,
-     167,   614,   629,   354,   629,   614,   474,  4457,   477,   478,
-     357,   614,   268,   614,   630,   125,   629,   629,   630,   190,
-     629,   628,    42,   629,   630,   254,   151,   152,   404,   189,
-     348,   599,    32,   510,   599,   529,   354,   629,   630,   629,
-     630,  3827,   629,   630,   278,   167,   498,   499,   500,   501,
-     502,   503,   629,   630,    63,   510,  2712,   629,   630,  2715,
-    2716,  2717,  2718,   515,   279,   630,   221,   158,  2724,    91,
-     230,    80,   629,   630,   630,   185,   452,    97,   364,   242,
-     525,   630,   102,    92,   629,   630,   125,  2743,  2744,  3642,
-    3643,  2747,  1160,  1161,   254,  3154,  3155,   351,   474,  4108,
-    4109,  3112,  3113,   213,  2760,   423,   629,  2763,  2764,  2765,
-     614,  2724,   619,   620,   621,   622,   623,   624,   625,   626,
-    2776,   350,   351,  3740,   614,  3327,  2782,   356,  2784,  3746,
-     157,  2888,   128,   362,  2790,  3415,  3416,  3356,   114,   515,
-     380,     6,   142,   635,  3712,  3713,   185,  3715,  3716,  2805,
-     619,   620,   621,   622,   623,   624,   625,   626,   628,   113,
-       4,    63,   416,   514,   418,   320,  3967,   465,   597,   324,
-     404,   244,   282,   402,   213,   388,   331,  3967,    80,   342,
-     189,   630,    56,   432,   424,   194,   172,   114,   223,   630,
-      92,   125,   630,   636,   104,   571,   514,    12,    71,   602,
-     142,   629,  1080,  1081,  1082,   629,   539,   583,   584,   141,
-       9,   630,   629,  2869,   636,   562,  2872,  2873,   629,  2875,
-    1098,   230,   636,  2776,   628,   267,   246,   603,   388,   605,
-    3970,   636,  2888,   159,   630,  2891,   635,   142,   472,   279,
-     529,   470,   402,   282,   244,   254,   279,   357,   599,   567,
-    2906,   185,  1130,   629,   630,  1133,   411,   633,   634,    49,
-     279,  2917,   279,   279,  2920,   279,   630,   267,   628,   274,
-     504,   630,   387,   630,  1152,  1153,   550,   630,  1156,   213,
-     550,   599,    12,   161,   630,   630,  2942,   189,   222,  2945,
-     224,   630,   194,   630,  2950,   244,   530,   317,  1176,  1177,
-     245,   623,   244,    60,  2960,   527,   190,   576,  2964,   464,
-    2966,   180,   630,   630,   125,   630,   391,   487,   357,   482,
-     137,   362,   630,   104,   234,  2981,   629,   161,   230,   630,
-     330,   161,  2945,   142,   161,   161,  2889,   161,  2960,   244,
-    2996,   251,   161,   572,  2897,  4085,   630,  3003,   282,   161,
-     350,   351,   254,   263,   161,   161,   161,   161,   115,  3015,
-     380,   118,   578,   597,  3517,  3518,   161,   161,   161,   126,
-    4171,     6,   161,   161,   185,   161,   161,  3530,    13,   388,
-      15,  4171,   609,   546,  3537,   583,   143,   142,   330,    82,
-    3003,    26,    27,   402,   195,   362,  3932,    90,   362,   362,
-    3157,  4018,   213,   622,   630,   192,  3717,  3718,  3719,   629,
-    3563,  3564,   575,   192,  3751,   629,  3173,   629,   629,   629,
-     623,   114,    57,   357,   629,   330,   426,    62,    63,   186,
-     340,   630,   629,   629,    69,  2988,   628,  3093,   629,   629,
-     629,   629,   629,   571,   630,  3101,   601,    82,   630,   629,
-     629,   629,   562,   234,   475,    90,   628,   496,   626,    82,
-    3679,   616,   628,  3665,  4250,   100,   159,   628,   630,  3125,
-     251,   282,   492,    96,   550,   629,   603,   477,   478,   114,
-     232,   628,   263,   521,   493,   242,    11,   203,  3144,  3145,
-     192,   491,  3148,   128,   636,   192,   131,   629,   170,   456,
-     402,  3157,   474,   138,   139,   412,   526,  3163,   190,   630,
-     145,   630,    47,   136,   142,   338,   504,  3173,   153,   504,
-     504,   330,   157,   562,   159,  3181,   504,   504,   465,    80,
-     388,   388,   388,   137,  3775,   477,   478,   230,   550,   252,
-     530,  3878,   452,   252,   137,  3201,   357,   530,  3101,   388,
-      47,   388,   388,   188,   386,   388,   435,  3213,   628,   340,
-     388,   628,   628,   572,  4350,   636,   111,  3223,   278,  3225,
-     629,   584,   477,   478,   155,   330,   629,   240,  3234,   240,
-     636,   362,   339,   629,  3240,   342,  3242,   222,  3244,   224,
-     550,   493,   629,   228,   550,   230,   630,   629,   629,   629,
-     636,   629,  3359,   238,   550,   515,    16,    17,  3831,   539,
-     636,   636,   636,   636,   307,   630,  4417,   610,   253,   619,
-     620,   621,   622,   623,   624,   625,   626,  4417,   562,   274,
-      88,    47,   325,   256,   628,   161,   628,   628,   550,  4440,
-     161,   628,   369,   192,  4261,  4262,  4447,  4264,   192,   194,
-    4440,   192,  4453,   241,    36,   348,   192,  4447,   248,   170,
-     251,  3317,   419,  4453,   630,   636,   636,   357,   477,   478,
-     572,   452,   307,   251,   375,   321,  1554,   619,   620,   621,
-     622,   623,   624,   625,   626,   230,  3342,  3343,  3344,   114,
-     325,  3347,  3449,   114,   329,   254,  4313,   254,  4315,  4316,
-     636,   550,   330,  3359,   628,   328,   628,   205,   368,   119,
-     120,   121,   122,   123,   619,   620,   621,   622,   623,   624,
-     625,   626,   477,   478,   449,   539,   388,   350,   351,   628,
-     353,   372,   367,   278,   515,   636,   118,   372,   623,   628,
-     628,    26,    27,   125,   379,   636,   381,   242,   242,   629,
-     605,   562,   629,   388,   389,  4048,   623,  3310,   629,   629,
-     628,  4378,  1640,  3986,   362,   629,  1644,   629,   629,   629,
-     226,   630,   388,  3429,    59,    60,   629,    62,  3434,   269,
-    3333,   629,  3539,   630,  4415,   420,    71,   192,  1666,   546,
-     636,   244,   415,  3449,   577,   265,   178,    82,    71,   434,
-     435,   436,   437,   185,   251,    90,   251,   362,   218,   219,
-     220,   221,   621,   622,   623,   624,   625,   626,   575,  4021,
-     630,   514,   457,   111,   254,   628,   254,   400,   630,   114,
-     630,   213,   214,   629,   362,  3491,  3501,   530,   630,   362,
-      82,    82,    19,   128,   628,   362,   131,   629,  4050,   477,
-     478,   628,  3508,  4072,   630,    96,  3613,   362,   490,    47,
-     466,   629,   628,    55,   619,   620,   621,   622,   623,   624,
-     625,   626,   628,    65,   159,   628,   268,   628,    47,   514,
-     168,   504,   629,  3539,   161,   161,   162,   629,   468,    81,
-     605,   203,   148,   417,   261,   530,   629,   629,   205,   534,
-     282,    93,    94,    95,    19,   476,   183,   195,   630,  3565,
-     320,    26,   322,   323,   324,   251,  3572,   109,   553,   196,
-     196,   331,   628,   558,  3681,   628,   251,   472,   628,   128,
-     207,   207,   630,   128,  3590,   398,   571,   222,    86,   224,
-     628,   636,   230,   144,   484,   230,   629,   490,   493,   461,
-     629,    19,   630,   238,   629,   629,    71,  3613,   104,   341,
-     629,   371,   629,   629,   374,   629,   357,    82,   253,    34,
-     352,   247,    34,    60,   356,   357,   242,   629,   629,   629,
-     257,   629,   259,   259,   327,   530,   256,  3540,   533,   412,
-     278,   536,   620,   621,   622,   623,   624,   625,   626,   634,
-     369,   411,    13,   277,    15,  4298,   605,   241,   628,   286,
-     286,   629,   636,   128,    47,   256,   630,   211,   630,   327,
-      31,   417,   307,   539,    35,  3681,  3579,   572,   584,   539,
-     584,   628,   628,   628,   628,   580,   628,   304,    49,    50,
-     325,   594,   629,  3699,   628,   628,    57,    36,   594,    14,
-     577,    62,    63,   463,   464,   128,  3712,  3713,   254,  3715,
-    3716,    19,   356,   254,    34,   629,   628,   630,   344,   170,
-     347,   456,   630,    84,   357,   327,   174,    17,   539,   539,
-    3837,   254,   539,   198,  4307,   533,   628,   328,   234,   588,
-     629,   629,   103,   584,   379,   584,   381,   241,   362,   352,
-     508,   589,   605,   449,   389,   251,  3762,   222,  4310,   224,
-     357,   399,   353,   124,   170,  4408,   404,   263,   138,   369,
-     629,   132,   133,   134,   401,  3781,  3782,   319,   630,   118,
-     520,   577,   628,   144,   145,   628,   125,  3793,   190,   254,
-     156,   628,   628,   602,   336,    31,   157,   629,   190,  4442,
-     629,   629,   637,   383,    61,   541,   137,   539,   137,   628,
-     171,   543,   159,    73,   546,   404,   425,    26,    27,  3782,
-    3826,   602,   457,  3829,   415,   557,   187,   192,    31,    63,
-     562,  3837,  4384,   565,   472,   369,    63,   630,   629,   178,
-     628,   601,   203,   521,   340,   270,   185,   208,    47,    47,
-       5,   212,   628,    62,   614,   615,   616,   362,   628,  3762,
-     362,  3867,   629,  3826,   241,   634,   362,   155,   369,   369,
-     136,   144,   628,    82,   213,   214,   237,    47,   239,   514,
-      47,    90,  3888,   154,   521,   350,   351,  3893,    47,   621,
-     622,   356,   530,   577,   255,   530,   602,   362,   536,   534,
-     132,   155,  4454,   225,   284,   114,  4131,   634,   637,   127,
-     150,    47,   273,   504,   628,    47,   277,   555,   553,   128,
-     462,  4146,   131,   456,    47,   629,    53,   634,   458,   223,
-     630,   629,   155,   254,  4159,   542,   571,   402,   630,   208,
-     630,    47,   580,   282,   629,   634,   629,   439,   630,    53,
-     159,   190,   190,   190,   226,   542,   452,   604,   357,   597,
-     128,  3967,   628,   474,  3898,   191,   630,  2262,  2054,  3319,
-    2435,  3320,  3588,  3925,   655,   517,  4051,  4240,   999,  4086,
-    4241,  3586,  3590,  3780,  4442,  4395,    46,   577,  3772,  2760,
-    1815,  3772,  3772,   535,  4000,   630,  4002,  3772,  4004,  3772,
-    4405,  3772,   341,  3772,  3772,   470,   367,  4278,  3772,  4124,
-    3772,  4278,  3772,   222,  4234,   224,  4150,   356,   357,   515,
-    3772,   230,  3772,   384,  4030,  4149,  1470,   388,  1740,   238,
-    3933,  1039,  2012,  1472,  3930,   672,  2915,  1480,   399,  2738,
-     677,  3428,  2743,  3125,   253,  1315,  4076,  4175,  3827,   410,
-    3431,  4350,  4258,  4059,  4307,   516,  4281,  3986,  1524,  3595,
-    2005,  2989,  3244,  2583,  2013,  2515,  4291,  3223,  4325,  3267,
-    4076,   432,  3232,  4021,   435,  3041,   437,   714,  3301,   440,
-    4086,  3738,   443,   444,  3550,  4192,  4092,  4072,  3539,  3173,
-     451,    11,   453,    11,   731,  4008,  4108,  3949,   307,   460,
-    4109,  3936,  1538,  3945,  2090,   466,  3793,   572,  2012,  3746,
-    3225,   968,  2508,   474,   630,  1430,   325,  3505,   479,  1889,
-     481,  4346,  3224,   484,  2321,  1520,  1807,  1479,  2724,  3120,
-    2343,  2295,  2213,  1826,  3774,   772,   773,   774,   775,   598,
-     908,  2125,  4367,  3101,  4369,  2702,  2122,   784,   509,  4256,
-    1125,  4376,   513,  2398,  3191,  2212,  4059,  3852,  3706,  4207,
-    3317,  4208,  4387,  1098,  2241,  4171,  2805,  1446,  3234,  3700,
-     379,  2504,   381,  4384,  3681,  2095,  4079,  4080,  2348,  1298,
-     389,  1328,  2289,  3434,  2325,  3201,  4192,  4171,  3139,  3138,
-     588,    26,    27,  1547,  4419,  4420,   668,   558,  1878,  4424,
-     539,  4207,  4208,  1382,   543,   576,  1410,   546,  1879,   570,
-      12,    13,  3242,   574,  1759,  3123,   577,  1334,   557,  4300,
-    4447,  4199,   583,   562,    59,    60,   565,    62,   865,  4348,
-    4268,  4453,  3541,  3144,  1362,  1831,    71,  2792,  3181,  3460,
-    3689,  1352,   568,  3816,  1788,   890,  1290,    82,   457,  2712,
-    4256,   612,  3822,   569,  1529,    90,   895,   618,   655,   512,
-     512,   655,   655,    -1,    -1,    -1,    -1,   628,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  4283,    -1,   114,
-    4183,  4184,   621,   622,  4290,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   128,    -1,    -1,   131,    -1,    -1,    -1,
-      -1,   103,    -1,    -1,    -1,   514,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   530,    -1,    -1,   159,   534,    -1,    -1,    -1,  4436,
-     132,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   145,   553,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    4366,    -1,   571,    -1,    -1,  4371,   168,    -1,    -1,   171,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     182,    -1,    -1,    -1,  1021,    -1,    -1,   222,    -1,   224,
-      -1,    -1,    -1,    -1,    -1,   230,    -1,    -1,    -1,    -1,
-      -1,   203,  4408,   238,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,  4417,    -1,    -1,    -1,    -1,    -1,    -1,   253,  4322,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   230,    -1,
-    4436,    -1,   267,    -1,  4440,   237,  4442,    -1,    -1,  1076,
-    1077,  4447,    -1,    -1,    -1,    -1,    -1,  4453,  1085,  1086,
-    1087,  1088,  1089,  1090,  1091,  1092,  1093,  1094,  1095,  1096,
-    1097,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  1105,  1106,
-      -1,  1108,   307,  1110,    -1,   277,    -1,  1114,    -1,    -1,
-    1117,  1118,  1119,  1120,    -1,  1122,  1123,  1124,    -1,    -1,
-     325,    -1,    -1,    -1,  1131,  1132,    -1,  1134,  1135,  1136,
-    1137,  1138,    -1,    -1,  1141,  1142,  1143,  1144,  1145,  1146,
-    1147,  1148,  1149,  1150,  1151,    -1,    -1,  1154,  1155,    -1,
-      -1,  1158,    -1,    -1,    -1,  1162,    -1,  1164,  1165,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,  1178,  1179,    -1,   379,    -1,   381,    -1,    -1,  1186,
-      -1,    -1,    -1,    -1,   389,    -1,  1193,  1194,  1195,    -1,
-    1197,    -1,    -1,    -1,    -1,    -1,    -1,  1204,  1205,  1206,
-      -1,  1208,  1209,  1210,  1211,  1212,    -1,  1214,  1215,  1216,
-    1217,  1218,  1219,  1220,  1221,    -1,    -1,    -1,  1225,  1226,
-      -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   405,    -1,    -1,    -1,   409,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   457,   425,    -1,    24,    -1,    -1,    67,    -1,
-      -1,   433,    -1,    -1,    -1,    34,    35,    -1,    -1,   441,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      59,    60,    -1,    -1,   466,  1302,    -1,    -1,    67,    -1,
-      -1,    -1,    -1,    72,    -1,    -1,    -1,   479,   480,   514,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   677,
-      -1,    -1,    -1,    -1,    -1,   530,   135,    -1,    -1,   534,
-      99,    -1,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,   553,    -1,
-     159,    -1,   524,    -1,   163,  1362,   714,    -1,    -1,    -1,
-      -1,    -1,    -1,  1370,    -1,    -1,   571,    -1,    -1,    -1,
-      -1,    -1,    -1,   731,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   555,    -1,    -1,    -1,    -1,   197,   158,
-     159,    -1,    -1,    -1,    -1,   164,    -1,    -1,   167,    -1,
-      -1,    -1,    -1,    -1,    -1,   577,    -1,   579,   217,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   775,    -1,    -1,
-      -1,    -1,   231,   628,   193,    -1,   195,    13,    -1,    15,
-      -1,    -1,    -1,   202,    -1,   204,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    35,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     229,   230,   231,    49,    50,  1472,    -1,    -1,    -1,    -1,
-     279,    57,    -1,    -1,    -1,    -1,    62,    63,    -1,    -1,
-      -1,    -1,    -1,   252,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   301,    -1,    -1,    -1,    -1,    -1,    84,    -1,
-      -1,   227,    -1,    -1,    -1,   274,    -1,   865,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   301,    -1,    -1,    -1,    -1,    -1,   124,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   132,   133,   134,    -1,
-      -1,    -1,    -1,  1560,    -1,    -1,    -1,    -1,   144,   145,
-      -1,   287,   288,   289,   290,   291,   292,    -1,   294,   295,
-     296,   297,   298,   299,   300,    -1,   302,   303,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   171,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   403,    -1,    -1,   366,    -1,    -1,
-      -1,   187,    -1,   412,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   203,   427,    -1,
-      -1,    -1,   208,   392,    -1,    -1,   212,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   403,   404,   445,    -1,   407,   408,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   237,    -1,   239,    -1,    -1,    -1,    -1,    -1,   428,
-      -1,    -1,    -1,  1021,    -1,  1672,  1673,  1674,    -1,   255,
-      -1,    -1,    -1,    -1,    -1,   484,   485,    -1,    -1,  1686,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   273,    -1,    -1,
-      -1,   277,    -1,    -1,    -1,    -1,    12,    13,    -1,    -1,
-      -1,   510,   471,   429,   430,  1712,    -1,    -1,    -1,    -1,
-      -1,  1718,    -1,    -1,  1721,   484,  1723,    -1,  1076,  1077,
-      -1,    -1,  1729,   532,  1731,  1732,    -1,  1085,  1086,    -1,
-      -1,  1089,  1090,  1091,  1092,  1093,  1094,  1095,  1096,  1097,
-      -1,   510,    -1,    -1,    -1,   514,    -1,  1105,  1106,    -1,
-    1108,    -1,  1110,    -1,    -1,    -1,    -1,    -1,    -1,  1117,
-    1118,  1119,  1120,   532,   533,  1123,    -1,    -1,    -1,    -1,
-      -1,    -1,   581,  1131,  1132,    -1,  1134,  1135,    -1,    -1,
-      -1,   367,    -1,  1141,  1142,  1143,    -1,   103,  1146,  1147,
-    1148,  1149,  1150,  1151,    -1,  1802,  1154,  1155,   384,    -1,
-    1158,    -1,   388,    -1,  1162,    -1,  1164,  1165,    -1,    -1,
-      -1,    -1,   581,   399,    -1,    -1,   132,    -1,    -1,    -1,
-    1178,  1179,    -1,   592,   410,    -1,    -1,    34,  1186,   145,
-      -1,   600,    -1,    -1,    -1,  1193,  1194,  1195,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   432,    -1,    -1,   435,
-      -1,   437,   168,    -1,   440,   171,    -1,   443,   444,    -1,
-      67,    -1,    -1,    -1,    -1,   451,   182,   453,  1226,    -1,
-      -1,    -1,    -1,    -1,   460,    -1,    -1,    -1,    -1,    -1,
-     466,    -1,    -1,    -1,    -1,    -1,    -1,   203,   474,    -1,
-      -1,    -1,    -1,   479,    -1,   481,    -1,    -1,   484,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   230,    -1,    -1,    -1,    -1,    -1,
-      -1,   237,    -1,   509,    -1,    -1,    -1,   513,   135,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  1302,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   159,    -1,    -1,    -1,   163,    -1,    -1,    -1,
-      -1,   277,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   558,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   570,    -1,    -1,    -1,   574,    -1,
-     197,   577,    -1,    -1,    -1,    -1,    -1,   583,  2005,    -1,
-      -1,    -1,    -1,    -1,  1362,    -1,    -1,    -1,    -1,    -1,
-     217,    -1,  1370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   231,    -1,   612,    -1,  2035,    -1,
-      -1,    -1,   618,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   628,    -1,    -1,    -1,    -1,    33,    34,    -1,
-      -1,    -1,    -1,    39,    -1,    41,    -1,    43,    44,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   279,    -1,    60,    -1,    -1,    -1,    -1,    -1,
-      -1,  2088,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   405,
-      -1,    -1,    -1,   409,   301,    -1,    -1,  2104,    -1,    -1,
-      -1,  2108,    -1,    -1,    -1,    -1,  2113,  2114,    -1,   425,
-      -1,    -1,    -1,    -1,    -1,  2122,  2123,   433,  2125,  2126,
-    2127,  2128,    -1,  2130,    -1,   441,  2133,    -1,    -1,   115,
-      -1,    -1,   118,    -1,    -1,    -1,  2143,    -1,  2145,  2146,
-     126,  2148,  2149,  2150,  2151,    -1,  2153,    -1,    -1,  2156,
-     466,    -1,    -1,    -1,    -1,    -1,    -1,   143,  2165,    -1,
-      -1,    -1,    -1,   479,   480,  2172,    -1,  2174,    -1,  2176,
-    2177,  2178,  2179,    -1,   160,    -1,  2183,  2184,  2185,    -1,
-      -1,    -1,  2189,  2190,  2191,    -1,  2193,    -1,  2195,    -1,
-    2197,    -1,  2199,    -1,  2201,    -1,   403,    -1,   184,  2206,
-     186,    -1,  1560,    -1,    -1,   412,    -1,    -1,   524,    -1,
-      -1,    -1,    -1,   199,   200,    -1,    -1,  2224,    -1,    -1,
-     427,    -1,    -1,    -1,  2231,    -1,    -1,  2234,    -1,    -1,
-      -1,    -1,    -1,  2240,    -1,    -1,  2243,    -1,   445,   555,
-    2247,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   242,    -1,    -1,    -1,
-      -1,   577,    -1,   579,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   484,   485,    -1,
-      -1,    -1,    -1,    -1,    -1,   271,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   280,   281,  2303,   283,    -1,    -1,
-      -1,    -1,    -1,   510,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    13,  1672,  1673,  1674,    -1,    -1,    -1,
-      -1,    -1,   529,    -1,    -1,   532,   533,   313,   314,   315,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   332,   333,   334,    -1,
-      -1,    -1,    -1,   339,  1712,    -1,   342,    -1,    -1,    -1,
-      -1,    -1,    -1,  1721,    -1,  1723,    -1,    -1,    -1,    -1,
-      -1,    -1,   358,   359,   581,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   119,   120,   121,   122,   123,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,   394,   395,
-      -1,  2418,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2436,
-    2437,    -1,   132,   419,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  1802,   145,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   168,    -1,
-      -1,   171,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   182,    -1,   470,    -1,    -1,    -1,   474,    -1,
-     218,   219,   220,   221,    -1,    -1,    -1,    -1,    -1,    -1,
-     486,  2508,    -1,   203,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     230,    -1,    -1,    -1,    -1,    -1,    -1,   237,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  2553,  2554,    -1,    -1,
-      -1,    -1,    -1,    -1,   540,    -1,    -1,   543,    -1,    -1,
-     546,   547,   548,   549,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   277,    -1,    -1,
-    2587,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      26,    27,   320,    -1,   322,   323,   324,  2604,    -1,    -1,
-      -1,  2608,    -1,   331,   590,   591,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    59,    60,    -1,    62,    -1,    -1,    -1,
-     616,  2638,  2639,    -1,    -1,    71,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,
-      -1,  2658,    -1,    -1,    90,    -1,    -1,    -1,    -1,    -1,
-    2667,    -1,  2669,    -1,  2671,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2035,   114,    -1,
-      -1,    -1,    -1,   411,  2691,    -1,    -1,    -1,    -1,  2696,
-      -1,    -1,   128,    -1,    -1,   131,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   405,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  2720,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   159,    -1,   425,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   433,    -1,   463,   464,    -1,    -1,    -1,
-      -1,   441,    -1,    -1,    -1,    -1,  2104,    -1,    -1,    -1,
-    2108,    -1,    -1,    -1,    -1,  2113,  2114,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  2122,  2123,   466,  2125,    -1,  2127,
-    2128,    -1,  2130,    -1,    -1,    -1,    -1,    -1,  2785,   479,
-     480,    -1,  2789,    -1,    -1,  2143,   222,  2145,   224,    -1,
-    2148,  2149,  2150,  2151,   230,  2153,    -1,    -1,    -1,    -1,
-      -1,    -1,   238,    -1,    -1,    -1,    -1,  2165,    -1,    -1,
-      -1,    -1,    -1,    -1,  2172,    -1,  2174,   253,  2176,  2177,
-    2178,    -1,    -1,    -1,   524,  2183,  2184,  2185,    -1,  2836,
-      -1,  2189,  2190,  2191,    -1,  2193,    -1,  2195,    -1,  2197,
-      -1,  2199,    -1,  2201,     6,    -1,    -1,    -1,  2206,    -1,
-      -1,    13,    -1,    -1,    -1,   555,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    26,    27,  2224,    -1,    -1,    -1,
-      -1,   307,    -1,   601,    -1,    -1,    -1,   577,    -1,   579,
-      -1,    -1,  2240,    -1,    -1,  2243,    -1,   615,   616,   325,
-      -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,
-      62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,    -1,
-      -1,    -1,    -1,   379,    -1,   381,    -1,    -1,    -1,    -1,
-    2957,  2958,   114,   389,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   128,    -1,    -1,   131,
-      -1,    -1,    -1,    -1,    -1,  2982,   138,    -1,    -1,    -1,
-      -1,    -1,    -1,   145,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   153,    -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,
-      -1,    -1,    -1,  3010,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  3023,    -1,    -1,    -1,
-      -1,   457,    -1,    -1,    -1,    -1,   188,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3056,
-    3057,    -1,  3059,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     222,  3068,   224,    -1,    -1,    -1,  3073,    -1,   230,  3076,
-      -1,  3078,  3079,    -1,    -1,    -1,   238,    -1,   514,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   253,  3099,    -1,   530,    -1,    -1,    -1,   534,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3114,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   553,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,  3138,    -1,    -1,    -1,   571,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   307,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,  3168,    -1,   325,    -1,    -1,    -1,   329,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  3182,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  3203,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  3212,    -1,    -1,    -1,    -1,
-     372,    -1,    -1,    -1,    -1,    -1,    -1,   379,    -1,   381,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   389,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  2604,    -1,    -1,    -1,
-    2608,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   435,    -1,    -1,    -1,    -1,    -1,    -1,
-    2638,  2639,    -1,    -1,    -1,    -1,    -1,  3294,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   457,    -1,    -1,    -1,    -1,
-    2658,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2667,
-      -1,  2669,    -1,  2671,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   514,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  2720,    -1,    -1,    -1,    -1,    -1,   530,    -1,
-      -1,    -1,   534,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   553,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   571,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2785,  3435,    -1,
-      -1,  2789,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3474,  3475,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  3483,    -1,  2836,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  3550,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3595,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2957,
-    2958,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    3627,    -1,    -1,    -1,  3631,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  3662,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  3023,    -1,    -1,    -1,  3676,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  3689,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3056,  3057,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    3068,    -1,    -1,    -1,    -1,  3073,    -1,    -1,  3076,    -1,
-    3078,  3079,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  3114,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  3772,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    3138,    -1,    -1,    -1,    -1,  3792,    -1,    -1,    -1,  3796,
-    3797,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    3827,    -1,    -1,    -1,  3182,    -1,    -1,    -1,  3835,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3844,    -1,  3846,
-      -1,    -1,    -1,    -1,    -1,  3203,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  3212,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3885,    -1,
-      -1,    -1,    -1,    -1,  3891,  3892,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3936,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3945,    -1,
-      -1,    -1,  3949,    -1,    -1,    -1,    -1,  3954,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  3991,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  4010,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  4023,    -1,  4025,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4035,    -1,
-    4037,  4038,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  4062,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3435,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4106,
-      -1,  4108,  4109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  3474,  3475,    -1,    -1,
-      -1,    -1,  4129,    -1,  4131,  3483,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4146,
-    4147,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  4159,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  4172,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  4220,  4221,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  4233,  4234,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  4250,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3627,
-      -1,    -1,    -1,  3631,  4281,    -1,    -1,    -1,    -1,    -1,
-      -1,  4288,    -1,    -1,  4291,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  3662,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3676,    -1,
-    4327,    -1,    -1,    -1,    -1,    -1,    -1,  4334,    -1,  4336,
-      -1,  3689,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4346,
-      -1,    -1,    -1,  4350,    -1,    -1,  4353,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4365,    -1,
-    4367,    -1,  4369,    -1,    -1,    -1,    -1,    -1,    -1,  4376,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    4387,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  4403,  4404,    -1,    -1,
-      -1,    -1,  4409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  4419,  4420,    -1,    -1,    -1,  4424,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4456,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3835,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  3844,    -1,  3846,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3885,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,  3954,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,  3991,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  4023,    -1,  4025,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,  4035,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,  4129,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4147,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,  4172,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,  4220,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    4288,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4327,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,  4353,    -1,    -1,    -1,     5,
-      -1,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
-      -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,
-      26,    27,    28,    29,    -1,    31,    -1,    -1,    34,    35,
-      36,    37,    38,    39,    40,    -1,    42,    43,    44,    45,
-      46,    -1,    48,    49,    -1,    -1,    52,    53,    54,    55,
-      56,  4409,    58,    59,    60,    61,    62,    -1,    64,    65,
-      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
-      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
-      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
-      96,    97,    -1,    99,   100,   101,   102,    -1,  4456,   105,
-     106,   107,    -1,   109,   110,   111,    -1,   113,   114,   115,
-     116,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
-      -1,    -1,   128,   129,    -1,   131,    -1,    -1,    -1,   135,
-      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
-      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
-     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
-     166,   167,   168,   169,   170,   171,   172,    -1,   174,   175,
-     176,   177,   178,   179,   180,    -1,   182,   183,   184,   185,
-      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
-      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
-     206,    -1,   208,   209,   210,    -1,   212,   213,   214,    -1,
-     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,   225,
-      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
-      -1,   237,   238,   239,   240,    -1,    -1,   243,    -1,   245,
-     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
-     256,   257,   258,    -1,   260,   261,    -1,   263,   264,   265,
-      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
-     276,    -1,   278,   279,    -1,    -1,   282,    -1,    -1,    -1,
-      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,    -1,   301,   302,   303,   304,   305,
-     306,   307,   308,   309,   310,   311,    -1,    -1,    -1,    -1,
-     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
-     326,   327,    -1,   329,   330,   331,   332,   333,   334,   335,
-     336,   337,   338,   339,    -1,   341,   342,   343,    -1,    -1,
-     346,   347,   348,   349,   350,   351,   352,   353,   354,    -1,
-     356,   357,    -1,   359,   360,   361,    -1,   363,   364,   365,
-     366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   378,   379,   380,    -1,   382,   383,    -1,   385,
-     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
-     396,   397,    -1,   399,   400,   401,    -1,   403,    -1,   405,
-     406,   407,   408,   409,    -1,   411,   412,   413,    -1,    -1,
-     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,
-      -1,   427,   428,   429,   430,   431,    -1,   433,   434,    -1,
-     436,   437,   438,   439,   440,   441,    -1,   443,    -1,   445,
-     446,    -1,   448,   449,    -1,    -1,   452,   453,   454,   455,
-     456,   457,   458,   459,   460,   461,   462,    -1,   464,   465,
-      -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,
-     476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,
-      -1,   487,   488,   489,   490,   491,   492,    -1,    -1,    -1,
-      -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,
-      -1,    -1,   508,   509,   510,   511,   512,   513,   514,    -1,
-     516,   517,   518,   519,   520,   521,   522,   523,   524,   525,
-     526,   527,   528,   529,   530,    -1,   532,    -1,   534,   535,
-     536,   537,    -1,   539,   540,   541,    -1,   543,   544,   545,
-     546,    -1,    -1,    -1,    -1,   551,   552,   553,   554,    -1,
-     556,   557,   558,   559,   560,   561,   562,   563,   564,   565,
-     566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,
-     576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,   585,
-     586,   587,   588,   589,    -1,    -1,   592,   593,    -1,   595,
-     596,   597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,
-      -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,
-     616,    -1,    -1,    -1,    -1,   621,   622,    -1,    -1,    -1,
-      -1,   627,   628,    -1,    -1,   631,   632,    -1,    -1,   635,
-     636,     5,    -1,     7,     8,     9,    10,    11,    12,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      34,    35,    36,    37,    38,    39,    40,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    53,
-      54,    55,    56,    -1,    58,    59,    60,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,   100,   101,   102,    -1,
-      -1,   105,   106,   107,    -1,   109,   110,   111,    -1,   113,
-     114,   115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,
-     124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,   172,    -1,
-     174,   175,   176,   177,   178,   179,   180,    -1,   182,   183,
-     184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,   206,    -1,   208,   209,   210,    -1,   212,   213,
-     214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,   237,   238,   239,   240,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,   263,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-     304,   305,   306,   307,   308,   309,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,   326,   327,    -1,   329,   330,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,   341,   342,   343,
-      -1,    -1,   346,   347,   348,   349,   350,   351,   352,   353,
-     354,    -1,   356,   357,    -1,   359,   360,   361,   362,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,   382,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,   397,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,   439,   440,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,   452,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,   511,   512,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,   522,   523,
-     524,   525,   526,   527,   528,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,   556,   557,   558,   559,   560,   561,   562,   563,
-     564,   565,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,   585,   586,   587,   588,   589,    -1,    -1,   592,   593,
-      -1,   595,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,    -1,   616,    -1,    -1,    -1,    -1,   621,   622,    -1,
-      -1,    -1,    -1,   627,   628,    -1,    -1,   631,   632,    -1,
-      -1,   635,   636,     5,    -1,     7,     8,     9,    10,    11,
-      -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,
-      -1,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
-      -1,    -1,    34,    35,    36,    37,    38,    39,    40,    -1,
-      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
-      52,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
-      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
-      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
-      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
-      -1,    93,    94,    95,    96,    97,    -1,    99,   100,   101,
-     102,    -1,    -1,   105,   106,   107,    -1,   109,   110,   111,
-      -1,   113,   114,   115,   116,   117,   118,    -1,    -1,    -1,
-      -1,   123,   124,   125,    -1,    -1,   128,   129,    -1,   131,
-      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
-      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
-      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
-      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
-     172,    -1,   174,   175,   176,   177,   178,   179,   180,    -1,
-     182,   183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,
-     192,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
-     202,    -1,   204,    -1,   206,    -1,   208,   209,   210,    -1,
-     212,   213,   214,    -1,   216,   217,    -1,    -1,    -1,   221,
-     222,   223,   224,   225,    -1,   227,   228,   229,    -1,   231,
-      -1,   233,    -1,    -1,    -1,   237,   238,   239,   240,    -1,
-      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
-      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
-      -1,   263,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,
-     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
-     282,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
-     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
-     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
-      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
-      -1,    -1,   324,   325,   326,   327,    -1,   329,   330,   331,
-     332,   333,   334,   335,   336,   337,   338,   339,    -1,   341,
-     342,   343,    -1,    -1,   346,   347,   348,   349,   350,   351,
-     352,   353,   354,    -1,   356,   357,    -1,   359,   360,   361,
-      -1,   363,   364,   365,   366,    -1,   368,   369,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,
-     382,   383,    -1,   385,   386,   387,   388,   389,   390,   391,
-     392,   393,   394,   395,   396,   397,    -1,   399,   400,   401,
-      -1,   403,    -1,   405,   406,   407,   408,   409,    -1,   411,
-     412,   413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,
-     422,   423,   424,    -1,    -1,   427,   428,   429,   430,   431,
-      -1,   433,   434,    -1,   436,   437,   438,   439,   440,   441,
-      -1,   443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,
-     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
-     462,    -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,
-     472,    -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,
-     482,   483,   484,   485,    -1,   487,   488,   489,   490,   491,
-     492,    -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,
-     502,    -1,    -1,   505,    -1,    -1,   508,   509,   510,   511,
-     512,   513,   514,    -1,   516,   517,   518,   519,   520,   521,
-     522,   523,   524,   525,   526,   527,   528,   529,   530,    -1,
-     532,    -1,   534,   535,   536,   537,    -1,   539,   540,   541,
-      -1,   543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,
-     552,   553,   554,    -1,   556,   557,   558,   559,   560,   561,
-     562,   563,   564,   565,   566,   567,    -1,   569,   570,    -1,
-      -1,   573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,
-     582,    -1,    -1,   585,   586,   587,   588,   589,    -1,    -1,
-     592,   593,    -1,   595,   596,   597,   598,   599,   600,   601,
-      -1,    -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,
-     612,   613,    -1,    -1,   616,    -1,    -1,    -1,    -1,   621,
-     622,    -1,    -1,    -1,    -1,   627,   628,    -1,    -1,   631,
-     632,    -1,    -1,   635,   636,     5,    -1,     7,     8,     9,
-      10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,
-      -1,    21,    -1,    23,    24,    25,    26,    27,    28,    29,
-      -1,    31,    -1,    -1,    34,    35,    36,    37,    38,    39,
-      40,    -1,    42,    43,    44,    -1,    46,    -1,    48,    49,
-      -1,    -1,    52,    53,    54,    55,    56,    -1,    58,    59,
-      60,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
-      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
-      -1,    81,    82,    83,    84,    85,    86,    87,    88,    -1,
-      90,    91,    -1,    93,    94,    95,    96,    97,    -1,    99,
-     100,   101,   102,    -1,    -1,   105,   106,   107,    -1,   109,
-     110,   111,    -1,   113,   114,   115,   116,   117,   118,    -1,
-      -1,    -1,    -1,   123,   124,   125,    -1,    -1,   128,   129,
-      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
-     140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
-      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
-     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
-     170,   171,   172,    -1,   174,   175,   176,   177,   178,   179,
-     180,    -1,   182,   183,   184,   185,    -1,   187,    -1,    -1,
-      -1,   191,   192,   193,    -1,   195,    -1,   197,   198,   199,
-     200,   201,   202,    -1,   204,    -1,   206,    -1,   208,   209,
-     210,    -1,   212,   213,   214,    -1,   216,   217,    -1,    -1,
-      -1,   221,   222,   223,   224,   225,    -1,   227,   228,   229,
-      -1,   231,    -1,   233,    -1,    -1,    -1,   237,   238,   239,
-     240,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
-      -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,
-      -1,   261,    -1,   263,   264,   265,    -1,    -1,    -1,    -1,
-      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
-      -1,    -1,   282,    -1,    -1,    -1,    -1,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-      -1,   301,   302,   303,   304,   305,   306,   307,   308,   309,
-     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
-     320,   321,    -1,    -1,   324,   325,   326,   327,    -1,   329,
-     330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
-      -1,   341,   342,   343,    -1,    -1,   346,   347,   348,   349,
-     350,   351,   352,   353,   354,    -1,   356,   357,    -1,   359,
-     360,   361,    -1,   363,   364,   365,   366,    -1,   368,   369,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,
-     380,    -1,   382,   383,    -1,   385,   386,   387,   388,   389,
-     390,   391,   392,   393,   394,   395,   396,   397,    -1,   399,
-     400,   401,    -1,   403,    -1,   405,   406,   407,   408,   409,
-      -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,    -1,
-     420,   421,   422,   423,   424,    -1,    -1,   427,   428,   429,
-     430,   431,    -1,   433,   434,    -1,   436,   437,   438,   439,
-     440,   441,    -1,   443,    -1,   445,   446,    -1,   448,   449,
-      -1,    -1,   452,   453,   454,   455,   456,   457,   458,   459,
-     460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,   469,
-     470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,    -1,
-     480,    -1,   482,   483,   484,   485,    -1,   487,   488,   489,
-     490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,   499,
-     500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,   509,
-     510,   511,   512,   513,   514,    -1,   516,   517,   518,   519,
-     520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
-     530,    -1,   532,    -1,   534,   535,   536,   537,    -1,   539,
-     540,   541,    -1,   543,   544,   545,   546,    -1,    -1,    -1,
-      -1,    -1,   552,   553,   554,    -1,   556,   557,   558,   559,
-     560,   561,   562,   563,   564,   565,   566,   567,    -1,   569,
-     570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,    -1,
-     580,   581,   582,    -1,    -1,   585,   586,   587,   588,   589,
-      -1,    -1,   592,   593,    -1,   595,   596,   597,   598,   599,
-     600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,   609,
-      -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,    -1,
-      -1,   621,   622,    -1,    -1,    -1,    -1,   627,   628,    -1,
-      -1,   631,   632,    -1,    -1,   635,   636,     5,    -1,     7,
-       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
-      18,    -1,    -1,    21,    -1,    23,    24,    25,    26,    27,
-      28,    29,    -1,    31,    -1,    -1,    34,    35,    36,    37,
-      38,    39,    40,    -1,    42,    43,    44,    -1,    46,    -1,
-      48,    49,    -1,    -1,    52,    53,    54,    55,    56,    -1,
-      58,    59,    60,    61,    62,    -1,    64,    65,    66,    67,
-      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
-      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
-      88,    -1,    90,    91,    -1,    93,    94,    95,    96,    97,
-      -1,    99,   100,   101,   102,    -1,    -1,   105,   106,   107,
-      -1,   109,   110,   111,    -1,   113,   114,   115,   116,   117,
-     118,    -1,    -1,    -1,    -1,   123,   124,   125,    -1,    -1,
-     128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
-     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
-     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
-     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
-     168,   169,   170,   171,   172,    -1,   174,   175,   176,   177,
-     178,   179,   180,    -1,   182,   183,   184,   185,    -1,   187,
-      -1,    -1,    -1,   191,   192,   193,    -1,   195,    -1,   197,
-     198,   199,   200,   201,   202,    -1,   204,    -1,   206,    -1,
-     208,   209,   210,    -1,   212,   213,   214,    -1,   216,   217,
-      -1,    -1,    -1,   221,   222,   223,   224,   225,    -1,   227,
-     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,   237,
-     238,   239,   240,    -1,    -1,   243,    -1,   245,   246,    -1,
-     248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
-     258,    -1,    -1,   261,    -1,   263,   264,   265,    -1,    -1,
-      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
-     278,   279,    -1,    -1,   282,    -1,    -1,    -1,    -1,   287,
-     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
-     298,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
-     308,   309,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
-     318,   319,   320,   321,    -1,    -1,   324,   325,   326,   327,
-      -1,   329,   330,   331,   332,   333,   334,   335,   336,   337,
-     338,   339,    -1,   341,   342,   343,    -1,    -1,   346,   347,
-     348,   349,   350,   351,   352,   353,   354,    -1,   356,   357,
-      -1,   359,   360,   361,    -1,   363,   364,   365,   366,    -1,
-     368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     378,   379,   380,    -1,   382,   383,    -1,   385,   386,   387,
-     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
-      -1,   399,   400,   401,    -1,   403,    -1,   405,   406,   407,
-     408,   409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,
-      -1,    -1,   420,   421,   422,   423,   424,    -1,    -1,   427,
-     428,   429,   430,   431,    -1,   433,   434,    -1,   436,   437,
-     438,   439,   440,   441,    -1,   443,    -1,   445,   446,    -1,
-     448,   449,    -1,    -1,   452,   453,   454,   455,   456,   457,
-     458,   459,   460,   461,   462,    -1,   464,   465,    -1,    -1,
-      -1,   469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,
-      -1,    -1,   480,    -1,   482,   483,   484,   485,    -1,   487,
-     488,   489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,
-      -1,   499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,
-     508,   509,   510,   511,   512,   513,   514,    -1,   516,   517,
-     518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
-     528,   529,   530,    -1,   532,    -1,   534,   535,   536,   537,
-      -1,   539,   540,   541,    -1,   543,   544,   545,   546,    -1,
-      -1,    -1,    -1,    -1,   552,   553,   554,    -1,   556,   557,
-     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
-      -1,   569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,
-     578,    -1,   580,   581,   582,    -1,    -1,   585,   586,   587,
-     588,   589,    -1,    -1,   592,   593,    -1,   595,   596,   597,
-     598,   599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,
-     608,   609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,
-      -1,    -1,    -1,   621,   622,    -1,    -1,    -1,    -1,   627,
-     628,    -1,    -1,   631,   632,    -1,    -1,   635,   636,     5,
-      -1,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
-      -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,
-      26,    27,    28,    29,    -1,    31,    -1,    -1,    34,    35,
-      36,    37,    38,    39,    40,    -1,    42,    43,    44,    -1,
-      46,    -1,    48,    49,    -1,    -1,    52,    53,    54,    55,
-      56,    -1,    58,    59,    60,    61,    62,    -1,    64,    65,
-      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
-      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
-      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
-      96,    97,    -1,    99,   100,   101,   102,    -1,    -1,   105,
-     106,   107,    -1,   109,   110,   111,    -1,   113,   114,   115,
-     116,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
-      -1,    -1,   128,   129,    -1,   131,    -1,    -1,    -1,   135,
-      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
-      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
-     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
-     166,   167,   168,   169,   170,   171,   172,    -1,   174,   175,
-     176,   177,   178,   179,   180,    -1,   182,   183,   184,   185,
-      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
-      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
-     206,    -1,   208,   209,   210,    -1,   212,   213,   214,    -1,
-     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,   225,
-      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
-      -1,   237,   238,   239,   240,    -1,    -1,   243,    -1,   245,
-     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
-     256,   257,   258,    -1,    -1,   261,    -1,   263,   264,   265,
-      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
-     276,    -1,   278,   279,    -1,    -1,   282,    -1,    -1,    -1,
-      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,    -1,   301,   302,   303,   304,   305,
-     306,   307,   308,   309,   310,   311,    -1,    -1,    -1,    -1,
-     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
-     326,   327,    -1,   329,   330,   331,   332,   333,   334,   335,
-     336,   337,   338,   339,    -1,   341,   342,   343,    -1,    -1,
-     346,   347,   348,   349,   350,   351,   352,   353,   354,    -1,
-     356,   357,    -1,   359,   360,   361,    -1,   363,   364,   365,
-     366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   378,   379,   380,    -1,   382,   383,    -1,   385,
-     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
-     396,   397,    -1,   399,   400,   401,    -1,   403,    -1,   405,
-     406,   407,   408,   409,    -1,   411,   412,   413,    -1,    -1,
-     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,
-      -1,   427,   428,   429,   430,   431,    -1,   433,   434,    -1,
-     436,   437,   438,   439,   440,   441,    -1,   443,    -1,   445,
-     446,    -1,   448,   449,    -1,    -1,   452,   453,   454,   455,
-     456,   457,   458,   459,   460,   461,   462,    -1,   464,   465,
-      -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,
-     476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,
-      -1,   487,   488,   489,   490,   491,   492,    -1,    -1,    -1,
-      -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,
-      -1,    -1,   508,   509,   510,   511,   512,   513,   514,    -1,
-     516,   517,   518,   519,   520,   521,   522,   523,   524,   525,
-     526,   527,   528,   529,   530,    -1,   532,    -1,   534,   535,
-     536,   537,    -1,   539,   540,   541,    -1,   543,   544,   545,
-     546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,
-     556,   557,   558,   559,   560,   561,   562,   563,   564,   565,
-     566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,
-     576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,   585,
-     586,   587,   588,   589,    -1,    -1,   592,   593,    -1,   595,
-     596,   597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,
-      -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,
-     616,    -1,    -1,    -1,    -1,   621,   622,    -1,    -1,    -1,
-      -1,   627,   628,    -1,    -1,   631,   632,    -1,    -1,   635,
-     636,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      34,    35,    36,    37,    38,    39,    40,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    53,
-      54,    55,    56,    -1,    58,    59,    60,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,   100,   101,   102,    -1,
-      -1,   105,   106,   107,    -1,   109,   110,   111,    -1,   113,
-     114,   115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,
-     124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,   172,    -1,
-     174,   175,   176,   177,   178,   179,   180,    -1,   182,   183,
-     184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,   206,    -1,   208,   209,   210,    -1,   212,   213,
-     214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,   237,   238,   239,   240,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,   263,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-     304,   305,   306,   307,   308,   309,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,   326,   327,    -1,   329,   330,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,   341,   342,   343,
-      -1,    -1,   346,   347,   348,   349,   350,   351,   352,   353,
-     354,    -1,   356,   357,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,   382,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,   397,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,   439,   440,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,   452,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,   511,   512,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,   522,   523,
-     524,   525,   526,   527,   528,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,   556,   557,   558,   559,   560,   561,   562,   563,
-     564,   565,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,   585,   586,   587,   588,   589,    -1,    -1,   592,   593,
-      -1,   595,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,    -1,   616,    -1,    -1,    -1,    -1,   621,   622,    -1,
-      -1,    -1,    -1,   627,   628,    -1,    -1,   631,   632,    -1,
-      -1,   635,   636,     5,    -1,     7,     8,     9,    10,    11,
-      12,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,
-      -1,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
-      -1,    -1,    34,    35,    36,    37,    38,    39,    40,    -1,
-      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
-      52,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
-      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
-      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
-      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
-      -1,    93,    94,    95,    96,    97,    -1,    99,   100,   101,
-     102,    -1,    -1,   105,   106,   107,    -1,   109,   110,   111,
-      -1,   113,   114,   115,   116,   117,   118,    -1,    -1,    -1,
-      -1,   123,   124,   125,    -1,    -1,   128,   129,    -1,   131,
-      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
-      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
-      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
-      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
-     172,    -1,   174,   175,   176,   177,   178,   179,   180,    -1,
-     182,   183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,
-      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
-     202,    -1,   204,    -1,   206,    -1,   208,   209,   210,    -1,
-     212,   213,   214,    -1,   216,   217,    -1,    -1,    -1,   221,
-     222,   223,   224,   225,    -1,   227,   228,   229,    -1,   231,
-      -1,   233,    -1,    -1,    -1,   237,   238,   239,   240,    -1,
-      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
-      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
-      -1,   263,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,
-     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
-     282,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
-     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
-     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
-      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
-      -1,    -1,   324,   325,   326,   327,    -1,   329,   330,   331,
-     332,   333,   334,   335,   336,   337,   338,   339,    -1,   341,
-     342,   343,    -1,    -1,   346,   347,   348,   349,   350,    -1,
-     352,   353,   354,    -1,   356,   357,    -1,   359,   360,   361,
-      -1,   363,   364,   365,   366,    -1,   368,   369,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,
-     382,   383,    -1,   385,   386,   387,   388,   389,   390,   391,
-     392,   393,   394,   395,   396,   397,    -1,   399,   400,   401,
-      -1,   403,    -1,   405,   406,   407,   408,   409,    -1,   411,
-     412,   413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,
-     422,   423,   424,    -1,    -1,   427,   428,   429,   430,   431,
-      -1,   433,   434,    -1,   436,   437,   438,   439,   440,   441,
-      -1,   443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,
-     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
-     462,    -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,
-     472,    -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,
-     482,   483,   484,   485,    -1,   487,   488,   489,   490,   491,
-     492,    -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,
-     502,    -1,    -1,   505,    -1,    -1,   508,   509,   510,   511,
-     512,   513,   514,    -1,   516,   517,   518,   519,   520,   521,
-     522,   523,   524,   525,   526,   527,   528,   529,   530,    -1,
-     532,    -1,   534,   535,   536,   537,    -1,   539,   540,   541,
-      -1,   543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,
-     552,   553,   554,    -1,   556,   557,   558,   559,   560,   561,
-     562,   563,   564,   565,   566,   567,    -1,   569,   570,    -1,
-      -1,   573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,
-     582,    -1,    -1,   585,   586,   587,   588,   589,    -1,    -1,
-     592,   593,    -1,   595,   596,   597,   598,   599,   600,   601,
-      -1,    -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,
-     612,   613,    -1,    -1,   616,    -1,    -1,    -1,    -1,   621,
-     622,    -1,    -1,    -1,    -1,   627,   628,    -1,    -1,   631,
-     632,    -1,    -1,   635,   636,     5,    -1,     7,     8,     9,
-      10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,
-      -1,    21,    -1,    23,    24,    25,    26,    27,    28,    29,
-      -1,    31,    -1,    -1,    34,    35,    36,    37,    38,    39,
-      40,    -1,    42,    43,    44,    -1,    46,    -1,    48,    49,
-      -1,    -1,    52,    53,    54,    55,    56,    -1,    58,    59,
-      60,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
-      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
-      -1,    81,    82,    83,    84,    85,    86,    87,    88,    -1,
-      90,    91,    -1,    93,    94,    95,    96,    97,    -1,    99,
-     100,   101,   102,    -1,    -1,   105,   106,   107,    -1,   109,
-     110,   111,    -1,   113,   114,   115,   116,   117,   118,    -1,
-      -1,    -1,    -1,   123,   124,   125,    -1,    -1,   128,   129,
-      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
-     140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
-      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
-     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
-     170,   171,   172,    -1,   174,   175,   176,   177,   178,   179,
-     180,    -1,   182,   183,   184,   185,    -1,   187,    -1,    -1,
-      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
-     200,   201,   202,    -1,   204,    -1,   206,    -1,   208,   209,
-     210,    -1,   212,   213,   214,    -1,   216,   217,    -1,    -1,
-      -1,   221,   222,   223,   224,   225,    -1,   227,   228,   229,
-      -1,   231,    -1,   233,    -1,    -1,    -1,   237,   238,   239,
-     240,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
-      -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,
-      -1,   261,    -1,   263,   264,   265,    -1,    -1,    -1,    -1,
-      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
-      -1,    -1,   282,    -1,    -1,    -1,    -1,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-      -1,   301,   302,   303,   304,   305,   306,   307,   308,   309,
-     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
-     320,   321,    -1,    -1,   324,   325,   326,   327,    -1,   329,
-     330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
-      -1,   341,   342,   343,    -1,    -1,   346,   347,   348,   349,
-     350,   351,   352,   353,   354,    -1,   356,   357,    -1,   359,
-     360,   361,    -1,   363,   364,   365,   366,    -1,   368,   369,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,
-     380,    -1,   382,   383,    -1,   385,   386,   387,   388,   389,
-     390,   391,   392,   393,   394,   395,   396,   397,    -1,   399,
-     400,   401,    -1,   403,    -1,   405,   406,   407,   408,   409,
-      -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,    -1,
-     420,   421,   422,   423,   424,    -1,    -1,   427,   428,   429,
-     430,   431,    -1,   433,   434,    -1,   436,   437,   438,   439,
-     440,   441,    -1,   443,    -1,   445,   446,    -1,   448,   449,
-      -1,    -1,   452,   453,   454,   455,   456,   457,   458,   459,
-     460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,   469,
-     470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,    -1,
-     480,    -1,   482,   483,   484,   485,    -1,   487,   488,   489,
-     490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,   499,
-     500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,   509,
-     510,   511,   512,   513,   514,    -1,   516,   517,   518,   519,
-     520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
-     530,    -1,   532,    -1,   534,   535,   536,   537,    -1,   539,
-     540,   541,    -1,   543,   544,   545,   546,    -1,    -1,    -1,
-      -1,    -1,   552,   553,   554,    -1,   556,   557,   558,   559,
-     560,   561,   562,   563,   564,   565,   566,   567,    -1,   569,
-     570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,    -1,
-     580,   581,   582,    -1,    -1,   585,   586,   587,   588,   589,
-      -1,    -1,   592,   593,    -1,   595,   596,   597,   598,   599,
-     600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,   609,
-      -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,    -1,
-      -1,   621,   622,    -1,    -1,    -1,    -1,   627,   628,    -1,
-      -1,   631,   632,    -1,    -1,   635,   636,     5,    -1,     7,
-       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
-      18,    -1,    -1,    21,    -1,    23,    24,    25,    26,    27,
-      28,    29,    -1,    31,    -1,    -1,    34,    35,    36,    37,
-      38,    39,    40,    -1,    42,    43,    44,    -1,    46,    -1,
-      48,    49,    -1,    -1,    52,    53,    54,    55,    56,    -1,
-      58,    59,    60,    61,    62,    -1,    64,    65,    66,    67,
-      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
-      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
-      88,    -1,    90,    91,    -1,    93,    94,    95,    96,    97,
-      -1,    99,   100,   101,   102,    -1,    -1,   105,   106,   107,
-      -1,   109,   110,   111,    -1,   113,   114,   115,   116,   117,
-     118,    -1,    -1,    -1,    -1,   123,   124,   125,    -1,    -1,
-     128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
-     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
-     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
-     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
-     168,   169,   170,   171,   172,    -1,   174,   175,   176,   177,
-     178,   179,   180,    -1,   182,   183,   184,   185,    -1,   187,
-      -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,
-     198,   199,   200,   201,   202,    -1,   204,    -1,   206,    -1,
-     208,   209,   210,    -1,   212,   213,   214,    -1,   216,   217,
-      -1,    -1,    -1,   221,   222,   223,   224,   225,    -1,   227,
-     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,   237,
-     238,   239,   240,    -1,    -1,   243,    -1,   245,   246,    -1,
-     248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
-     258,    -1,    -1,   261,    -1,   263,   264,   265,    -1,    -1,
-      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
-     278,   279,    -1,    -1,   282,    -1,    -1,    -1,    -1,   287,
-     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
-     298,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
-     308,   309,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
-     318,   319,   320,   321,    -1,    -1,   324,   325,   326,   327,
-      -1,   329,   330,   331,   332,   333,   334,   335,   336,   337,
-     338,   339,    -1,   341,   342,   343,    -1,    -1,   346,   347,
-     348,   349,   350,   351,   352,   353,   354,    -1,   356,   357,
-      -1,   359,   360,   361,    -1,   363,   364,   365,   366,    -1,
-     368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     378,   379,   380,    -1,   382,   383,    -1,   385,   386,   387,
-     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
-      -1,   399,   400,   401,    -1,   403,    -1,   405,   406,   407,
-     408,   409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,
-      -1,    -1,   420,   421,   422,   423,   424,    -1,    -1,   427,
-     428,   429,   430,   431,    -1,   433,   434,    -1,   436,   437,
-     438,   439,   440,   441,    -1,   443,    -1,   445,   446,    -1,
-     448,   449,    -1,    -1,   452,   453,   454,   455,   456,   457,
-     458,   459,   460,   461,   462,    -1,   464,   465,    -1,    -1,
-      -1,   469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,
-      -1,    -1,   480,    -1,   482,   483,   484,   485,    -1,   487,
-     488,   489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,
-      -1,   499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,
-     508,   509,   510,   511,   512,   513,   514,    -1,   516,   517,
-     518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
-     528,   529,   530,    -1,   532,    -1,   534,   535,   536,   537,
-      -1,   539,   540,   541,    -1,   543,   544,   545,   546,    -1,
-      -1,    -1,    -1,    -1,   552,   553,   554,    -1,   556,   557,
-     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
-      -1,   569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,
-     578,    -1,   580,   581,   582,    -1,    -1,   585,   586,   587,
-     588,   589,    -1,    -1,   592,   593,    -1,   595,   596,   597,
-     598,   599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,
-     608,   609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,
-      -1,    -1,    -1,   621,   622,    -1,    -1,    -1,    -1,   627,
-     628,    -1,    -1,   631,   632,    -1,    -1,   635,   636,     5,
-      -1,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
-      -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,
-      26,    27,    28,    29,    -1,    31,    -1,    -1,    34,    35,
-      36,    37,    38,    39,    40,    -1,    42,    43,    44,    -1,
-      46,    -1,    48,    49,    -1,    -1,    52,    53,    54,    55,
-      56,    -1,    58,    59,    60,    61,    62,    -1,    64,    65,
-      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
-      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
-      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
-      96,    97,    -1,    99,   100,   101,   102,    -1,    -1,   105,
-     106,   107,    -1,   109,   110,   111,    -1,   113,   114,   115,
-     116,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
-      -1,    -1,   128,   129,    -1,   131,    -1,    -1,    -1,   135,
-      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
-      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
-     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
-     166,   167,   168,   169,   170,   171,   172,    -1,   174,   175,
-     176,   177,   178,   179,   180,    -1,   182,   183,   184,   185,
-      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
-      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
-     206,    -1,   208,   209,   210,    -1,   212,   213,   214,    -1,
-     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,   225,
-      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
-      -1,   237,   238,   239,   240,    -1,    -1,   243,    -1,   245,
-     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
-     256,   257,   258,    -1,    -1,   261,    -1,   263,   264,   265,
-      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
-     276,    -1,   278,   279,    -1,    -1,   282,    -1,    -1,    -1,
-      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,    -1,   301,   302,   303,   304,   305,
-     306,   307,   308,   309,   310,   311,    -1,    -1,    -1,    -1,
-     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
-     326,   327,    -1,   329,   330,   331,   332,   333,   334,   335,
-     336,   337,   338,   339,    -1,   341,   342,   343,    -1,    -1,
-     346,   347,   348,   349,   350,   351,   352,   353,   354,    -1,
-     356,   357,    -1,   359,   360,   361,    -1,   363,   364,   365,
-     366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   378,   379,   380,    -1,   382,   383,    -1,   385,
-     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
-     396,   397,    -1,   399,   400,   401,    -1,   403,    -1,   405,
-     406,   407,   408,   409,    -1,   411,   412,   413,    -1,    -1,
-     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,
-      -1,   427,   428,   429,   430,   431,    -1,   433,   434,    -1,
-     436,   437,   438,   439,   440,   441,    -1,   443,    -1,   445,
-     446,    -1,   448,   449,    -1,    -1,   452,   453,   454,   455,
-     456,   457,   458,   459,   460,   461,   462,    -1,   464,   465,
-      -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,
-     476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,
-      -1,   487,   488,   489,   490,   491,   492,    -1,    -1,    -1,
-      -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,
-      -1,    -1,   508,   509,   510,   511,   512,   513,   514,    -1,
-     516,   517,   518,   519,   520,   521,   522,   523,   524,   525,
-     526,   527,   528,   529,   530,    -1,   532,    -1,   534,   535,
-     536,   537,    -1,   539,   540,   541,    -1,   543,   544,   545,
-     546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,
-     556,   557,   558,   559,   560,   561,   562,   563,   564,   565,
-     566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,
-     576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,   585,
-     586,   587,   588,   589,    -1,    -1,   592,   593,    -1,   595,
-     596,   597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,
-      -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,
-     616,    -1,    -1,    -1,    -1,   621,   622,    -1,    -1,    -1,
-      -1,   627,   628,    -1,    -1,   631,   632,    -1,    -1,   635,
-     636,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      34,    35,    36,    37,    38,    39,    40,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    53,
-      54,    55,    56,    -1,    58,    59,    60,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,   100,   101,   102,    -1,
-      -1,   105,   106,   107,    -1,   109,   110,   111,    -1,   113,
-     114,   115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,
-     124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,   172,    -1,
-     174,   175,   176,   177,   178,   179,   180,    -1,   182,   183,
-     184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,   206,    -1,   208,   209,   210,    -1,   212,   213,
-     214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,   237,   238,   239,   240,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,   263,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-     304,   305,   306,   307,   308,   309,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,   326,   327,    -1,   329,   330,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,   341,   342,   343,
-      -1,    -1,   346,   347,   348,   349,   350,   351,   352,   353,
-     354,    -1,   356,   357,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,   382,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,   397,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,   439,   440,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,   452,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,   511,   512,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,   522,   523,
-     524,   525,   526,   527,   528,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,   556,   557,   558,   559,   560,   561,   562,   563,
-     564,   565,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,   585,   586,   587,   588,   589,    -1,    -1,   592,   593,
-      -1,   595,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,    -1,   616,    -1,    -1,    -1,    -1,   621,   622,    -1,
-      -1,    -1,    -1,   627,   628,    -1,    -1,   631,   632,    -1,
-      -1,   635,   636,     5,    -1,     7,     8,     9,    10,    11,
-      -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,
-      -1,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
-      -1,    -1,    34,    35,    36,    37,    38,    39,    40,    -1,
-      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
-      52,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
-      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
-      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
-      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
-      -1,    93,    94,    95,    96,    97,    -1,    99,   100,   101,
-     102,    -1,    -1,   105,   106,   107,    -1,   109,   110,   111,
-      -1,   113,   114,   115,   116,   117,   118,    -1,    -1,    -1,
-      -1,   123,   124,   125,    -1,    -1,   128,   129,    -1,   131,
-      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
-      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
-      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
-      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
-     172,    -1,   174,   175,   176,   177,   178,   179,   180,    -1,
-     182,   183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,
-      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
-     202,    -1,   204,    -1,   206,    -1,   208,   209,   210,    -1,
-     212,   213,   214,    -1,   216,   217,    -1,    -1,    -1,   221,
-     222,   223,   224,   225,    -1,   227,   228,   229,    -1,   231,
-      -1,   233,    -1,    -1,    -1,   237,   238,   239,   240,    -1,
-      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
-      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
-      -1,   263,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,
-     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
-     282,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
-     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
-     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
-     312,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
-      -1,    -1,   324,   325,   326,   327,    -1,   329,   330,   331,
-     332,   333,   334,   335,   336,   337,   338,   339,    -1,   341,
-     342,   343,    -1,    -1,   346,   347,   348,   349,   350,    -1,
-     352,   353,   354,    -1,   356,   357,    -1,   359,   360,   361,
-      -1,   363,   364,   365,   366,    -1,   368,   369,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,
-     382,   383,    -1,   385,   386,   387,   388,   389,   390,   391,
-     392,   393,   394,   395,   396,   397,    -1,   399,   400,   401,
-      -1,   403,    -1,   405,   406,   407,   408,   409,    -1,   411,
-     412,   413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,
-     422,   423,   424,    -1,    -1,   427,   428,   429,   430,   431,
-      -1,   433,   434,    -1,   436,   437,   438,   439,   440,   441,
-      -1,   443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,
-     452,   453,   454,   455,   456,   457,   458,   459,   460,   461,
-     462,    -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,
-     472,    -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,
-     482,   483,   484,   485,    -1,   487,   488,   489,   490,   491,
-     492,    -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,
-     502,    -1,    -1,   505,    -1,    -1,   508,   509,   510,   511,
-     512,   513,   514,    -1,   516,   517,   518,   519,   520,   521,
-     522,   523,   524,   525,   526,   527,   528,   529,   530,    -1,
-     532,    -1,   534,   535,   536,   537,    -1,   539,   540,   541,
-      -1,   543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,
-     552,   553,   554,    -1,   556,   557,   558,   559,   560,   561,
-     562,   563,   564,   565,   566,   567,    -1,   569,   570,    -1,
-      -1,   573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,
-     582,    -1,    -1,   585,   586,   587,   588,   589,    -1,    -1,
-     592,   593,    -1,   595,   596,   597,   598,   599,   600,   601,
-      -1,    -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,
-     612,   613,    -1,    -1,   616,    -1,    -1,    -1,    -1,   621,
-     622,    -1,    -1,    -1,    -1,   627,   628,    -1,    -1,   631,
-     632,    -1,    -1,   635,   636,     5,    -1,     7,     8,     9,
-      10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,
-      -1,    21,    -1,    23,    24,    25,    26,    27,    28,    29,
-      -1,    31,    -1,    -1,    34,    35,    36,    37,    38,    39,
-      40,    -1,    42,    43,    44,    -1,    46,    -1,    48,    49,
-      -1,    -1,    52,    53,    54,    55,    56,    -1,    58,    59,
-      60,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
-      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
-      -1,    81,    82,    83,    84,    85,    86,    87,    88,    -1,
-      90,    91,    -1,    93,    94,    95,    96,    97,    -1,    99,
-     100,   101,   102,    -1,    -1,   105,   106,   107,    -1,   109,
-     110,   111,    -1,   113,   114,   115,   116,   117,   118,    -1,
-      -1,    -1,    -1,   123,   124,   125,    -1,    -1,   128,   129,
-      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
-     140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
-      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
-     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
-     170,   171,   172,    -1,   174,   175,   176,   177,   178,   179,
-     180,    -1,   182,   183,   184,   185,    -1,   187,    -1,    -1,
-      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
-     200,   201,   202,    -1,   204,    -1,   206,    -1,   208,   209,
-     210,    -1,   212,   213,   214,    -1,   216,   217,    -1,    -1,
-      -1,   221,   222,   223,   224,   225,    -1,   227,   228,   229,
-      -1,   231,    -1,   233,    -1,    -1,    -1,   237,   238,   239,
-     240,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
-      -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,
-      -1,   261,    -1,   263,   264,   265,    -1,    -1,    -1,    -1,
-      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
-      -1,    -1,   282,    -1,    -1,    -1,    -1,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-      -1,   301,   302,   303,   304,   305,   306,   307,   308,   309,
-     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
-     320,   321,    -1,    -1,   324,   325,   326,   327,    -1,   329,
-     330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
-      -1,   341,   342,   343,    -1,    -1,   346,   347,   348,   349,
-     350,    -1,   352,   353,   354,    -1,   356,   357,    -1,   359,
-     360,   361,    -1,   363,   364,   365,   366,    -1,   368,   369,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,
-     380,    -1,   382,   383,    -1,   385,   386,   387,   388,   389,
-     390,   391,   392,   393,   394,   395,   396,   397,    -1,   399,
-     400,   401,    -1,   403,    -1,   405,   406,   407,   408,   409,
-      -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,    -1,
-     420,   421,   422,   423,   424,    -1,    -1,   427,   428,   429,
-     430,   431,    -1,   433,   434,    -1,   436,   437,   438,   439,
-     440,   441,    -1,   443,    -1,   445,   446,    -1,   448,   449,
-      -1,    -1,   452,   453,   454,   455,   456,   457,   458,   459,
-     460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,   469,
-     470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,    -1,
-     480,    -1,   482,   483,   484,   485,    -1,   487,   488,   489,
-     490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,   499,
-     500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,   509,
-     510,   511,   512,   513,   514,    -1,   516,   517,   518,   519,
-     520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
-     530,    -1,   532,    -1,   534,   535,   536,   537,    -1,   539,
-     540,   541,    -1,   543,   544,   545,   546,    -1,    -1,    -1,
-      -1,    -1,   552,   553,   554,    -1,   556,   557,   558,   559,
-     560,   561,   562,   563,   564,   565,   566,   567,    -1,   569,
-     570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,    -1,
-     580,   581,   582,    -1,    -1,   585,   586,   587,   588,   589,
-      -1,    -1,   592,   593,    -1,   595,   596,   597,   598,   599,
-     600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,   609,
-      -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,    -1,
-      -1,   621,   622,    -1,    -1,    -1,    -1,   627,   628,    -1,
-      -1,   631,   632,    -1,    -1,   635,   636,     5,    -1,     7,
-       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
-      18,    -1,    -1,    21,    -1,    23,    24,    25,    26,    27,
-      28,    29,    -1,    31,    -1,    -1,    34,    35,    36,    37,
-      38,    39,    40,    -1,    42,    43,    44,    -1,    46,    -1,
-      48,    49,    -1,    -1,    52,    53,    54,    55,    56,    -1,
-      58,    59,    60,    61,    62,    -1,    64,    65,    66,    67,
-      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
-      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
-      88,    -1,    90,    91,    -1,    93,    94,    95,    96,    97,
-      -1,    99,   100,   101,   102,    -1,    -1,   105,   106,   107,
-      -1,   109,   110,   111,    -1,   113,   114,   115,   116,   117,
-     118,    -1,    -1,    -1,    -1,   123,   124,   125,    -1,    -1,
-     128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
-     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
-     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
-     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
-     168,   169,   170,   171,   172,    -1,   174,   175,   176,   177,
-     178,   179,   180,    -1,   182,   183,   184,   185,    -1,   187,
-      -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,
-     198,   199,   200,   201,   202,    -1,   204,    -1,   206,    -1,
-     208,   209,   210,    -1,   212,   213,   214,    -1,   216,   217,
-      -1,    -1,    -1,   221,   222,   223,   224,   225,    -1,   227,
-     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,   237,
-     238,   239,   240,    -1,    -1,   243,    -1,   245,   246,    -1,
-     248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
-     258,    -1,    -1,   261,    -1,   263,   264,   265,    -1,    -1,
-      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
-     278,   279,    -1,    -1,   282,    -1,    -1,    -1,    -1,   287,
-     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
-     298,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
-     308,   309,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
-     318,   319,   320,   321,    -1,    -1,   324,   325,   326,   327,
-      -1,   329,   330,   331,   332,   333,   334,   335,   336,   337,
-     338,   339,    -1,   341,   342,   343,    -1,    -1,   346,   347,
-     348,   349,   350,    -1,   352,   353,   354,    -1,   356,   357,
-      -1,   359,   360,   361,    -1,   363,   364,   365,   366,    -1,
-     368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     378,   379,   380,    -1,   382,   383,    -1,   385,   386,   387,
-     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
-      -1,   399,   400,   401,    -1,   403,    -1,   405,   406,   407,
-     408,   409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,
-      -1,    -1,   420,   421,   422,   423,   424,    -1,    -1,   427,
-     428,   429,   430,   431,    -1,   433,   434,    -1,   436,   437,
-     438,   439,   440,   441,    -1,   443,    -1,   445,   446,    -1,
-     448,   449,    -1,    -1,   452,   453,   454,   455,   456,   457,
-     458,   459,   460,   461,   462,    -1,   464,   465,    -1,    -1,
-      -1,   469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,
-      -1,    -1,   480,    -1,   482,   483,   484,   485,    -1,   487,
-     488,   489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,
-      -1,   499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,
-     508,   509,   510,   511,   512,   513,   514,    -1,   516,   517,
-     518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
-     528,   529,   530,    -1,   532,    -1,   534,   535,   536,   537,
-      -1,   539,   540,   541,    -1,   543,   544,   545,   546,    -1,
-      -1,    -1,    -1,    -1,   552,   553,   554,    -1,   556,   557,
-     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
-      -1,   569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,
-     578,    -1,   580,   581,   582,    -1,    -1,   585,   586,   587,
-     588,   589,    -1,    -1,   592,   593,    -1,   595,   596,   597,
-     598,   599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,
-     608,   609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,
-      -1,    -1,    -1,   621,   622,    -1,    -1,    -1,    -1,   627,
-     628,    -1,    -1,   631,   632,    -1,    -1,   635,   636,     5,
-      -1,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
-      -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,
-      26,    27,    28,    29,    -1,    31,    -1,    -1,    34,    35,
-      36,    37,    38,    39,    40,    -1,    42,    43,    44,    -1,
-      46,    -1,    48,    49,    -1,    -1,    52,    53,    54,    55,
-      56,    -1,    58,    59,    60,    61,    62,    -1,    64,    65,
-      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
-      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
-      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
-      96,    97,    -1,    99,   100,   101,   102,    -1,    -1,   105,
-     106,   107,    -1,   109,   110,   111,    -1,   113,   114,   115,
-     116,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
-      -1,    -1,   128,   129,    -1,   131,    -1,    -1,    -1,   135,
-      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
-      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
-     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
-     166,   167,   168,   169,   170,   171,   172,    -1,   174,   175,
-     176,   177,   178,   179,   180,    -1,   182,   183,   184,   185,
-      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
-      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
-     206,    -1,   208,   209,   210,    -1,   212,   213,   214,    -1,
-     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,   225,
-      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
-      -1,   237,   238,   239,   240,    -1,    -1,   243,    -1,   245,
-     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
-     256,   257,   258,    -1,    -1,   261,    -1,   263,   264,   265,
-      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
-     276,    -1,   278,   279,    -1,    -1,   282,    -1,    -1,    -1,
-      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,    -1,   301,   302,   303,   304,   305,
-     306,   307,   308,   309,   310,   311,    -1,    -1,    -1,    -1,
-     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
-     326,   327,    -1,   329,   330,   331,   332,   333,   334,   335,
-     336,   337,   338,   339,    -1,   341,   342,   343,    -1,    -1,
-     346,   347,   348,   349,   350,    -1,   352,   353,   354,    -1,
-     356,   357,    -1,   359,   360,   361,    -1,   363,   364,   365,
-     366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   378,   379,   380,    -1,   382,   383,    -1,   385,
-     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
-     396,   397,    -1,   399,   400,   401,    -1,   403,    -1,   405,
-     406,   407,   408,   409,    -1,   411,   412,   413,    -1,    -1,
-     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,
-      -1,   427,   428,   429,   430,   431,    -1,   433,   434,    -1,
-     436,   437,   438,   439,   440,   441,    -1,   443,    -1,   445,
-     446,    -1,   448,   449,    -1,    -1,   452,   453,   454,   455,
-     456,   457,   458,   459,   460,   461,   462,    -1,   464,   465,
-      -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,
-     476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,
-      -1,   487,   488,   489,   490,   491,   492,    -1,    -1,    -1,
-      -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,
-      -1,    -1,   508,   509,   510,   511,   512,   513,   514,    -1,
-     516,   517,   518,   519,   520,   521,   522,   523,   524,   525,
-     526,   527,   528,   529,   530,    -1,   532,    -1,   534,   535,
-     536,   537,    -1,   539,   540,   541,    -1,   543,   544,   545,
-     546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,
-     556,   557,   558,   559,   560,   561,   562,   563,   564,   565,
-     566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,
-     576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,   585,
-     586,   587,   588,   589,    -1,    -1,   592,   593,    -1,   595,
-     596,   597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,
-      -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,
-     616,    -1,    -1,    -1,    -1,   621,   622,    -1,    -1,    -1,
-      -1,   627,   628,    -1,    -1,   631,   632,    -1,    -1,   635,
-     636,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    36,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,   125,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,   178,   179,   180,    -1,   182,   183,
-     184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,   213,
-     214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,   341,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,   356,   357,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,   557,   558,   559,   560,   561,   562,   563,
-     564,   565,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,    -1,   616,    -1,    -1,    -1,    -1,     5,    -1,     7,
-       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
-      18,   635,   636,    21,    -1,    23,    24,    25,    26,    27,
-      28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
-      -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,
-      48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,
-      58,    59,    -1,    61,    62,    -1,    64,    65,    66,    67,
-      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
-      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
-      88,    -1,    90,    91,    92,    93,    94,    95,    96,    97,
-      -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,
-      -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,
-     118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,
-      -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
-     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
-     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
-     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
-     168,   169,   170,   171,    -1,    -1,   174,   175,   176,    -1,
-      -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,   187,
-      -1,    -1,    -1,   191,    -1,   193,   194,   195,    -1,   197,
-     198,   199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,
-     208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
-      -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,
-     228,   229,   230,   231,    -1,   233,    -1,    -1,    -1,    -1,
-     238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,
-     248,   249,    -1,    -1,    -1,   253,   254,    -1,   256,   257,
-     258,    -1,    -1,   261,    -1,    -1,   264,   265,    -1,   267,
-      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
-     278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,
-     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
-     298,   299,    -1,   301,   302,   303,    -1,   305,   306,   307,
-     308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
-     318,   319,   320,   321,    -1,    -1,   324,   325,    -1,   327,
-      -1,   329,    -1,   331,   332,   333,   334,   335,   336,   337,
-     338,   339,    -1,    -1,   342,   343,    -1,    -1,   346,   347,
-     348,   349,    -1,    -1,    -1,   353,   354,    -1,    -1,    -1,
-      -1,   359,   360,   361,    -1,   363,   364,   365,   366,    -1,
-     368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     378,   379,   380,    -1,    -1,   383,    -1,   385,   386,   387,
-     388,   389,   390,   391,   392,   393,   394,   395,   396,    -1,
-      -1,   399,   400,   401,    -1,   403,    -1,   405,   406,   407,
-     408,   409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,
-      -1,    -1,   420,   421,   422,   423,   424,    -1,    -1,   427,
-     428,   429,   430,   431,    -1,   433,   434,    -1,   436,   437,
-     438,    -1,    -1,   441,    -1,   443,    -1,   445,   446,    -1,
-     448,   449,    -1,    -1,    -1,   453,   454,   455,   456,   457,
-     458,   459,   460,   461,   462,    -1,   464,   465,   466,    -1,
-      -1,   469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,
-      -1,    -1,   480,    -1,   482,   483,   484,   485,    -1,   487,
-     488,   489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
-      -1,   499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,
-     508,   509,   510,    -1,    -1,   513,   514,    -1,   516,   517,
-     518,   519,   520,   521,    -1,    -1,   524,   525,   526,   527,
-      -1,   529,   530,    -1,   532,    -1,   534,   535,   536,   537,
-      -1,    -1,   540,   541,    -1,   543,   544,   545,   546,    -1,
-      -1,    -1,    -1,    -1,   552,   553,   554,    -1,    -1,    -1,
-     558,   559,   560,   561,    -1,   563,   564,    -1,   566,   567,
-      -1,   569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,
-     578,    -1,   580,   581,   582,    -1,    -1,    -1,    -1,    -1,
-      -1,   589,    -1,    -1,   592,    -1,    -1,    -1,   596,   597,
-     598,   599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,
-     608,   609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,
-      -1,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,   636,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    92,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-     194,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,   230,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-     254,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,   493,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,    -1,   616,    -1,    -1,     5,    -1,     7,     8,     9,
-      10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,
-      -1,    21,   636,    23,    24,    25,    26,    27,    28,    29,
-      -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,
-      -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,    49,
-      -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,    59,
-      -1,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
-      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
-      -1,    81,    82,    83,    84,    85,    86,    87,    88,    -1,
-      90,    91,    -1,    93,    94,    95,    96,    97,    -1,    99,
-      -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,
-      -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,
-      -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,   129,
-      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
-     140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
-      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
-     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
-     170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,   179,
-     180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,    -1,
-      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
-     200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,   209,
-     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
-      -1,   221,   222,   223,   224,    -1,    -1,   227,   228,   229,
-      -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,   239,
-      -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
-      -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,
-      -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,    -1,
-      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-      -1,   301,   302,   303,    -1,   305,   306,   307,   308,    -1,
-     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
-     320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,
-      -1,   331,   332,   333,   334,   335,   336,   337,   338,   339,
-      -1,    -1,   342,   343,    -1,    -1,   346,   347,   348,   349,
-      -1,    -1,    -1,   353,   354,    -1,    -1,    -1,    -1,   359,
-     360,   361,    -1,   363,   364,   365,   366,    -1,   368,   369,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,
-     380,    -1,    -1,   383,    -1,   385,   386,   387,   388,   389,
-     390,   391,   392,   393,   394,   395,   396,    -1,    -1,   399,
-     400,   401,    -1,   403,    -1,   405,   406,   407,   408,   409,
-      -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,    -1,
-     420,   421,   422,   423,   424,    -1,    -1,   427,   428,   429,
-     430,   431,    -1,   433,   434,    -1,   436,   437,   438,    -1,
-      -1,   441,    -1,   443,    -1,   445,   446,    -1,   448,   449,
-      -1,    -1,    -1,   453,   454,   455,   456,   457,   458,   459,
-     460,   461,   462,    -1,   464,   465,   466,    -1,    -1,   469,
-     470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,    -1,
-     480,    -1,   482,   483,   484,   485,    -1,   487,   488,   489,
-     490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,   499,
-     500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,   509,
-     510,    -1,    -1,   513,   514,    -1,   516,   517,   518,   519,
-     520,   521,    -1,    -1,   524,   525,   526,   527,    -1,   529,
-     530,    -1,   532,    -1,   534,   535,   536,   537,    -1,    -1,
-     540,   541,    -1,   543,   544,   545,   546,    -1,    -1,    -1,
-      -1,    -1,   552,   553,   554,    -1,    -1,    -1,   558,   559,
-     560,   561,    -1,   563,   564,    -1,   566,   567,    -1,   569,
-     570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,    -1,
-     580,   581,   582,    -1,    -1,    -1,    -1,    -1,    -1,   589,
-      -1,    -1,   592,    -1,    -1,    -1,   596,   597,   598,   599,
-     600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,   609,
-      -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,     5,
-      -1,     7,     8,     9,    10,    11,    -1,    -1,    14,   629,
-      -1,    -1,    18,    -1,    -1,    21,   636,    23,    24,    25,
-      26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
-      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,
-      46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,
-      56,    -1,    58,    59,    -1,    61,    62,    -1,    64,    65,
-      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
-      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
-      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
-      96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
-      -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,
-      -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,
-      -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,
-      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
-      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
-     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
-     166,   167,   168,   169,   170,   171,    -1,    -1,   174,   175,
-     176,    -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,
-      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
-      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
-      -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,
-     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,
-      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
-      -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,
-     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
-     256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,
-      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
-     276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,    -1,   301,   302,   303,    -1,   305,
-     306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,
-     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
-      -1,   327,    -1,   329,    -1,   331,   332,   333,   334,   335,
-     336,   337,   338,   339,    -1,    -1,   342,   343,    -1,    -1,
-     346,   347,   348,   349,    -1,    -1,    -1,   353,   354,    -1,
-      -1,    -1,    -1,   359,   360,   361,    -1,   363,   364,   365,
-     366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   378,   379,   380,    -1,    -1,   383,    -1,   385,
-     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
-     396,    -1,    -1,   399,   400,   401,    -1,   403,    -1,   405,
-     406,   407,   408,   409,    -1,   411,   412,   413,    -1,    -1,
-     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,
-      -1,   427,   428,   429,   430,   431,    -1,   433,   434,    -1,
-     436,   437,   438,    -1,    -1,   441,    -1,   443,    -1,   445,
-     446,    -1,   448,   449,    -1,    -1,    -1,   453,   454,   455,
-     456,   457,   458,   459,   460,   461,   462,    -1,   464,   465,
-      -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,
-     476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,
-      -1,   487,   488,   489,   490,   491,   492,    -1,    -1,    -1,
-      -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,
-      -1,    -1,   508,   509,   510,    -1,    -1,   513,   514,    -1,
-     516,   517,   518,   519,   520,   521,    -1,    -1,   524,   525,
-     526,   527,    -1,   529,   530,    -1,   532,    -1,   534,   535,
-     536,   537,    -1,    -1,   540,   541,    -1,   543,   544,   545,
-     546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,
-      -1,    -1,   558,   559,   560,   561,    -1,   563,   564,    -1,
-     566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,
-     576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,    -1,
-      -1,    -1,    -1,   589,    -1,    -1,   592,    -1,    -1,    -1,
-     596,   597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,
-      -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,
-     616,    -1,    -1,    -1,    -1,     5,    -1,     7,     8,     9,
-      10,    11,    -1,   629,    14,    -1,    -1,    -1,    18,   635,
-     636,    21,    -1,    23,    24,    25,    26,    27,    28,    29,
-      -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,
-      -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,    49,
-      -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,    59,
-      -1,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
-      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
-      -1,    81,    82,    83,    84,    85,    86,    87,    88,    -1,
-      90,    91,    -1,    93,    94,    95,    96,    97,    -1,    99,
-      -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,
-      -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,
-      -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,   129,
-      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
-     140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
-      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
-     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
-     170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,   179,
-     180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,    -1,
-      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
-     200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,   209,
-     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
-      -1,   221,   222,   223,   224,    -1,    -1,   227,   228,   229,
-      -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,   239,
-      -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
-      -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,
-      -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,    -1,
-      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-      -1,   301,   302,   303,    -1,   305,   306,   307,   308,    -1,
-     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
-     320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,
-      -1,   331,   332,   333,   334,   335,   336,   337,   338,   339,
-      -1,    -1,   342,   343,    -1,    -1,   346,   347,   348,   349,
-      -1,    -1,    -1,   353,   354,    -1,    -1,    -1,    -1,   359,
-     360,   361,    -1,   363,   364,   365,   366,    -1,   368,   369,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,
-     380,    -1,    -1,   383,    -1,   385,   386,   387,   388,   389,
-     390,   391,   392,   393,   394,   395,   396,    -1,    -1,   399,
-     400,   401,    -1,   403,    -1,   405,   406,   407,   408,   409,
-      -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,    -1,
-     420,   421,   422,   423,   424,    -1,    -1,   427,   428,   429,
-     430,   431,    -1,   433,   434,    -1,   436,   437,   438,    -1,
-      -1,   441,    -1,   443,    -1,   445,   446,    -1,   448,   449,
-      -1,    -1,    -1,   453,   454,   455,   456,   457,   458,   459,
-     460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,   469,
-     470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,    -1,
-     480,    -1,   482,   483,   484,   485,    -1,   487,   488,   489,
-     490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,   499,
-     500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,   509,
-     510,    -1,    -1,   513,   514,    -1,   516,   517,   518,   519,
-     520,   521,    -1,    -1,   524,   525,   526,   527,    -1,   529,
-     530,    -1,   532,    -1,   534,   535,   536,   537,    -1,    -1,
-     540,   541,    -1,   543,   544,   545,   546,    -1,    -1,    -1,
-      -1,    -1,   552,   553,   554,    -1,    -1,    -1,   558,   559,
-     560,   561,    -1,   563,   564,    -1,   566,   567,    -1,   569,
-     570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,    -1,
-     580,   581,   582,    -1,    -1,    -1,    -1,    -1,    -1,   589,
-      -1,    -1,   592,    -1,    -1,    -1,   596,   597,   598,   599,
-     600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,   609,
-      -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,    -1,
-      -1,     5,    -1,     7,     8,     9,    10,    11,   628,    -1,
-      14,    -1,    -1,    -1,    18,    -1,   636,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,   241,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,    -1,   616,    -1,    -1,     5,    -1,     7,     8,     9,
-      10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,
-      -1,    21,   636,    23,    24,    25,    26,    27,    28,    29,
-      -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,
-      -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,    49,
-      -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,    59,
-      -1,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
-      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
-      -1,    81,    82,    83,    84,    85,    86,    87,    88,    -1,
-      90,    91,    -1,    93,    94,    95,    96,    97,    -1,    99,
-      -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,
-      -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,
-      -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,   129,
-      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
-     140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
-      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
-     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
-     170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,   179,
-     180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,    -1,
-      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
-     200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,   209,
-     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
-      -1,   221,   222,   223,   224,    -1,    -1,   227,   228,   229,
-      -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,   239,
-      -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
-      -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,
-      -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,    -1,
-      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,   289,
-     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
-      -1,   301,   302,   303,    -1,   305,   306,   307,   308,    -1,
-     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
-     320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,
-      -1,   331,   332,   333,   334,   335,   336,   337,   338,   339,
-      -1,    -1,   342,   343,    -1,    -1,   346,   347,   348,   349,
-      -1,    -1,    -1,   353,   354,    -1,    -1,    -1,    -1,   359,
-     360,   361,    -1,   363,   364,   365,   366,    -1,   368,   369,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,
-     380,    -1,    -1,   383,    -1,   385,   386,   387,   388,   389,
-     390,   391,   392,   393,   394,   395,   396,    -1,    -1,   399,
-     400,   401,    -1,   403,    -1,   405,   406,   407,   408,   409,
-      -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,    -1,
-     420,   421,   422,   423,   424,    -1,    -1,   427,   428,   429,
-     430,   431,    -1,   433,   434,    -1,   436,   437,   438,    -1,
-      -1,   441,    -1,   443,    -1,   445,   446,    -1,   448,   449,
-      -1,    -1,    -1,   453,   454,   455,   456,   457,   458,   459,
-     460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,   469,
-     470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,    -1,
-     480,    -1,   482,   483,   484,   485,    -1,   487,   488,   489,
-     490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,   499,
-     500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,   509,
-     510,    -1,    -1,   513,   514,    -1,   516,   517,   518,   519,
-     520,   521,    -1,    -1,   524,   525,   526,   527,    -1,   529,
-     530,    -1,   532,    -1,   534,   535,   536,   537,    -1,    -1,
-     540,   541,    -1,   543,   544,   545,   546,    -1,    -1,    -1,
-      -1,    -1,   552,   553,   554,    -1,    -1,    -1,   558,   559,
-     560,   561,    -1,   563,   564,    -1,   566,   567,    -1,   569,
-     570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,    -1,
-     580,   581,   582,    -1,    -1,    -1,    -1,    -1,    -1,   589,
-      -1,    -1,   592,    -1,    -1,    -1,   596,   597,   598,   599,
-     600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,   609,
-      -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,    -1,
-      -1,    -1,     5,   623,     7,     8,     9,    10,    11,    -1,
-      -1,    14,    -1,    -1,    -1,    18,   636,    -1,    21,    -1,
-      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
-      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
-      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
-      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
-      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
-      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
-      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
-      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
-      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
-     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
-     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
-      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
-      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
-     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
-     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
-      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
-     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
-     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
-      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
-      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
-     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
-     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
-     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
-     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
-      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
-      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
-     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
-     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
-      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
-      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
-     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
-     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
-     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
-     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
-     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
-     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
-     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
-     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
-     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
-     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
-     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
-     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
-      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
-      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
-     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
-      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
-      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
-     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
-      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
-      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
-     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
-     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
-     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
-     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
-      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
-      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
-      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
-     613,    -1,    -1,   616,    -1,    -1,    -1,    -1,     5,    -1,
-       7,     8,     9,    10,    11,   628,    -1,    14,    -1,    -1,
-      -1,    18,    -1,   636,    21,    -1,    23,    24,    25,    26,
-      27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,
-      -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,
-      -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,
-      -1,    58,    59,    -1,    61,    62,    -1,    64,    65,    66,
-      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
-      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
-      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    96,
-      97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,
-      -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,
-      -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,
-      -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
-     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
-     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
-      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
-     167,   168,   169,   170,   171,    -1,    -1,   174,   175,   176,
-      -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,
-     187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,
-     197,   198,   199,   200,   201,   202,    -1,   204,    -1,    -1,
-      -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,
-     217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,
-     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
-      -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,
-      -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,
-     257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,    -1,
-      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
-      -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,    -1,   301,   302,   303,    -1,   305,   306,
-     307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,
-     317,   318,   319,   320,   321,    -1,    -1,   324,   325,    -1,
-     327,    -1,   329,    -1,   331,   332,   333,   334,   335,   336,
-     337,   338,   339,    -1,    -1,   342,   343,    -1,    -1,   346,
-     347,   348,   349,    -1,    -1,    -1,   353,   354,    -1,    -1,
-      -1,    -1,   359,   360,   361,    -1,   363,   364,   365,   366,
-      -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   378,   379,   380,    -1,    -1,   383,    -1,   385,   386,
-     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
-      -1,    -1,   399,   400,   401,    -1,   403,    -1,   405,   406,
-     407,   408,   409,    -1,   411,   412,   413,    -1,    -1,   416,
-      -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,    -1,
-     427,   428,   429,   430,   431,    -1,   433,   434,    -1,   436,
-     437,   438,    -1,    -1,   441,    -1,   443,    -1,   445,   446,
-      -1,   448,   449,    -1,    -1,    -1,   453,   454,   455,   456,
-     457,   458,   459,   460,   461,   462,    -1,   464,   465,    -1,
-      -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,   476,
-      -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,    -1,
-     487,   488,   489,   490,   491,   492,    -1,    -1,    -1,    -1,
-      -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,    -1,
-      -1,   508,   509,   510,    -1,    -1,   513,   514,    -1,   516,
-     517,   518,   519,   520,   521,    -1,    -1,   524,   525,   526,
-     527,    -1,   529,   530,    -1,   532,    -1,   534,   535,   536,
-     537,    -1,    -1,   540,   541,    -1,   543,   544,   545,   546,
-      -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,    -1,
-      -1,   558,   559,   560,   561,    -1,   563,   564,    -1,   566,
-     567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,   576,
-      -1,   578,    -1,   580,   581,   582,    -1,    -1,    -1,    -1,
-      -1,    -1,   589,    -1,    -1,   592,    -1,    -1,    -1,   596,
-     597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,    -1,
-      -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,   616,
-      -1,    -1,    -1,    -1,     5,    -1,     7,     8,     9,    10,
-      11,    -1,    -1,    14,    -1,    -1,    -1,    18,   635,   636,
-      21,    -1,    23,    24,    25,    26,    27,    28,    29,    -1,
-      31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,
-      -1,    42,    43,    44,    -1,    46,    -1,    48,    49,    -1,
-      -1,    52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,
-      61,    62,    -1,    64,    65,    66,    67,    68,    69,    70,
-      -1,    72,    73,    74,    75,    76,    77,    78,    79,    -1,
-      81,    82,    83,    84,    85,    86,    87,    88,    -1,    90,
-      91,    -1,    93,    94,    95,    96,    97,    -1,    99,    -1,
-      -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,
-      -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,
-      -1,    -1,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,
-     131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
-      -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,
-      -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,   160,
-      -1,    -1,   163,   164,    -1,   166,   167,   168,   169,   170,
-     171,    -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,
-      -1,   182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,
-     191,    -1,   193,    -1,   195,    -1,   197,   198,   199,   200,
-     201,   202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,
-      -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,
-     221,   222,   223,   224,    -1,    -1,   227,   228,   229,    -1,
-     231,    -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,
-      -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,
-      -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,
-     261,    -1,    -1,   264,   265,    -1,    -1,    -1,    -1,    -1,
-     271,   272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   287,   288,   289,   290,
-     291,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
-     301,   302,   303,    -1,   305,   306,   307,   308,    -1,   310,
-     311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,
-     321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,
-     331,   332,   333,   334,   335,   336,   337,   338,   339,    -1,
-      -1,   342,   343,    -1,    -1,   346,   347,   348,   349,    -1,
-      -1,    -1,   353,   354,    -1,    -1,    -1,    -1,   359,   360,
-     361,    -1,   363,   364,   365,   366,    -1,   368,   369,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,
-      -1,    -1,   383,    -1,   385,   386,   387,   388,   389,   390,
-     391,   392,   393,   394,   395,   396,    -1,    -1,   399,   400,
-     401,    -1,   403,    -1,   405,   406,   407,   408,   409,    -1,
-     411,   412,   413,    -1,    -1,   416,    -1,    -1,    -1,   420,
-     421,   422,   423,   424,    -1,    -1,   427,   428,   429,   430,
-     431,    -1,   433,   434,    -1,   436,   437,   438,    -1,    -1,
-     441,    -1,   443,    -1,   445,   446,    -1,   448,   449,    -1,
-      -1,    -1,   453,   454,   455,   456,   457,   458,   459,   460,
-     461,   462,    -1,   464,   465,    -1,    -1,    -1,   469,   470,
-     471,   472,    -1,    -1,    -1,   476,    -1,    -1,    -1,   480,
-      -1,   482,   483,   484,   485,    -1,   487,   488,   489,   490,
-     491,   492,    -1,    -1,    -1,    -1,    -1,    -1,   499,   500,
-      -1,   502,    -1,    -1,   505,    -1,    -1,   508,   509,   510,
-      -1,    -1,   513,   514,    -1,   516,   517,   518,   519,   520,
-     521,    -1,    -1,   524,   525,   526,   527,    -1,   529,   530,
-      -1,   532,    -1,   534,   535,   536,   537,    -1,    -1,   540,
-     541,    -1,   543,   544,   545,   546,    -1,    -1,    -1,    -1,
-      -1,   552,   553,   554,    -1,    -1,    -1,   558,   559,   560,
-     561,    -1,   563,   564,    -1,   566,   567,    -1,   569,   570,
-      -1,    -1,   573,    -1,    -1,   576,    -1,   578,    -1,   580,
-     581,   582,    -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,
-      -1,   592,    -1,    -1,    -1,   596,   597,   598,   599,   600,
-     601,    -1,    -1,    -1,    -1,    -1,    -1,   608,   609,    -1,
-     611,   612,   613,    -1,    -1,   616,    -1,    -1,     5,    -1,
-       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
-      -1,    18,    -1,    -1,    21,   636,    23,    24,    25,    26,
-      27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,
-      -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,
-      -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,
-      -1,    58,    59,    -1,    61,    62,    -1,    64,    65,    66,
-      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
-      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
-      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    96,
-      97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,
-      -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,
-      -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,
-      -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
-     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
-     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
-      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
-     167,   168,   169,   170,   171,    -1,    -1,   174,   175,   176,
-      -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,
-     187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,
-     197,   198,   199,   200,   201,   202,    -1,   204,    -1,    -1,
-      -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,
-     217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,
-     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
-      -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,
-      -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,
-     257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,    -1,
-      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
-      -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
-     297,   298,   299,    -1,   301,   302,   303,    -1,   305,   306,
-     307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,
-     317,   318,   319,   320,   321,    -1,    -1,   324,   325,    -1,
-     327,    -1,   329,    -1,   331,   332,   333,   334,   335,   336,
-     337,   338,   339,    -1,    -1,   342,   343,    -1,    -1,   346,
-     347,   348,   349,    -1,    -1,    -1,   353,   354,    -1,    -1,
-      -1,    -1,   359,   360,   361,    -1,   363,   364,   365,   366,
-      -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   378,   379,   380,    -1,    -1,   383,    -1,   385,   386,
-     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
-      -1,    -1,   399,   400,   401,    -1,   403,    -1,   405,   406,
-     407,   408,   409,    -1,   411,   412,   413,    -1,    -1,   416,
-      -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,    -1,
-     427,   428,   429,   430,   431,    -1,   433,   434,    -1,   436,
-     437,   438,    -1,    -1,   441,    -1,   443,    -1,   445,   446,
-      -1,   448,   449,    -1,    -1,    -1,   453,   454,   455,   456,
-     457,   458,   459,   460,   461,   462,    -1,   464,   465,    -1,
-      -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,   476,
-      -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,    -1,
-     487,   488,   489,   490,   491,   492,    -1,    -1,    -1,    -1,
-      -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,    -1,
-      -1,   508,   509,   510,    -1,    -1,   513,   514,    -1,   516,
-     517,   518,   519,   520,   521,    -1,    -1,   524,   525,   526,
-     527,    -1,   529,   530,    -1,   532,    -1,   534,   535,   536,
-     537,    -1,    -1,   540,   541,    -1,   543,   544,   545,   546,
-      -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,    -1,
-      -1,   558,   559,   560,   561,    -1,   563,   564,    -1,   566,
-     567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,   576,
-      -1,   578,    -1,   580,   581,   582,    -1,    -1,    -1,    -1,
-      -1,    -1,   589,    -1,    -1,   592,    -1,    -1,    -1,   596,
-     597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,    -1,
-      -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,   616,
-      -1,    -1,     5,    -1,     7,     8,     9,    10,    11,    -1,
-      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,   636,
-      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
-      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
-      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
-      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
-      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
-      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
-      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
-      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
-      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
-     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
-     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
-      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
-      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
-     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
-     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
-      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
-     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
-     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
-      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
-      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
-     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
-     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
-     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
-     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
-      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
-      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
-     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
-     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
-      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
-      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
-     333,   334,   335,   336,   337,   338,   339,    -1,    -1,   342,
-     343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,
-     353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,
-     363,   364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,
-     383,    -1,   385,   386,   387,   388,   389,   390,   391,   392,
-     393,   394,   395,   396,    -1,    -1,   399,   400,   401,    -1,
-     403,    -1,   405,   406,   407,   408,   409,    -1,   411,   412,
-     413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,
-     423,   424,    -1,    -1,   427,   428,   429,   430,   431,    -1,
-     433,   434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,
-     443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,
-     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
-      -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,   472,
-      -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,
-     483,   484,   485,    -1,   487,   488,   489,   490,   491,   492,
-      -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,
-      -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,
-     513,   514,    -1,   516,   517,   518,   519,   520,   521,    -1,
-      -1,   524,   525,   526,   527,    -1,   529,   530,    -1,   532,
-      -1,   534,   535,   536,   537,    -1,    -1,   540,   541,    -1,
-     543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,
-     553,   554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,
-     563,   564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,
-     573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,
-      -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,
-      -1,    -1,    -1,   596,   597,   598,   599,   600,   601,    -1,
-      -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,
-     613,    -1,    -1,   616,    -1,    -1,     5,    -1,     7,     8,
-       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
-      -1,    -1,    21,   636,    23,    24,    25,    26,    27,    28,
-      29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
-      39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,
-      49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,
-      59,    -1,    61,    62,    -1,    64,    65,    66,    67,    68,
-      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
-      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
-      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
-      99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,
-     109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,
-      -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,
-     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
-     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
-     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
-     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
-     169,   170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,
-     179,   180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,
-      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
-     199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,
-     209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
-      -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,   228,
-     229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,
-     239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
-     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
-      -1,    -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,
-      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
-     279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,
-     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
-     299,    -1,   301,   302,   303,    -1,   305,   306,   307,   308,
-      -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
-     319,   320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,
-     329,    -1,   331,   332,   333,   334,   335,   336,   337,   338,
-     339,    -1,    -1,   342,   343,    -1,    -1,   346,   347,   348,
-     349,    -1,    -1,    -1,   353,   354,    -1,    -1,    -1,    -1,
-     359,   360,   361,    -1,   363,   364,   365,   366,    -1,   368,
-     369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,
-     379,   380,    -1,    -1,   383,    -1,   385,   386,   387,   388,
-     389,   390,   391,   392,   393,   394,   395,   396,    -1,    -1,
-     399,   400,   401,    -1,   403,    -1,   405,   406,   407,   408,
-     409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,
-      -1,   420,   421,   422,   423,   424,    -1,    -1,   427,   428,
-     429,   430,   431,    -1,   433,   434,    -1,   436,   437,   438,
-      -1,    -1,   441,    -1,   443,    -1,   445,   446,    -1,   448,
-     449,    -1,    -1,    -1,   453,   454,   455,   456,   457,   458,
-     459,   460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,
-     469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,
-      -1,   480,    -1,   482,   483,   484,   485,    -1,   487,   488,
-     489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,
-     499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,
-     509,   510,    -1,    -1,   513,   514,    -1,   516,   517,   518,
-     519,   520,   521,    -1,    -1,   524,   525,   526,   527,    -1,
-     529,   530,    -1,   532,    -1,   534,   535,   536,   537,    -1,
-      -1,   540,   541,    -1,   543,   544,   545,   546,    -1,    -1,
-      -1,    -1,    -1,   552,   553,   554,    -1,    -1,    -1,   558,
-     559,   560,   561,    -1,   563,   564,    -1,   566,   567,    -1,
-     569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,
-      -1,   580,   581,   582,    -1,    -1,    -1,    -1,    -1,    -1,
-     589,    -1,    -1,   592,    -1,    -1,    -1,   596,   597,   598,
-     599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,
-     609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,    -1,
-       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    14,
-      -1,    -1,    -1,    18,    -1,    -1,    21,   636,    23,    24,
-      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,
-      35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,
-      -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,
-      55,    56,    -1,    58,    59,    -1,    61,    62,    -1,    64,
-      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
-      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
-      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
-      95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,
-     105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,
-     115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,
-      -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,
-     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
-      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
-     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
-      -1,   166,   167,   168,   169,   170,   171,    -1,    -1,   174,
-     175,   176,    -1,    -1,   179,   180,    -1,   182,   183,   184,
-      -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
-     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
-      -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,
-      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
-      -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
-      -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,
-     245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,
-      -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,
-     265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
-      -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
-     295,   296,   297,   298,   299,    -1,   301,   302,   303,    -1,
-     305,   306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,
-      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
-     325,    -1,   327,    -1,   329,    -1,   331,   332,   333,   334,
-     335,   336,   337,   338,   339,    -1,    -1,   342,   343,    -1,
-      -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,   354,
-      -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,   364,
-     365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,    -1,
-     385,   386,   387,   388,   389,   390,   391,   392,   393,   394,
-     395,   396,    -1,    -1,   399,   400,   401,    -1,   403,    -1,
-     405,   406,   407,   408,   409,    -1,   411,   412,   413,    -1,
-      -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,   424,
-      -1,    -1,   427,   428,   429,   430,   431,    -1,   433,   434,
-      -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,    -1,
-     445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,   454,
-     455,   456,   457,   458,   459,   460,   461,   462,    -1,   464,
-     465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,
-      -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,
-     485,    -1,   487,   488,   489,   490,   491,   492,    -1,    -1,
-      -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,
-     505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,   514,
-      -1,   516,   517,   518,   519,   520,   521,    -1,    -1,   524,
-     525,   526,   527,    -1,   529,   530,    -1,   532,    -1,   534,
-     535,   536,   537,    -1,   539,   540,   541,    -1,   543,   544,
-     545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,
-      -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,   564,
-      -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,
-      -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,
-      -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,    -1,
-      -1,   596,   597,   598,   599,   600,   601,    -1,    -1,    -1,
-      -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,
-      -1,   616,    -1,     5,    -1,     7,     8,     9,    10,    11,
-      -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,
-     635,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
-      -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
-      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
-      52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,
-      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
-      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
-      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
-      -1,    93,    94,    95,    96,    97,    -1,    99,    -1,    -1,
-     102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,
-      -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,
-      -1,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,
-      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
-      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
-      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
-      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
-      -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,
-     182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,
-      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
-     202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,
-     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
-     222,   223,   224,    -1,    -1,   227,   228,   229,    -1,   231,
-      -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,
-      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
-      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
-      -1,    -1,   264,   265,   266,    -1,    -1,    -1,    -1,   271,
-     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
-     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
-     302,   303,    -1,   305,   306,   307,   308,    -1,   310,   311,
-      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
-      -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,
-     332,   333,   334,   335,   336,   337,   338,   339,    -1,    -1,
-     342,   343,    -1,    -1,   346,   347,   348,   349,    -1,    -1,
-      -1,   353,   354,    -1,    -1,    -1,    -1,   359,   360,   361,
-      -1,   363,   364,   365,   366,    -1,   368,   369,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    -1,   378,   379,   380,    -1,
-      -1,   383,    -1,   385,   386,   387,   388,   389,   390,   391,
-     392,   393,   394,   395,   396,    -1,    -1,   399,   400,   401,
-      -1,   403,    -1,   405,   406,   407,   408,   409,    -1,   411,
-     412,   413,    -1,    -1,   416,    -1,    -1,    -1,   420,   421,
-     422,   423,   424,    -1,    -1,   427,   428,   429,   430,   431,
-      -1,   433,   434,    -1,   436,   437,   438,    -1,    -1,   441,
-      -1,   443,    -1,   445,   446,    -1,   448,   449,    -1,    -1,
-      -1,   453,   454,   455,   456,   457,   458,   459,   460,   461,
-     462,    -1,   464,   465,    -1,    -1,    -1,   469,   470,   471,
-     472,    -1,    -1,    -1,   476,    -1,    -1,    -1,   480,    -1,
-     482,   483,   484,   485,    -1,   487,   488,   489,   490,   491,
-     492,    -1,    -1,    -1,    -1,    -1,    -1,   499,   500,    -1,
-     502,    -1,    -1,   505,    -1,    -1,   508,   509,   510,    -1,
-      -1,   513,   514,    -1,   516,   517,   518,   519,   520,   521,
-      -1,    -1,   524,   525,   526,   527,    -1,   529,   530,    -1,
-     532,    -1,   534,   535,   536,   537,    -1,   539,   540,   541,
-      -1,   543,   544,   545,   546,    -1,    -1,    -1,    -1,    -1,
-     552,   553,   554,    -1,    -1,    -1,   558,   559,   560,   561,
-      -1,   563,   564,    -1,   566,   567,    -1,   569,   570,    -1,
-      -1,   573,    -1,    -1,   576,    -1,   578,    -1,   580,   581,
-     582,    -1,    -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,
-     592,    -1,    -1,    -1,   596,   597,   598,   599,   600,   601,
-      -1,    -1,    -1,    -1,    -1,    -1,   608,   609,    -1,   611,
-     612,   613,    -1,    -1,   616,    -1,     5,    -1,     7,     8,
-       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
-      -1,    -1,    21,   635,    23,    24,    25,    26,    27,    28,
-      29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
-      39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,
-      49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,
-      59,    -1,    61,    62,    -1,    64,    65,    66,    67,    68,
-      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
-      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
-      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
-      99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,
-     109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,
-      -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,
-     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
-     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
-     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
-     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
-     169,   170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,
-     179,   180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,
-      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
-     199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,
-     209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
-      -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,   228,
-     229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,
-     239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
-     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
-      -1,    -1,   261,    -1,    -1,   264,   265,   266,    -1,    -1,
-      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
-     279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,
-     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
-     299,    -1,   301,   302,   303,    -1,   305,   306,   307,   308,
-      -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
-     319,   320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,
-     329,    -1,   331,   332,   333,   334,   335,   336,   337,   338,
-     339,    -1,    -1,   342,   343,    -1,    -1,   346,   347,   348,
-     349,    -1,    -1,    -1,   353,   354,    -1,    -1,    -1,    -1,
-     359,   360,   361,    -1,   363,   364,   365,   366,    -1,   368,
-     369,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   378,
-     379,   380,    -1,    -1,   383,    -1,   385,   386,   387,   388,
-     389,   390,   391,   392,   393,   394,   395,   396,    -1,    -1,
-     399,   400,   401,    -1,   403,    -1,   405,   406,   407,   408,
-     409,    -1,   411,   412,   413,    -1,    -1,   416,    -1,    -1,
-      -1,   420,   421,   422,   423,   424,    -1,    -1,   427,   428,
-     429,   430,   431,    -1,   433,   434,    -1,   436,   437,   438,
-      -1,    -1,   441,    -1,   443,    -1,   445,   446,    -1,   448,
-     449,    -1,    -1,    -1,   453,   454,   455,   456,   457,   458,
-     459,   460,   461,   462,    -1,   464,   465,    -1,    -1,    -1,
-     469,   470,   471,   472,    -1,    -1,    -1,   476,    -1,    -1,
-      -1,   480,    -1,   482,   483,   484,   485,    -1,   487,   488,
-     489,   490,   491,   492,    -1,    -1,    -1,    -1,    -1,    -1,
-     499,   500,    -1,   502,    -1,    -1,   505,    -1,    -1,   508,
-     509,   510,    -1,    -1,   513,   514,    -1,   516,   517,   518,
-     519,   520,   521,    -1,    -1,   524,   525,   526,   527,    -1,
-     529,   530,    -1,   532,    -1,   534,   535,   536,   537,    -1,
-     539,   540,   541,    -1,   543,   544,   545,   546,    -1,    -1,
-      -1,    -1,    -1,   552,   553,   554,    -1,    -1,    -1,   558,
-     559,   560,   561,    -1,   563,   564,    -1,   566,   567,    -1,
-     569,   570,    -1,    -1,   573,    -1,    -1,   576,    -1,   578,
-      -1,   580,   581,   582,    -1,    -1,    -1,    -1,    -1,    -1,
-     589,    -1,    -1,   592,    -1,    -1,    -1,   596,   597,   598,
-     599,   600,   601,    -1,    -1,    -1,    -1,    -1,    -1,   608,
-     609,    -1,   611,   612,   613,    -1,    -1,   616,    -1,     5,
-      -1,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
-      -1,    -1,    18,    -1,    -1,    -1,   635,    23,    24,    25,
-      26,    27,    28,    -1,    -1,    31,    -1,    -1,    -1,    35,
-      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,
-      46,    -1,    -1,    -1,    -1,    -1,    52,    53,    -1,    55,
-      56,    -1,    58,    -1,    -1,    -1,    -1,    -1,    64,    65,
-      66,    67,    68,    69,    70,    -1,    72,    73,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,    81,    -1,    83,    -1,    85,
-      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
-      -1,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
-      -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,
-      -1,    -1,   118,    -1,    -1,    -1,    -1,   123,    -1,    -1,
-      -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,
-      -1,   137,   138,   139,   140,    -1,    -1,    -1,    -1,    -1,
-      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,    -1,
-     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
-     166,   167,   168,   169,    -1,    -1,    -1,    -1,   174,   175,
-     176,    -1,    -1,   179,   180,   181,   182,   183,   184,    -1,
-      -1,    -1,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
-      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
-      -1,    -1,    -1,   209,   210,    -1,    -1,    -1,    -1,    -1,
-      -1,   217,    -1,    -1,    -1,   221,   222,   223,   224,   225,
-      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
-      -1,    -1,   238,    -1,    -1,    -1,    -1,   243,    -1,   245,
-     246,    -1,   248,   249,   250,    -1,    -1,   253,    -1,    -1,
-      -1,   257,   258,    -1,    -1,   261,   262,    -1,   264,   265,
-      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
-     276,    -1,   278,   279,    -1,    -1,    -1,    -1,   284,    -1,
-      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,    -1,   301,   302,   303,    -1,   305,
-     306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,
-     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
-      -1,   327,    -1,   329,    -1,   331,   332,   333,   334,   335,
-     336,   337,   338,   339,    -1,    -1,   342,   343,    -1,    -1,
-     346,   347,   348,   349,    -1,    -1,    -1,    -1,   354,    -1,
-      -1,    -1,    -1,   359,   360,   361,    -1,   363,   364,   365,
-     366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   379,   380,    -1,    -1,    -1,    -1,   385,
-     386,   387,    -1,   389,   390,   391,   392,   393,   394,   395,
-      -1,    -1,    -1,    -1,   400,   401,    -1,   403,    -1,   405,
-     406,   407,   408,   409,    -1,   411,   412,   413,    -1,    -1,
-     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,
-      -1,   427,   428,   429,   430,   431,    -1,   433,    -1,    -1,
-     436,    -1,   438,   439,    -1,   441,    -1,    -1,    -1,   445,
-      -1,    -1,   448,   449,   450,    -1,    -1,    -1,   454,   455,
-     456,   457,   458,   459,    -1,   461,   462,    -1,   464,    -1,
-      -1,    -1,    -1,   469,   470,   471,    -1,    -1,    -1,    -1,
-     476,    -1,    -1,    -1,   480,    -1,    -1,   483,    -1,   485,
-      -1,   487,    -1,   489,    -1,   491,   492,    -1,    -1,    -1,
-      -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,
-      -1,    -1,   508,    -1,   510,    -1,    -1,    -1,   514,    -1,
-     516,   517,   518,   519,   520,   521,    -1,    -1,   524,   525,
-     526,   527,    -1,   529,   530,    -1,   532,    -1,   534,   535,
-     536,   537,    -1,    -1,   540,   541,    -1,   543,   544,   545,
-     546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,
-      -1,    -1,    -1,   559,   560,   561,    -1,   563,   564,    -1,
-     566,   567,    -1,    -1,    -1,    -1,    -1,   573,    -1,    -1,
-     576,    -1,    -1,    -1,   580,   581,   582,    -1,    -1,    -1,
-      -1,    -1,    -1,   589,    -1,    -1,   592,    -1,    -1,    -1,
-     596,   597,   598,   599,   600,   601,    -1,    -1,   604,    -1,
-      -1,    -1,   608,    -1,    -1,   611,    -1,   613,    -1,     5,
-     616,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
-      -1,    -1,    18,    -1,   630,    21,    -1,    23,    24,    25,
-      26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
-      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,
-      46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,
-      56,    -1,    58,    59,    -1,    61,    62,    -1,    64,    65,
-      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
-      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
-      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
-      96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
-      -1,   107,    -1,   109,    -1,    -1,    -1,   113,   114,   115,
-      -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,
-      -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,
-      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
-      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
-     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
-     166,   167,   168,   169,   170,   171,    -1,    -1,   174,   175,
-     176,    -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,
-      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
-      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
-      -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,
-     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,
-      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
-      -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,
-     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
-     256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,
-     266,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
-     276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
-     296,   297,   298,   299,    -1,   301,   302,   303,    -1,   305,
-     306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,
-     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
-      -1,   327,    -1,   329,    -1,   331,   332,   333,   334,   335,
-     336,   337,   338,   339,    -1,    -1,   342,   343,    -1,    -1,
-     346,   347,   348,   349,    -1,    -1,    -1,   353,   354,    -1,
-      -1,    -1,    -1,   359,   360,   361,    -1,   363,   364,   365,
-     366,    -1,   368,   369,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,   378,   379,   380,    -1,    -1,   383,    -1,   385,
-     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
-     396,    -1,    -1,   399,   400,   401,    -1,   403,    -1,   405,
-     406,   407,   408,   409,    -1,   411,   412,   413,    -1,    -1,
-     416,    -1,    -1,    -1,   420,   421,   422,   423,   424,    -1,
-      -1,   427,   428,   429,   430,   431,    -1,   433,   434,    -1,
-     436,   437,   438,    -1,    -1,   441,    -1,   443,    -1,   445,
-     446,    -1,   448,   449,    -1,    -1,    -1,   453,   454,   455,
-     456,   457,   458,   459,   460,   461,   462,    -1,   464,   465,
-      -1,    -1,    -1,   469,   470,   471,   472,    -1,    -1,    -1,
-     476,    -1,    -1,    -1,   480,    -1,   482,   483,   484,   485,
-      -1,   487,   488,   489,   490,   491,   492,    -1,    -1,    -1,
-      -1,    -1,    -1,   499,   500,    -1,   502,    -1,    -1,   505,
-      -1,    -1,   508,   509,   510,    -1,    -1,   513,   514,    -1,
-     516,   517,   518,   519,   520,   521,    -1,    -1,   524,   525,
-     526,   527,    -1,   529,   530,    -1,   532,    -1,   534,   535,
-     536,   537,    -1,   539,   540,   541,    -1,   543,   544,   545,
-     546,    -1,    -1,    -1,    -1,    -1,   552,   553,   554,    -1,
-      -1,    -1,   558,   559,   560,   561,    -1,   563,   564,    -1,
-     566,   567,    -1,   569,   570,    -1,    -1,   573,    -1,    -1,
-     576,    -1,   578,    -1,   580,   581,   582,    -1,    -1,    -1,
-      -1,    -1,    -1,   589,    -1,    -1,   592,    -1,    -1,    -1,
-     596,   597,   598,   599,   600,   601,    -1,    -1,    -1,    -1,
-      -1,    -1,   608,   609,    -1,   611,   612,   613,    -1,    -1,
-     616,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,   628,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,   623,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,   623,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,   623,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,   623,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,   125,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,   213,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,   350,   351,    -1,   353,
-     354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,   495,   496,   497,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,   562,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,   213,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,   562,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,   213,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,   562,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,   213,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,   562,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,   161,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,   475,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    36,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,   213,
-     214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,   382,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,   562,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,   382,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,   562,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,   357,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,   382,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,   562,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,   107,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    12,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    19,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    98,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,   173,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,   496,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,   192,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
+     325,   326,   327,   328,   329,   330,   331,     0,     0,   332,
+     333,     0,     0,   334,   335,   336,   337,     0,     0,     0,
+     338,   339,     0,     0,     0,     0,   340,   341,   342,     0,
+     343,   344,   345,   346,     0,   347,   348,     0,     0,     0,
+       0,     0,     0,     0,     0,   349,   350,   351,     0,     0,
+     352,     0,   353,   354,   355,   356,   357,   358,   359,   360,
+     361,   362,   363,   364,     0,     0,   365,   366,   367,     0,
+     368,     0,   369,   370,   371,   372,   373,     0,   374,   375,
+     376,     0,     0,   377,     0,     0,     0,   378,   379,   380,
+     381,   382,     0,     0,   383,   384,   385,   386,   387,     0,
+     388,   389,     0,   390,   391,   392,     0,     0,   393,     0,
+     394,     0,   395,   396,     0,   397,   398,     0,     0,     0,
+     399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
+       0,   409,   410,     0,     0,     0,   411,   412,   413,   414,
+       0,     0,     0,   415,     0,     0,     0,   416,     0,   417,
+     418,   419,   420,     0,   421,   422,   423,   424,   425,   426,
+       0,     0,     0,     0,     0,     0,   427,   428,     0,   429,
+       0,     0,   430,     0,     0,   431,   432,   433,     0,     0,
+     434,   435,     0,   436,   437,   438,   439,   440,   441,     0,
+       0,   442,   443,   444,   445,     0,   446,   447,     0,   448,
+       0,   449,   450,   451,   452,     0,     0,   453,   454,     0,
+     455,   456,   457,   458,     0,     0,     0,     0,     0,   459,
+     460,   461,     0,     0,     0,   462,   463,   464,   465,     0,
+     466,   467,     0,   468,   469,     0,   470,   471,     0,     0,
+     472,     0,     0,   473,     0,   474,     0,   475,   476,   477,
+       0,     0,     0,     0,     0,     0,   478,     0,     0,   479,
+       0,     0,     0,   480,   481,   482,   483,   484,   485,     0,
+       0,     0,     0,     0,     0,   486,   487,     0,   488,   489,
+     490,     0,   139,   491,   140,   141,   142,   143,   144,     0,
+    3115,   145,     0,     0,     0,   146,     0,     0,   147,     0,
+     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
+       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
+     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
+       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
+       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
+     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
+     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
+     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
+       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
+     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
+     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
+       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
+       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
+     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
+     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
+       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
+     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
+     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
+       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
+       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
+     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
+     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
+     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
+     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
+       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
+       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
+       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
+     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
+       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
+       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
+     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
+     332,   333,     0,     0,   334,   335,   336,   337,     0,     0,
+       0,   338,   339,     0,     0,     0,     0,   340,   341,   342,
+       0,   343,   344,   345,   346,     0,   347,   348,     0,     0,
+       0,     0,     0,     0,     0,     0,   349,   350,   351,     0,
+       0,   352,     0,   353,   354,   355,   356,   357,   358,   359,
+     360,   361,   362,   363,   364,     0,     0,   365,   366,   367,
+       0,   368,     0,   369,   370,   371,   372,   373,     0,   374,
+     375,   376,     0,     0,   377,     0,     0,     0,   378,   379,
+     380,   381,   382,     0,     0,   383,   384,   385,   386,   387,
+       0,   388,   389,     0,   390,   391,   392,     0,     0,   393,
+       0,   394,     0,   395,   396,     0,   397,   398,     0,     0,
+       0,   399,   400,   401,   402,   403,   404,   405,   406,   407,
+     408,     0,   409,   410,     0,     0,     0,   411,   412,   413,
+     414,     0,     0,     0,   415,     0,     0,     0,   416,     0,
+     417,   418,   419,   420,     0,   421,   422,   423,   424,   425,
+     426,     0,     0,     0,     0,     0,     0,   427,   428,     0,
+     429,     0,     0,   430,     0,     0,   431,   432,   433,     0,
+       0,   434,   435,     0,   436,   437,   438,   439,   440,   441,
+       0,     0,   442,   443,   444,   445,     0,   446,   447,     0,
+     448,     0,   449,   450,   451,   452,     0,     0,   453,   454,
+       0,   455,   456,   457,   458,     0,     0,     0,     0,     0,
+     459,   460,   461,     0,     0,     0,   462,   463,   464,   465,
+       0,   466,   467,     0,   468,   469,     0,   470,   471,     0,
+       0,   472,     0,     0,   473,     0,   474,     0,   475,   476,
+     477,     0,     0,     0,     0,     0,     0,   478,     0,     0,
+     479,     0,     0,     0,   480,   481,   482,   483,   484,   485,
+       0,     0,     0,     0,     0,     0,   486,   487,     0,   488,
+     489,   490,     0,   139,   491,   140,   141,   142,   143,   144,
+       0,  3459,   145,     0,     0,     0,   146,     0,     0,   147,
+       0,   148,   149,   150,   151,   152,   153,   154,     0,   155,
+       0,     0,     0,   156,     0,     0,     0,   157,     0,     0,
+     158,   159,   160,     0,   161,     0,   162,   163,     0,     0,
+     164,     0,     0,   165,   166,     0,   167,   168,     0,   169,
+     170,     0,   171,   172,   173,   174,   175,   176,   177,     0,
+     178,   179,   180,   181,   182,   183,   184,   185,     0,   186,
+     187,   188,   189,   190,   191,   192,   193,     0,   194,   195,
+       0,   196,   197,   198,   199,   200,     0,   201,     0,     0,
+     202,     0,     0,   203,     0,     0,     0,   204,     0,     0,
+       0,   205,   206,   207,     0,     0,   208,     0,     0,     0,
+       0,   209,   210,  2429,     0,     0,     0,   211,     0,   212,
+       0,     0,     0,   213,     0,   214,   215,   216,   217,     0,
+       0,     0,   218,     0,     0,   219,   220,   221,     0,     0,
+       0,   222,     0,   223,   224,     0,   225,   226,   227,     0,
+       0,   228,   229,     0,   230,   231,   232,   233,   234,   235,
+       0,     0,   236,   237,   238,     0,     0,   239,   240,     0,
+     241,   242,   243,  2430,     0,   244,     0,     0,     0,   245,
+       0,   246,     0,   247,     0,   248,   249,   250,   251,   252,
+     253,     0,   254,     0,     0,     0,   255,   256,   257,     0,
+     258,  2431,     0,     0,   259,   260,     0,     0,     0,   261,
+     262,   263,   264,     0,     0,   265,   266,   267,     0,   268,
+       0,   269,     0,     0,     0,     0,   270,   271,     0,     0,
+       0,   272,     0,   273,   274,     0,   275,   276,     0,     0,
+       0,   277,     0,     0,   278,   279,   280,     0,     0,   281,
+       0,     0,   282,   283,     0,     0,     0,     0,     0,   284,
+     285,     0,   286,     0,   287,     0,   288,   289,     0,     0,
+    2432,     0,     0,     0,     0,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,     0,   303,
+     304,   305,     0,   306,   307,   308,   309,     0,   310,   311,
+       0,     0,     0,     0,   312,   313,   314,   315,   316,   317,
+       0,     0,   318,   319,     0,   320,     0,   321,     0,   322,
+     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
+       0,   332,   333,     0,     0,   334,   335,   336,   337,  1037,
+    1038,     0,   338,   339,     0,     0,  2433,     0,   340,   341,
+     342,     0,   343,   344,   345,   346,     0,   347,   348,     0,
+       0,     0,     0,     0,     0,     0,     0,   349,   350,   351,
+       0,     0,   352,     0,   353,   354,   355,   356,   357,   358,
+     359,   360,   361,   362,   363,   364,     0,     0,   365,   366,
+     367,     0,   368,     0,   369,   370,   371,   372,   373,     0,
+     374,   375,   376,     0,     0,   377,     0,     0,     0,   378,
+     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
+     387,     0,   388,   389,     0,   390,   391,   392,     0,     0,
+     393,     0,   394,     0,   395,   396,     0,   397,   398,     0,
+       0,     0,   399,   400,   401,   402,   403,   404,   405,   406,
+     407,   408,     0,   409,   410,     0,     0,     0,   411,   412,
+     413,   414,     0,     0,     0,   415,     0,     0,     0,   416,
+       0,   417,   418,   419,   420,     0,   421,   422,   423,   424,
+     425,   426,     0,     0,  4427,   566,  4428,     0,   427,   428,
+       0,   429,     0,     0,   430,     0,     0,   431,   432,   433,
+       0,     0,   434,   435,     0,   436,   437,   438,   439,   440,
+     441,     0,     0,   442,   443,   444,   445,     0,   446,   447,
+       0,   448,     0,   449,   450,   451,   452,     0,     0,   453,
+     454,     0,   455,   456,   457,   458,     0,     0,     0,     0,
+       0,   459,   460,   461,     0,     0,     0,   462,   463,   464,
+     465,  2434,   466,   467,     0,   468,   469,     0,   470,   471,
+       0,     0,   472,     0,     0,   473,     0,   474,     0,   475,
+     476,   477,     0,     0,     0,     0,     0,     0,   478,     0,
+       0,   479,     0,     0,     0,   480,   481,   482,   483,   484,
+     485,     0,     0,     0,     0,     0,     0,   486,   487,     0,
+     488,   489,   490,     0,   139,   491,   140,   141,   142,   143,
+     144,     0,     0,   145,     0,     0,     0,   146,     0,     0,
+     147,     0,   148,   149,   150,   151,   152,   153,   154,     0,
+     155,     0,     0,     0,   156,     0,     0,     0,   157,     0,
+       0,   158,   159,   160,     0,   161,     0,   162,   163,     0,
+       0,   164,     0,     0,   165,   166,     0,   167,   168,     0,
+     169,   170,     0,   171,   172,   173,   174,   175,   176,   177,
+       0,   178,   179,   180,   181,   182,   183,   184,   185,     0,
+     186,   187,   188,   189,   190,   191,   192,   193,     0,   194,
+     195,     0,   196,   197,   198,   199,   200,     0,   201,     0,
+       0,   202,     0,     0,   203,     0,     0,     0,   204,     0,
+       0,     0,   205,   206,   207,     0,     0,   208,     0,     0,
+       0,     0,   209,   210,  1584,     0,     0,  2956,   211,     0,
+     212,     0,     0,     0,   213,     0,   214,   215,   216,   217,
+       0,     0,     0,   218,     0,     0,   219,   220,   221,     0,
+       0,     0,   222,     0,   223,   224,     0,   225,   226,   227,
+       0,     0,   228,   229,     0,   230,   231,   232,   233,   234,
+     235,     0,     0,   236,   237,   238,     0,     0,   239,   240,
+       0,   241,   242,   243,  1585,     0,   244,     0,     0,     0,
+     245,     0,   246,     0,   247,     0,   248,   249,   250,   251,
+     252,   253,     0,   254,     0,     0,     0,   255,   256,   257,
+       0,   258,  2851,     0,     0,   259,   260,     0,     0,     0,
+     261,   262,   263,   264,     0,     0,   265,   266,   267,     0,
+     268,     0,   269,     0,     0,     0,     0,   270,   271,     0,
+       0,     0,   272,     0,   273,   274,     0,   275,   276,     0,
+       0,     0,   277,     0,     0,   278,   279,   280,     0,     0,
+     281,     0,     0,   282,   283,     0,     0,     0,     0,     0,
+     284,   285,     0,   286,     0,   287,     0,   288,   289,     0,
+       0,  2852,     0,     0,     0,     0,   290,   291,   292,   293,
+     294,   295,   296,   297,   298,   299,   300,   301,   302,     0,
+     303,   304,   305,     0,   306,   307,   308,   309,     0,   310,
+     311,     0,     0,     0,     0,   312,   313,   314,   315,   316,
+     317,     0,     0,   318,   319,     0,   320,     0,   321,     0,
+     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
+       0,     0,   332,   333,     0,     0,   334,   335,   336,   337,
+       0,     0,     0,   338,   339,     0,     0,  2853,     0,   340,
+     341,   342,     0,   343,   344,   345,   346,     0,   347,   348,
+       0,     0,     0,     0,     0,     0,     0,     0,   349,   350,
+     351,     0,     0,   352,     0,   353,   354,   355,   356,   357,
+     358,   359,   360,   361,   362,   363,   364,     0,     0,   365,
+     366,   367,     0,   368,     0,   369,   370,   371,   372,   373,
+       0,   374,   375,   376,     0,     0,   377,     0,     0,     0,
+     378,   379,   380,   381,   382,     0,     0,   383,   384,   385,
+     386,   387,     0,   388,   389,     0,   390,   391,   392,     0,
+       0,   393,     0,   394,     0,   395,   396,     0,   397,   398,
+       0,     0,     0,   399,   400,   401,   402,   403,   404,   405,
+     406,   407,   408,     0,   409,   410,     0,     0,     0,   411,
+     412,   413,   414,     0,     0,     0,   415,     0,     0,     0,
+     416,     0,   417,   418,   419,   420,     0,   421,   422,   423,
+     424,   425,   426,     0,     0,     0,     0,     0,     0,   427,
+     428,     0,   429,     0,     0,   430,     0,     0,   431,   432,
+     433,     0,     0,   434,   435,     0,   436,   437,   438,   439,
+     440,   441,     0,     0,   442,   443,   444,   445,     0,   446,
+     447,     0,   448,     0,   449,   450,   451,   452,     0,   136,
+     453,   454,     0,   455,   456,   457,   458,     0,     0,     0,
+       0,     0,   459,   460,   461,     0,     0,     0,   462,   463,
+     464,   465,  2854,   466,   467,     0,   468,   469,     0,   470,
+     471,     0,     0,   472,     0,     0,   473,     0,   474,     0,
+     475,   476,   477,     0,     0,     0,     0,     0,     0,   478,
+       0,     0,   479,     0,     0,     0,   480,   481,   482,   483,
+     484,   485,     0,     0,     0,     0,     0,     0,   486,   487,
+       0,   488,   489,   490,     0,   139,   491,   140,   141,   142,
+     143,   144,     0,     0,   145,     0,     0,     0,   146,     0,
+       0,   147,     0,   148,   149,   150,   151,   152,   153,   154,
+       0,   155,     0,     0,     0,   156,     0,     0,     0,   157,
+       0,     0,   158,   159,   160,     0,   161,     0,   162,   163,
+       0,     0,   164,     0,     0,   165,   166,     0,   167,   168,
+       0,   169,   170,     0,   171,   172,   173,   174,   175,   176,
+     177,     0,   178,   179,   180,   181,   182,   183,   184,   185,
+       0,   186,   187,   188,   189,   190,   191,   192,   193,     0,
+     194,   195,     0,   196,   197,   198,   199,   200,     0,   201,
+       0,     0,   202,     0,     0,   203,     0,     0,     0,   204,
+       0,     0,     0,   205,   206,   207,     0,     0,   208,     0,
+       0,     0,     0,   209,   210,  1584,     0,     0,  3886,   211,
+       0,   212,     0,     0,     0,   213,     0,   214,   215,   216,
+     217,     0,     0,     0,   218,     0,     0,   219,   220,   221,
+       0,     0,     0,   222,     0,   223,   224,     0,   225,   226,
+     227,     0,     0,   228,   229,     0,   230,   231,   232,   233,
+     234,   235,     0,     0,   236,   237,   238,     0,     0,   239,
+     240,     0,   241,   242,   243,  1585,     0,   244,     0,     0,
+       0,   245,     0,   246,     0,   247,     0,   248,   249,   250,
+     251,   252,   253,     0,   254,     0,     0,     0,   255,   256,
+     257,     0,   258,  2851,     0,     0,   259,   260,     0,     0,
+       0,   261,   262,   263,   264,     0,     0,   265,   266,   267,
+       0,   268,     0,   269,     0,     0,     0,     0,   270,   271,
+       0,     0,     0,   272,     0,   273,   274,     0,   275,   276,
+       0,     0,     0,   277,     0,     0,   278,   279,   280,     0,
+       0,   281,     0,     0,   282,   283,     0,     0,     0,     0,
+       0,   284,   285,     0,   286,     0,   287,     0,   288,   289,
+       0,     0,  2852,     0,     0,     0,     0,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+       0,   303,   304,   305,     0,   306,   307,   308,   309,     0,
+     310,   311,     0,     0,     0,     0,   312,   313,   314,   315,
+     316,   317,     0,     0,   318,   319,     0,   320,     0,   321,
+       0,   322,   323,   324,   325,   326,   327,   328,   329,   330,
+     331,     0,     0,   332,   333,     0,     0,   334,   335,   336,
+     337,     0,     0,     0,   338,   339,     0,     0,  2853,     0,
+     340,   341,   342,     0,   343,   344,   345,   346,     0,   347,
+     348,     0,     0,     0,     0,     0,     0,     0,     0,   349,
+     350,   351,     0,     0,   352,     0,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
+     365,   366,   367,     0,   368,     0,   369,   370,   371,   372,
+     373,     0,   374,   375,   376,     0,     0,   377,     0,     0,
+       0,   378,   379,   380,   381,   382,     0,     0,   383,   384,
+     385,   386,   387,     0,   388,   389,     0,   390,   391,   392,
+       0,     0,   393,     0,   394,     0,   395,   396,     0,   397,
+     398,     0,     0,     0,   399,   400,   401,   402,   403,   404,
+     405,   406,   407,   408,     0,   409,   410,     0,     0,     0,
+     411,   412,   413,   414,     0,     0,     0,   415,     0,     0,
+       0,   416,     0,   417,   418,   419,   420,     0,   421,   422,
+     423,   424,   425,   426,     0,     0,     0,     0,     0,     0,
+     427,   428,     0,   429,     0,     0,   430,     0,     0,   431,
+     432,   433,     0,     0,   434,   435,     0,   436,   437,   438,
+     439,   440,   441,     0,     0,   442,   443,   444,   445,     0,
+     446,   447,     0,   448,     0,   449,   450,   451,   452,     0,
+     136,   453,   454,     0,   455,   456,   457,   458,     0,     0,
+       0,     0,     0,   459,   460,   461,     0,     0,     0,   462,
+     463,   464,   465,  2854,   466,   467,     0,   468,   469,     0,
+     470,   471,     0,     0,   472,     0,     0,   473,     0,   474,
+       0,   475,   476,   477,     0,     0,     0,     0,     0,     0,
+     478,     0,     0,   479,     0,     0,     0,   480,   481,   482,
+     483,   484,   485,     0,     0,     0,     0,     0,     0,   486,
+     487,     0,   488,   489,   490,     0,   139,   491,   140,   141,
+     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
+       0,     0,   147,     0,   148,   149,   150,   151,   152,   153,
+     154,     0,   155,     0,     0,     0,   156,     0,     0,     0,
+     157,     0,     0,   158,   159,   160,     0,   161,     0,   162,
+     163,     0,     0,   164,     0,     0,   165,   166,     0,   167,
+     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
+     176,   177,     0,   178,   179,   180,   181,   182,   183,   184,
+     185,     0,   186,   187,   188,   189,   190,   191,   192,   193,
+       0,   194,   195,     0,   196,   197,   198,   199,   200,     0,
+     201,     0,     0,   202,     0,     0,   203,     0,     0,     0,
+     204,     0,     0,     0,   205,   206,   207,     0,     0,   208,
+       0,     0,     0,     0,   209,   210,  1584,     0,     0,  4170,
+     211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
+     216,   217,     0,     0,     0,   218,     0,     0,   219,   220,
+     221,     0,     0,     0,   222,     0,   223,   224,     0,   225,
+     226,   227,     0,     0,   228,   229,     0,   230,   231,   232,
+     233,   234,   235,     0,     0,   236,   237,   238,     0,     0,
+     239,   240,     0,   241,   242,   243,  1585,     0,   244,     0,
+       0,     0,   245,     0,   246,     0,   247,     0,   248,   249,
+     250,   251,   252,   253,     0,   254,     0,     0,     0,   255,
+     256,   257,     0,   258,  2851,     0,     0,   259,   260,     0,
+       0,     0,   261,   262,   263,   264,     0,     0,   265,   266,
+     267,     0,   268,     0,   269,     0,     0,     0,     0,   270,
+     271,     0,     0,     0,   272,     0,   273,   274,     0,   275,
+     276,     0,     0,     0,   277,     0,     0,   278,   279,   280,
+       0,     0,   281,     0,     0,   282,   283,     0,     0,     0,
+       0,     0,   284,   285,     0,   286,     0,   287,     0,   288,
+     289,     0,     0,  2852,     0,     0,     0,     0,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
+     302,     0,   303,   304,   305,     0,   306,   307,   308,   309,
+       0,   310,   311,     0,     0,     0,     0,   312,   313,   314,
+     315,   316,   317,     0,     0,   318,   319,     0,   320,     0,
+     321,     0,   322,   323,   324,   325,   326,   327,   328,   329,
+     330,   331,     0,     0,   332,   333,     0,     0,   334,   335,
+     336,   337,     0,     0,     0,   338,   339,     0,     0,  2853,
+       0,   340,   341,   342,     0,   343,   344,   345,   346,     0,
+     347,   348,     0,     0,     0,     0,     0,     0,     0,     0,
+     349,   350,   351,     0,     0,   352,     0,   353,   354,   355,
+     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
+       0,   365,   366,   367,     0,   368,     0,   369,   370,   371,
+     372,   373,     0,   374,   375,   376,     0,     0,   377,     0,
+       0,     0,   378,   379,   380,   381,   382,     0,     0,   383,
+     384,   385,   386,   387,     0,   388,   389,     0,   390,   391,
+     392,     0,     0,   393,     0,   394,     0,   395,   396,     0,
+     397,   398,     0,     0,     0,   399,   400,   401,   402,   403,
+     404,   405,   406,   407,   408,     0,   409,   410,     0,     0,
+       0,   411,   412,   413,   414,     0,     0,     0,   415,     0,
+       0,     0,   416,     0,   417,   418,   419,   420,     0,   421,
+     422,   423,   424,   425,   426,     0,     0,     0,     0,     0,
+       0,   427,   428,     0,   429,     0,     0,   430,     0,     0,
+     431,   432,   433,     0,     0,   434,   435,     0,   436,   437,
+     438,   439,   440,   441,     0,     0,   442,   443,   444,   445,
+       0,   446,   447,     0,   448,     0,   449,   450,   451,   452,
+       0,   136,   453,   454,     0,   455,   456,   457,   458,     0,
+       0,     0,     0,     0,   459,   460,   461,     0,     0,     0,
+     462,   463,   464,   465,  2854,   466,   467,     0,   468,   469,
+       0,   470,   471,     0,     0,   472,     0,     0,   473,     0,
+     474,     0,   475,   476,   477,     0,     0,     0,     0,     0,
+       0,   478,     0,     0,   479,     0,     0,     0,   480,   481,
+     482,   483,   484,   485,     0,     0,     0,     0,     0,     0,
+     486,   487,     0,   488,   489,   490,     0,   139,   491,   140,
+     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
+     146,     0,     0,   147,     0,   148,   149,   150,   151,   152,
+     153,   154,     0,   155,     0,     0,  2628,   156,     0,     0,
+       0,   157,     0,     0,   158,   159,   160,     0,   161,     0,
+     162,   163,     0,     0,   164,     0,     0,   165,   166,     0,
+     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
+     175,   176,   177,     0,   178,   179,   180,   181,   182,   183,
+     184,   185,     0,   186,   187,   188,   189,   190,   191,   192,
+     193,     0,   194,   195,     0,   196,   197,   198,   199,   200,
+       0,   201,     0,     0,   202,     0,     0,   203,     0,     0,
+       0,   204,     0,     0,     0,   205,   206,   207,     0,     0,
+     208,     0,     0,     0,     0,   209,   210,     0,     0,     0,
+    2791,   211,     0,   212,     0,     0,     0,   213,     0,   214,
+     215,   216,   217,     0,     0,     0,   218,     0,     0,   219,
+     220,   221,     0,     0,     0,   222,     0,   223,   224,     0,
+     225,   226,   227,  2255,     0,   228,   229,     0,   230,   231,
+     232,   233,   234,   235,     0,     0,   236,   237,   238,     0,
+       0,   239,   240,     0,   241,   242,   243,     0,     0,   244,
+       0,     0,     0,   245,     0,   246,     0,   247,     0,   248,
+     249,   250,   251,   252,   253,     0,   254,     0,     0,     0,
+     255,   256,   257,     0,   258,     0,     0,     0,   259,   260,
+       0,     0,     0,   261,   262,   263,   264,     0,     0,   265,
+     266,   267,     0,   268,     0,   269,     0,     0,     0,     0,
+     270,   271,     0,     0,     0,   272,     0,   273,   274,     0,
+     275,   276,     0,     0,     0,   277,     0,     0,   278,   279,
+     280,     0,     0,   281,     0,     0,   282,   283,   620,     0,
+       0,     0,     0,   284,   285,     0,   286,     0,   287,     0,
+     288,   289,     0,     0,     0,     0,     0,     0,     0,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
+     301,   302,     0,   303,   304,   305,     0,   306,   307,   308,
+     309,     0,   310,   311,     0,     0,     0,     0,   312,   313,
+     314,   315,   316,   317,     0,     0,   318,   319,     0,   320,
+       0,   321,     0,   322,   323,   324,   325,   326,   327,   328,
+     329,   330,   331,     0,     0,   332,   333,     0,     0,   334,
+     335,   336,   337,     0,     0,     0,   338,   339,     0,     0,
+       0,     0,   340,   341,   342,     0,   343,   344,   345,   346,
+       0,   347,   348,     0,     0,     0,     0,     0,     0,     0,
+       0,   349,   350,   351,     0,     0,   352,     0,   353,   354,
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+       0,     0,   365,   366,   367,     0,   368,     0,   369,   370,
+     371,   372,   373,     0,   374,   375,   376,     0,     0,   377,
+       0,     0,     0,   378,   379,   380,   381,   382,     0,     0,
+     383,   384,   385,   386,   387,     0,   388,   389,     0,   390,
+     391,   392,     0,     0,   393,     0,   394,     0,   395,   396,
+       0,   397,   398,     0,     0,     0,   399,   400,   401,   402,
+     403,   404,   405,   406,   407,   408,     0,   409,   410,     0,
+       0,     0,   411,   412,   413,   414,     0,     0,  2256,   415,
+       0,     0,     0,   416,     0,   417,   418,   419,   420,     0,
+     421,   422,   423,   424,   425,   426,     0,     0,     0,     0,
+       0,     0,   427,   428,     0,   429,     0,     0,   430,     0,
+       0,   431,   432,   433,     0,     0,   434,   435,     0,   436,
+     437,   438,   439,   440,   441,     0,     0,   442,   443,   444,
+     445,     0,   446,   447,     0,   448,     0,   449,   450,   451,
+     452,     0,   136,   453,   454,     0,   455,   456,   457,   458,
+       0,     0,     0,     0,     0,   459,   460,   461,     0,     0,
+       0,   462,   463,   464,   465,     0,   466,   467,     0,   468,
+     469,     0,   470,   471,     0,     0,   472,     0,     0,   473,
+       0,   474,     0,   475,   476,   477,     0,     0,     0,     0,
+       0,     0,   478,     0,     0,   479,     0,     0,     0,   480,
+     481,   482,   483,   484,   485,     0,     0,     0,     0,     0,
+       0,   486,   487,     0,   488,   489,   490,     0,   139,   491,
+     140,   141,   142,   143,   144,     0,     0,   145,     0,     0,
+       0,   146,     0,     0,   147,     0,   148,   149,   150,   151,
+     152,   153,   154,     0,   155,     0,     0,     0,   156,   972,
+       0,     0,   157,     0,     0,   158,   159,   160,     0,   161,
+       0,   162,   163,     0,     0,   164,     0,     0,   165,   166,
+       0,   167,   168,     0,   169,   170,     0,   171,   172,   173,
+     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
+     183,   184,   185,     0,   186,   187,   188,   189,   190,   191,
+     192,   193,     0,   194,   195,     0,   196,   197,   198,   199,
+     200,     0,   201,     0,     0,   202,     0,     0,   203,     0,
+       0,     0,   204,     0,     0,     0,   205,   206,   207,     0,
+       0,   208,     0,     0,     0,     0,   209,   210,     0,     0,
+       0,     0,   211,     0,   212,     0,     0,     0,   213,     0,
+     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
+     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
+       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
+     231,   232,   233,   234,   235,     0,     0,   236,   237,   238,
+       0,     0,   239,   240,     0,   241,   242,   243,     0,     0,
+     244,     0,     0,     0,   245,     0,   246,     0,   247,     0,
+     248,   249,   250,   251,   252,   253,     0,   254,     0,     0,
+       0,   255,   256,   257,     0,   258,   973,   974,     0,   259,
+     260,     0,     0,     0,   261,   262,   263,   264,     0,     0,
+     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
+       0,   270,   271,     0,     0,     0,   272,     0,   273,   274,
+       0,   275,   276,     0,     0,     0,   277,     0,     0,   278,
+     279,   280,     0,     0,   281,     0,     0,   282,   283,     0,
+       0,     0,     0,     0,   284,   285,     0,   286,     0,   287,
+       0,   288,   289,     0,     0,     0,     0,     0,     0,     0,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,     0,   303,   304,   305,     0,   306,   307,
+     308,   309,     0,   310,   311,     0,     0,     0,     0,   312,
+     313,   314,   315,   316,   317,     0,     0,   318,   319,     0,
+     320,     0,   321,     0,   322,   323,   324,   325,   326,   327,
+     328,   329,   330,   331,     0,     0,   332,   333,     0,     0,
+     334,   335,   336,   337,     0,     0,     0,   338,   339,     0,
+       0,     0,     0,   340,   341,   342,     0,   343,   344,   345,
+     346,     0,   347,   348,     0,     0,     0,     0,     0,     0,
+       0,     0,   349,   350,   351,     0,     0,   352,     0,   353,
+     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
+     364,     0,     0,   365,   366,   367,     0,   368,     0,   369,
+     370,   371,   372,   373,     0,   374,   375,   376,     0,     0,
+     377,     0,     0,     0,   378,   379,   380,   381,   382,     0,
+       0,   383,   384,   385,   386,   387,     0,   388,   389,     0,
+     390,   391,   392,     0,     0,   393,     0,   394,     0,   395,
+     396,     0,   397,   398,     0,     0,     0,   399,   400,   401,
+     402,   403,   404,   405,   406,   407,   408,     0,   409,   410,
+       0,     0,     0,   411,   412,   413,   414,     0,     0,     0,
+     415,     0,     0,     0,   416,     0,   417,   418,   419,   420,
+       0,   421,   422,   423,   424,   425,   426,     0,     0,     0,
+       0,     0,     0,   427,   428,     0,   429,     0,     0,   430,
+       0,     0,   431,   432,   433,     0,     0,   434,   435,     0,
+     436,   437,   438,   439,   440,   441,     0,     0,   442,   443,
+     444,   445,     0,   446,   447,     0,   448,     0,   449,   450,
+     451,   452,     0,   975,   453,   454,     0,   455,   456,   457,
+     458,     0,     0,     0,     0,     0,   459,   460,   461,     0,
+       0,     0,   462,   463,   464,   465,     0,   466,   467,     0,
+     468,   469,     0,   470,   471,     0,     0,   472,     0,     0,
+     473,     0,   474,     0,   475,   476,   477,     0,     0,     0,
+       0,     0,     0,   478,     0,     0,   479,     0,     0,     0,
+     480,   481,   482,   483,   484,   485,     0,     0,     0,     0,
+       0,     0,   486,   487,     0,   488,   489,   490,     0,   139,
+     491,   140,   141,   142,   143,   144,     0,     0,   145,     0,
+       0,     0,   146,     0,     0,   147,     0,   148,   149,   150,
+     151,   152,   153,   154,     0,   155,     0,     0,     0,   156,
+       0,     0,     0,   157,     0,     0,   158,   159,   160,     0,
+     161,     0,   162,   163,     0,     0,   164,     0,     0,   165,
+     166,     0,   167,   168,     0,   169,   170,     0,   171,   172,
+     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
+     182,   183,   184,   185,     0,   186,   187,   188,   189,   190,
+     191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
+     199,   200,     0,   201,     0,     0,   202,     0,     0,   203,
+       0,     0,     0,   204,     0,     0,     0,   205,   206,   207,
+       0,     0,   208,     0,     0,     0,     0,   209,   210,     0,
+       0,     0,     0,   211,     0,   212,     0,     0,     0,   213,
+       0,   214,   215,   216,   217,     0,     0,     0,   218,     0,
+       0,   219,   220,   221,     0,     0,     0,   222,     0,   223,
+     224,     0,   225,   226,   227,     0,     0,   228,   229,     0,
+     230,   231,   232,   233,   234,   235,     0,     0,   236,   237,
+     238,     0,     0,   239,   240,     0,   241,   242,   243,     0,
+       0,   244,     0,     0,     0,   245,     0,   246,     0,   247,
+       0,   248,   249,   250,   251,   252,   253,     0,   254,     0,
+       0,     0,   255,   256,   257,     0,   258,     0,     0,     0,
+     259,   260,     0,     0,     0,   261,   262,   263,   264,     0,
+       0,   265,   266,   267,     0,   268,     0,   269,     0,     0,
+       0,     0,   270,   271,     0,     0,     0,   272,     0,   273,
+     274,     0,   275,   276,     0,     0,     0,   277,     0,     0,
+     278,   279,   280,     0,     0,   281,     0,     0,   282,   283,
+       0,     0,     0,     0,     0,   284,   285,     0,   286,     0,
+     287,     0,   288,   289,     0,     0,  1860,     0,     0,     0,
+       0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,   300,   301,   302,     0,   303,   304,   305,     0,   306,
+     307,   308,   309,     0,   310,   311,     0,     0,     0,     0,
+     312,   313,   314,   315,   316,   317,     0,     0,   318,   319,
+       0,   320,     0,   321,     0,   322,   323,   324,   325,   326,
+     327,   328,   329,   330,   331,     0,     0,   332,   333,     0,
+       0,   334,   335,   336,   337,     0,     0,     0,   338,   339,
+       0,     0,  1861,     0,   340,   341,   342,     0,   343,   344,
+     345,   346,     0,   347,   348,     0,     0,     0,     0,     0,
+       0,     0,     0,   349,   350,   351,     0,   739,   352,     0,
+     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
+     363,   364,     0,     0,   365,   366,   367,     0,   368,     0,
+     369,   370,   371,   372,   373,     0,   374,   375,   376,     0,
+       0,   377,     0,     0,     0,   378,   379,   380,   381,   382,
+       0,     0,   383,   384,   385,   386,   387,     0,   388,   389,
+       0,   390,   391,   392,     0,     0,   393,     0,   394,     0,
+     395,   396,     0,   397,   398,     0,     0,     0,   399,   400,
+     401,  1862,   403,   404,   405,   406,   407,   408,     0,   409,
+     410,     0,     0,     0,   411,   412,   413,   414,     0,     0,
+       0,   415,     0,     0,     0,   416,     0,   417,   418,   419,
+     420,     0,   421,   422,   423,   424,   425,   426,     0,     0,
+       0,     0,     0,     0,   427,   428,     0,   429,     0,     0,
+     430,     0,     0,   431,   432,   433,     0,     0,   434,   435,
+       0,   436,   437,   438,   439,   440,   441,     0,     0,   442,
+     443,   444,   445,     0,   446,   447,     0,   448,     0,   449,
+     450,   451,   452,     0,     0,   453,   454,     0,   455,   456,
+     457,   458,     0,     0,     0,     0,     0,   459,   460,   461,
+       0,     0,     0,   462,   463,   464,   465,  1863,   466,   467,
+       0,   468,   469,     0,   470,   471,     0,     0,   472,     0,
+       0,   473,     0,   474,     0,   475,   476,   477,     0,     0,
+       0,     0,     0,     0,   478,     0,     0,   479,     0,     0,
+       0,   480,   481,   482,   483,   484,   485,     0,     0,     0,
+       0,     0,     0,   486,   487,     0,   488,   489,   490,     0,
+     139,   491,   140,   141,   142,   143,   144,     0,     0,   145,
+       0,     0,     0,   146,     0,     0,   147,     0,   148,   149,
+     150,   151,   152,   153,   154,     0,   155,     0,     0,  2799,
+     156,     0,     0,     0,   157,     0,     0,   158,   159,   160,
+       0,   161,     0,   162,   163,     0,     0,   164,     0,     0,
+     165,   166,     0,   167,   168,     0,   169,   170,     0,   171,
+     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
+     181,   182,   183,   184,   185,     0,   186,   187,   188,   189,
+     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
+     198,   199,   200,     0,   201,     0,     0,   202,     0,     0,
+     203,     0,     0,     0,   204,     0,     0,     0,   205,   206,
+     207,     0,     0,   208,     0,     0,     0,     0,   209,   210,
+       0,     0,     0,  2800,   211,     0,   212,     0,     0,     0,
+     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
+       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
+     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
+       0,   230,   231,   232,   233,   234,   235,     0,     0,   236,
+     237,   238,     0,     0,   239,   240,     0,   241,   242,   243,
+       0,     0,   244,     0,     0,     0,   245,     0,   246,     0,
+     247,     0,   248,   249,   250,   251,   252,   253,     0,   254,
+       0,     0,     0,   255,   256,   257,     0,   258,     0,     0,
+       0,   259,   260,     0,     0,     0,   261,   262,   263,   264,
+       0,     0,   265,   266,   267,     0,   268,     0,   269,     0,
+       0,     0,     0,   270,   271,     0,     0,     0,   272,     0,
+     273,   274,     0,   275,   276,     0,     0,     0,   277,     0,
+       0,   278,   279,   280,     0,     0,   281,     0,     0,   282,
+     283,   620,     0,     0,     0,     0,   284,   285,     0,   286,
+       0,   287,     0,   288,   289,     0,     0,     0,     0,     0,
+       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,     0,   303,   304,   305,     0,
+     306,   307,   308,   309,     0,   310,   311,     0,     0,     0,
+       0,   312,   313,   314,   315,   316,   317,     0,     0,   318,
+     319,     0,   320,     0,   321,     0,   322,   323,   324,   325,
+     326,   327,   328,   329,   330,   331,     0,     0,   332,   333,
+       0,     0,   334,   335,   336,   337,     0,     0,     0,   338,
+     339,     0,     0,     0,     0,   340,   341,   342,     0,   343,
+     344,   345,   346,     0,   347,   348,     0,     0,     0,     0,
+       0,     0,     0,     0,   349,   350,   351,     0,     0,   352,
+       0,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,     0,     0,   365,   366,   367,     0,   368,
+       0,   369,   370,   371,   372,   373,     0,   374,   375,   376,
+       0,     0,   377,     0,     0,     0,   378,   379,   380,   381,
+     382,     0,     0,   383,   384,   385,   386,   387,     0,   388,
+     389,     0,   390,   391,   392,     0,     0,   393,     0,   394,
+       0,   395,   396,     0,   397,   398,     0,     0,     0,   399,
+     400,   401,   402,   403,   404,   405,   406,   407,   408,     0,
+     409,   410,     0,     0,     0,   411,   412,   413,   414,     0,
+       0,     0,   415,     0,     0,     0,   416,     0,   417,   418,
+     419,   420,     0,   421,   422,   423,   424,   425,   426,     0,
+       0,     0,     0,     0,     0,   427,   428,     0,   429,     0,
+       0,   430,     0,     0,   431,   432,   433,     0,     0,   434,
+     435,     0,   436,   437,   438,   439,   440,   441,     0,     0,
+     442,   443,   444,   445,     0,   446,   447,     0,   448,     0,
+     449,   450,   451,   452,     0,   136,   453,   454,     0,   455,
+     456,   457,   458,     0,     0,     0,     0,     0,   459,   460,
+     461,     0,     0,     0,   462,   463,   464,   465,     0,   466,
+     467,     0,   468,   469,     0,   470,   471,     0,     0,   472,
+       0,     0,   473,     0,   474,     0,   475,   476,   477,     0,
+       0,     0,     0,     0,     0,   478,     0,     0,   479,     0,
+       0,     0,   480,   481,   482,   483,   484,   485,     0,     0,
+       0,     0,     0,     0,   486,   487,     0,   488,   489,   490,
+       0,   139,   491,   140,   141,   142,   143,   144,     0,     0,
+     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
+     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
+       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
+     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
+       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
+     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
+     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
+     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
+     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
+       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
+     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
+     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
+       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
+     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
+       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
+     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
+     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
+     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
+       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
+     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
+       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
+     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
+       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
+       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
+       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
+     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
+     286,     0,   287,     0,   288,   289,     0,     0,  1860,     0,
+       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
+       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
+       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
+     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,   331,     0,     0,   332,
+     333,     0,     0,   334,   335,   336,   337,     0,     0,     0,
+     338,   339,     0,     0,  1861,     0,   340,   341,   342,     0,
+     343,   344,   345,   346,     0,   347,   348,     0,     0,     0,
+       0,     0,     0,     0,     0,   349,   350,   351,     0,   739,
+     352,     0,   353,   354,   355,   356,   357,   358,   359,   360,
+     361,   362,   363,   364,     0,     0,   365,   366,   367,     0,
+     368,     0,   369,   370,   371,   372,   373,     0,   374,   375,
+     376,     0,     0,   377,     0,     0,     0,   378,   379,   380,
+     381,   382,     0,     0,   383,   384,   385,   386,   387,     0,
+     388,   389,     0,   390,   391,   392,     0,     0,   393,     0,
+     394,     0,   395,   396,     0,   397,   398,     0,     0,     0,
+     399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
+       0,   409,   410,     0,     0,     0,   411,   412,   413,   414,
+       0,     0,     0,   415,     0,     0,     0,   416,     0,   417,
+     418,   419,   420,     0,   421,   422,   423,   424,   425,   426,
+       0,     0,     0,     0,     0,     0,   427,   428,     0,   429,
+       0,     0,   430,     0,     0,   431,   432,   433,     0,     0,
+     434,   435,     0,   436,   437,   438,   439,   440,   441,     0,
+       0,   442,   443,   444,   445,     0,   446,   447,     0,   448,
+       0,   449,   450,   451,   452,     0,     0,   453,   454,     0,
+     455,   456,   457,   458,     0,     0,     0,     0,     0,   459,
+     460,   461,     0,     0,     0,   462,   463,   464,   465,  1863,
+     466,   467,     0,   468,   469,     0,   470,   471,     0,     0,
+     472,     0,     0,   473,     0,   474,     0,   475,   476,   477,
+       0,     0,     0,     0,     0,     0,   478,     0,     0,   479,
+       0,     0,     0,   480,   481,   482,   483,   484,   485,     0,
+       0,     0,     0,     0,     0,   486,   487,     0,   488,   489,
+     490,     0,   139,   491,   140,   141,   142,   143,   144,     0,
+       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
+     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
+       0,  2628,   156,     0,     0,     0,   157,     0,     0,   158,
+     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
+       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
+       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
+     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
+     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
+     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
+       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
+     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
+     209,   210,     0,     0,     0,  2791,   211,     0,   212,     0,
+       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
+       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
+     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
+     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
+       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
+     242,   243,     0,     0,   244,     0,     0,     0,   245,     0,
+     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
+       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
+       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
+     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
+     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
+     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
+     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
+       0,   282,   283,   620,     0,     0,     0,     0,   284,   285,
+       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
+       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
+     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
+       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
+       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
+     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
+     332,   333,     0,     0,   334,   335,   336,   337,     0,     0,
+       0,   338,   339,     0,     0,     0,     0,   340,   341,   342,
+       0,   343,   344,   345,   346,     0,   347,   348,     0,     0,
+       0,     0,     0,     0,     0,     0,   349,   350,   351,     0,
+       0,   352,     0,   353,   354,   355,   356,   357,   358,   359,
+     360,   361,   362,   363,   364,     0,     0,   365,   366,   367,
+       0,   368,     0,   369,   370,   371,   372,   373,     0,   374,
+     375,   376,     0,     0,   377,     0,     0,     0,   378,   379,
+     380,   381,   382,     0,     0,   383,   384,   385,   386,   387,
+       0,   388,   389,     0,   390,   391,   392,     0,     0,   393,
+       0,   394,     0,   395,   396,     0,   397,   398,     0,     0,
+       0,   399,   400,   401,   402,   403,   404,   405,   406,   407,
+     408,     0,   409,   410,     0,     0,     0,   411,   412,   413,
+     414,     0,     0,     0,   415,     0,     0,     0,   416,     0,
+     417,   418,   419,   420,     0,   421,   422,   423,   424,   425,
+     426,     0,     0,     0,     0,     0,     0,   427,   428,     0,
+     429,     0,     0,   430,     0,     0,   431,   432,   433,     0,
+       0,   434,   435,     0,   436,   437,   438,   439,   440,   441,
+       0,     0,   442,   443,   444,   445,     0,   446,   447,     0,
+     448,     0,   449,   450,   451,   452,     0,   136,   453,   454,
+       0,   455,   456,   457,   458,     0,     0,     0,     0,     0,
+     459,   460,   461,     0,     0,     0,   462,   463,   464,   465,
+       0,   466,   467,     0,   468,   469,     0,   470,   471,     0,
+       0,   472,     0,     0,   473,     0,   474,     0,   475,   476,
+     477,     0,     0,     0,     0,     0,     0,   478,     0,     0,
+     479,     0,     0,     0,   480,   481,   482,   483,   484,   485,
+       0,     0,     0,     0,     0,     0,   486,   487,     0,   488,
+     489,   490,     0,   139,   491,   140,   141,   142,   143,   144,
+       0,     0,   145,     0,     0,     0,   146,     0,     0,   147,
+       0,   148,   149,   150,   151,   152,   153,   154,     0,   155,
+       0,     0,     0,   156,     0,     0,     0,   157,     0,     0,
+     158,   159,   160,     0,   161,     0,   162,   163,     0,     0,
+     164,     0,     0,   165,   166,     0,   167,   168,     0,   169,
+     170,     0,   171,   172,   173,   174,   175,   176,   177,     0,
+     178,   179,   180,   181,   182,   183,   184,   185,     0,   186,
+     187,   188,   189,   190,   191,   192,   193,     0,   194,   195,
+       0,   196,   197,   198,   199,   200,     0,   201,     0,     0,
+     202,     0,     0,   203,     0,     0,     0,   204,     0,     0,
+       0,   205,   206,   207,     0,     0,   208,     0,     0,     0,
+       0,   209,   210,     0,     0,     0,     0,   211,     0,   212,
+       0,     0,     0,   213,     0,   214,   215,   216,   217,     0,
+       0,     0,   218,     0,     0,   219,   220,   221,     0,     0,
+       0,   222,     0,   223,   224,     0,   225,   226,   227,     0,
+       0,   228,   229,     0,   230,   231,   232,   233,   234,   235,
+       0,     0,   236,   237,   238,     0,     0,   239,   240,     0,
+     241,   242,   243,     0,     0,   244,     0,     0,     0,   245,
+       0,   246,     0,   247,     0,   248,   249,   250,   251,   252,
+     253,     0,   254,     0,     0,     0,   255,   256,   257,     0,
+     258,     0,     0,     0,   259,   260,     0,     0,     0,   261,
+     262,   263,   264,     0,     0,   265,   266,   267,     0,   268,
+       0,   269,     0,     0,     0,     0,   270,   271,     0,     0,
+       0,   272,     0,   273,   274,     0,   275,   276,     0,     0,
+       0,   277,     0,     0,   278,   279,   280,     0,     0,   281,
+       0,     0,   282,   283,     0,     0,     0,     0,     0,   284,
+     285,     0,   286,     0,   287,     0,   288,   289,     0,     0,
+    1860,     0,     0,     0,     0,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,     0,   303,
+     304,   305,     0,   306,   307,   308,   309,     0,   310,   311,
+       0,     0,     0,     0,   312,   313,   314,   315,   316,   317,
+       0,     0,   318,   319,     0,   320,     0,   321,     0,   322,
+     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
+       0,   332,   333,     0,     0,   334,   335,   336,   337,     0,
+       0,     0,   338,   339,     0,     0,  1861,     0,   340,   341,
+     342,     0,   343,   344,   345,   346,     0,   347,   348,     0,
+       0,     0,     0,     0,     0,     0,     0,   349,   350,   351,
+       0,   739,   352,     0,   353,   354,   355,   356,   357,   358,
+     359,   360,   361,   362,   363,   364,     0,     0,   365,   366,
+     367,     0,   368,     0,   369,   370,   371,   372,   373,     0,
+     374,   375,   376,     0,     0,   377,     0,     0,     0,   378,
+     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
+     387,     0,   388,   389,     0,   390,   391,   392,     0,     0,
+     393,     0,   394,     0,   395,   396,     0,   397,   398,     0,
+       0,     0,   399,   400,   401,  3608,   403,   404,   405,   406,
+     407,   408,     0,   409,   410,     0,     0,     0,   411,   412,
+     413,   414,     0,     0,     0,   415,     0,     0,     0,   416,
+       0,   417,   418,   419,   420,     0,   421,   422,   423,   424,
+     425,   426,     0,     0,     0,     0,     0,     0,   427,   428,
+       0,   429,     0,     0,   430,     0,     0,   431,   432,   433,
+       0,     0,   434,   435,     0,   436,   437,   438,   439,   440,
+     441,     0,     0,   442,   443,   444,   445,     0,   446,   447,
+       0,   448,     0,   449,   450,   451,   452,     0,     0,   453,
+     454,     0,   455,   456,   457,   458,     0,     0,     0,     0,
+       0,   459,   460,   461,     0,     0,     0,   462,   463,   464,
+     465,  1863,   466,   467,     0,   468,   469,     0,   470,   471,
+       0,     0,   472,     0,     0,   473,     0,   474,     0,   475,
+     476,   477,     0,     0,     0,     0,     0,     0,   478,     0,
+       0,   479,     0,     0,     0,   480,   481,   482,   483,   484,
+     485,     0,     0,     0,     0,     0,     0,   486,   487,     0,
+     488,   489,   490,     0,   139,   491,   140,   141,   142,   143,
+     144,     0,     0,   145,     0,     0,     0,   146,     0,     0,
+     147,     0,   148,   149,   150,   151,   152,   153,   154,     0,
+     155,     0,     0,     0,   156,     0,     0,     0,   157,     0,
+       0,   158,   159,   160,     0,   161,     0,   162,   163,     0,
+       0,   164,     0,     0,   165,   166,     0,   167,   168,     0,
+     169,   170,     0,   171,   172,   173,   174,   175,   176,   177,
+       0,   178,   179,   180,   181,   182,   183,   184,   185,     0,
+     186,   187,   188,   189,   190,   191,   192,   193,     0,   194,
+     195,     0,   196,   197,   198,   199,   200,     0,   201,     0,
+       0,   202,     0,     0,   203,     0,   995,     0,   204,     0,
+       0,     0,   205,   206,   207,     0,     0,   208,     0,     0,
+       0,     0,   209,   210,     0,     0,     0,     0,   211,     0,
+     212,     0,     0,     0,   213,     0,   214,   215,   216,   217,
+       0,     0,     0,   218,     0,     0,   219,   220,   221,     0,
+       0,     0,   222,     0,   223,   224,     0,   225,   226,   227,
+       0,     0,   228,   229,     0,   230,   231,   232,   233,   234,
+     235,     0,     0,   236,   237,   238,     0,     0,   239,   240,
+       0,   241,   242,   243,     0,     0,   244,     0,     0,     0,
+     245,     0,   246,     0,   247,     0,   248,   249,   250,   251,
+     252,   253,     0,   254,     0,     0,     0,   255,   256,   257,
+       0,   258,     0,     0,     0,   259,   260,     0,     0,     0,
+     261,   262,   263,   264,     0,     0,   265,   266,   267,     0,
+     268,     0,   269,     0,     0,     0,     0,   270,   271,     0,
+       0,     0,   272,     0,   273,   274,     0,   275,   276,     0,
+       0,     0,   277,     0,     0,   278,   279,   280,     0,     0,
+     281,     0,     0,   282,   283,   620,     0,     0,     0,     0,
+     284,   285,     0,   286,     0,   287,     0,   288,   289,     0,
+       0,     0,     0,     0,     0,     0,   290,   291,   292,   293,
+     294,   295,   296,   297,   298,   299,   300,   301,   302,     0,
+     303,   304,   305,     0,   306,   307,   308,   309,     0,   310,
+     311,     0,     0,     0,     0,   312,   313,   314,   315,   316,
+     317,     0,     0,   318,   319,     0,   320,     0,   321,     0,
+     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
+       0,     0,   332,   333,     0,     0,   334,   335,   336,   337,
+       0,     0,     0,   338,   339,     0,     0,     0,     0,   340,
+     341,   342,     0,   343,   344,   345,   346,     0,   347,   348,
+       0,     0,     0,     0,     0,     0,     0,     0,   349,   350,
+     351,     0,     0,   352,     0,   353,   354,   355,   356,   357,
+     358,   359,   360,   361,   362,   363,   364,     0,     0,   365,
+     366,   367,     0,   368,     0,   369,   370,   371,   372,   373,
+       0,   374,   375,   376,     0,     0,   377,     0,     0,     0,
+     378,   379,   380,   381,   382,     0,     0,   383,   384,   385,
+     386,   387,     0,   388,   389,     0,   390,   391,   392,     0,
+       0,   393,     0,   394,     0,   395,   396,     0,   397,   398,
+       0,     0,     0,   399,   400,   401,   402,   403,   404,   405,
+     406,   407,   408,     0,   409,   410,     0,     0,     0,   411,
+     412,   413,   414,     0,     0,     0,   415,     0,     0,     0,
+     416,     0,   417,   418,   419,   420,     0,   421,   422,   423,
+     424,   425,   426,     0,     0,     0,     0,     0,     0,   427,
+     428,     0,   429,     0,     0,   430,     0,     0,   431,   432,
+     433,     0,     0,   434,   435,     0,   436,   437,   438,   439,
+     440,   441,     0,     0,   442,   443,   444,   445,     0,   446,
+     447,     0,   448,     0,   449,   450,   451,   452,     0,   136,
+     453,   454,     0,   455,   456,   457,   458,     0,     0,     0,
+       0,     0,   459,   460,   461,     0,     0,     0,   462,   463,
+     464,   465,     0,   466,   467,     0,   468,   469,     0,   470,
+     471,     0,     0,   472,     0,     0,   473,     0,   474,     0,
+     475,   476,   477,     0,     0,     0,     0,     0,     0,   478,
+       0,     0,   479,     0,     0,     0,   480,   481,   482,   483,
+     484,   485,     0,     0,     0,     0,     0,     0,   486,   487,
+       0,   488,   489,   490,     0,   139,   491,   140,   141,   142,
+     143,   144,  1384,     0,   145,     0,     0,     0,   146,     0,
+       0,   147,     0,   148,   149,   150,   151,   152,   153,   154,
+       0,   155,     0,     0,     0,   156,     0,     0,     0,   157,
+       0,     0,   158,   159,   160,     0,   161,     0,   162,   163,
+       0,     0,   164,     0,     0,   165,   166,     0,   167,   168,
+       0,   169,   170,     0,   171,   172,   173,   174,   175,   176,
+     177,     0,   178,   179,   180,   181,   182,   183,   184,   185,
+       0,   186,   187,   188,   189,   190,   191,   192,   193,     0,
+     194,   195,     0,   196,   197,   198,   199,   200,     0,   201,
+       0,     0,   202,     0,     0,   203,     0,     0,     0,   204,
+       0,     0,     0,   205,   206,   207,     0,     0,   208,     0,
+       0,     0,     0,   209,   210,     0,     0,     0,     0,   211,
+       0,   212,     0,     0,     0,   213,     0,   214,   215,   216,
+     217,     0,     0,     0,   218,     0,     0,   219,   220,   221,
+       0,     0,     0,   222,     0,   223,   224,     0,   225,   226,
+     227,     0,     0,   228,   229,     0,   230,   231,   232,   233,
+     234,   235,     0,     0,   236,   237,   238,     0,     0,   239,
+     240,     0,   241,   242,   243,     0,     0,   244,     0,     0,
+       0,   245,     0,   246,     0,   247,     0,   248,   249,   250,
+     251,   252,   253,     0,   254,     0,     0,     0,   255,   256,
+     257,     0,   258,     0,     0,     0,   259,   260,     0,     0,
+       0,   261,   262,   263,   264,     0,     0,   265,   266,   267,
+       0,   268,     0,   269,     0,     0,     0,     0,   270,   271,
+       0,     0,     0,   272,     0,   273,   274,     0,   275,   276,
+       0,     0,     0,   277,     0,     0,   278,   279,   280,     0,
+       0,   281,     0,     0,   282,   283,   620,     0,     0,     0,
+       0,   284,   285,     0,   286,     0,   287,     0,   288,   289,
+       0,     0,     0,     0,     0,     0,     0,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+       0,   303,   304,   305,     0,   306,   307,   308,   309,     0,
+     310,   311,     0,     0,     0,     0,   312,   313,   314,   315,
+     316,   317,     0,     0,   318,   319,     0,   320,     0,   321,
+       0,   322,   323,   324,   325,   326,   327,   328,   329,   330,
+     331,     0,     0,   332,   333,     0,     0,   334,   335,   336,
+     337,     0,     0,     0,   338,   339,     0,     0,     0,     0,
+     340,   341,   342,     0,   343,   344,   345,   346,     0,   347,
+     348,     0,     0,     0,     0,     0,     0,     0,     0,   349,
+     350,   351,     0,     0,   352,     0,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
+     365,   366,   367,     0,   368,     0,   369,   370,   371,   372,
+     373,     0,   374,   375,   376,     0,     0,   377,     0,     0,
+       0,   378,   379,   380,   381,   382,     0,     0,   383,   384,
+     385,   386,   387,     0,   388,   389,     0,   390,   391,   392,
+       0,     0,   393,     0,   394,     0,   395,   396,     0,   397,
+     398,     0,     0,     0,   399,   400,   401,   402,   403,   404,
+     405,   406,   407,   408,     0,   409,   410,     0,     0,     0,
+     411,   412,   413,   414,     0,     0,     0,   415,     0,     0,
+       0,   416,     0,   417,   418,   419,   420,     0,   421,   422,
+     423,   424,   425,   426,     0,     0,     0,     0,     0,     0,
+     427,   428,     0,   429,     0,     0,   430,     0,     0,   431,
+     432,   433,     0,     0,   434,   435,     0,   436,   437,   438,
+     439,   440,   441,     0,     0,   442,   443,   444,   445,     0,
+     446,   447,     0,   448,     0,   449,   450,   451,   452,     0,
+     136,   453,   454,     0,   455,   456,   457,   458,     0,     0,
+       0,     0,     0,   459,   460,   461,     0,     0,     0,   462,
+     463,   464,   465,     0,   466,   467,     0,   468,   469,     0,
+     470,   471,     0,     0,   472,     0,     0,   473,     0,   474,
+       0,   475,   476,   477,     0,     0,     0,     0,     0,     0,
+     478,     0,     0,   479,     0,     0,     0,   480,   481,   482,
+     483,   484,   485,     0,     0,     0,     0,     0,     0,   486,
+     487,     0,   488,   489,   490,     0,   139,   491,   140,   141,
+     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
+       0,     0,   147,     0,   148,   149,   150,   151,   152,   153,
+     154,     0,   155,     0,     0,  2628,   156,     0,     0,     0,
+     157,     0,     0,   158,   159,   160,     0,   161,     0,   162,
+     163,     0,     0,   164,     0,     0,   165,   166,     0,   167,
+     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
+     176,   177,     0,   178,   179,   180,   181,   182,   183,   184,
+     185,     0,   186,   187,   188,   189,   190,   191,   192,   193,
+       0,   194,   195,     0,   196,   197,   198,   199,   200,     0,
+     201,     0,     0,   202,     0,     0,   203,     0,     0,     0,
+     204,     0,     0,     0,   205,   206,   207,     0,     0,   208,
+       0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
+     211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
+     216,   217,     0,     0,     0,   218,     0,     0,   219,   220,
+     221,     0,     0,     0,   222,     0,   223,   224,     0,   225,
+     226,   227,     0,     0,   228,   229,     0,   230,   231,   232,
+     233,   234,   235,     0,     0,   236,   237,   238,     0,     0,
+     239,   240,     0,   241,   242,   243,     0,     0,   244,     0,
+       0,     0,   245,     0,   246,     0,   247,     0,   248,   249,
+     250,   251,   252,   253,     0,   254,     0,     0,     0,   255,
+     256,   257,     0,   258,     0,     0,     0,   259,   260,     0,
+       0,     0,   261,   262,   263,   264,     0,     0,   265,   266,
+     267,     0,   268,     0,   269,     0,     0,     0,     0,   270,
+     271,     0,     0,     0,   272,     0,   273,   274,     0,   275,
+     276,     0,     0,     0,   277,     0,     0,   278,   279,   280,
+       0,     0,   281,     0,     0,   282,   283,   620,     0,     0,
+       0,     0,   284,   285,     0,   286,     0,   287,     0,   288,
+     289,     0,     0,     0,     0,     0,     0,     0,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
+     302,     0,   303,   304,   305,     0,   306,   307,   308,   309,
+       0,   310,   311,     0,     0,     0,     0,   312,   313,   314,
+     315,   316,   317,     0,     0,   318,   319,     0,   320,     0,
+     321,     0,   322,   323,   324,   325,   326,   327,   328,   329,
+     330,   331,     0,     0,   332,   333,     0,     0,   334,   335,
+     336,   337,     0,     0,     0,   338,   339,     0,     0,     0,
+       0,   340,   341,   342,     0,   343,   344,   345,   346,     0,
+     347,   348,     0,     0,     0,     0,     0,     0,     0,     0,
+     349,   350,   351,     0,     0,   352,     0,   353,   354,   355,
+     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
+       0,   365,   366,   367,     0,   368,     0,   369,   370,   371,
+     372,   373,     0,   374,   375,   376,     0,     0,   377,     0,
+       0,     0,   378,   379,   380,   381,   382,     0,     0,   383,
+     384,   385,   386,   387,     0,   388,   389,     0,   390,   391,
+     392,     0,     0,   393,     0,   394,     0,   395,   396,     0,
+     397,   398,     0,     0,     0,   399,   400,   401,   402,   403,
+     404,   405,   406,   407,   408,     0,   409,   410,     0,     0,
+       0,   411,   412,   413,   414,     0,     0,     0,   415,     0,
+       0,     0,   416,     0,   417,   418,   419,   420,     0,   421,
+     422,   423,   424,   425,   426,     0,     0,     0,     0,     0,
+       0,   427,   428,     0,   429,     0,     0,   430,     0,     0,
+     431,   432,   433,     0,     0,   434,   435,     0,   436,   437,
+     438,   439,   440,   441,     0,     0,   442,   443,   444,   445,
+       0,   446,   447,     0,   448,     0,   449,   450,   451,   452,
+       0,   136,   453,   454,     0,   455,   456,   457,   458,     0,
+       0,     0,     0,     0,   459,   460,   461,     0,     0,     0,
+     462,   463,   464,   465,     0,   466,   467,     0,   468,   469,
+       0,   470,   471,     0,     0,   472,     0,     0,   473,     0,
+     474,     0,   475,   476,   477,     0,     0,     0,     0,     0,
+       0,   478,     0,     0,   479,     0,     0,     0,   480,   481,
+     482,   483,   484,   485,     0,     0,     0,     0,     0,     0,
+     486,   487,     0,   488,   489,   490,     0,   139,   491,   140,
+     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
+     146,     0,     0,   147,     0,   148,   149,   150,   151,   152,
+     153,   154,     0,   155,     0,     0,     0,   156,     0,     0,
+       0,   157,     0,     0,   158,   159,   160,     0,   161,     0,
+     162,   163,     0,     0,   164,     0,     0,   165,   166,     0,
+     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
+     175,   176,   177,     0,   178,   179,   180,   181,   182,   183,
+     184,   185,     0,   186,   187,   188,   189,   190,   191,   192,
+     193,     0,   194,   195,     0,   196,   197,   198,   199,   200,
+       0,   201,     0,     0,   202,     0,     0,   203,     0,     0,
+       0,   204,     0,     0,     0,   205,   206,   207,     0,     0,
+     208,     0,     0,     0,     0,   209,   210,     0,     0,     0,
+    2842,   211,     0,   212,     0,     0,     0,   213,     0,   214,
+     215,   216,   217,     0,     0,     0,   218,     0,     0,   219,
+     220,   221,     0,     0,     0,   222,     0,   223,   224,     0,
+     225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
+     232,   233,   234,   235,     0,     0,   236,   237,   238,     0,
+       0,   239,   240,     0,   241,   242,   243,     0,     0,   244,
+       0,     0,     0,   245,     0,   246,     0,   247,     0,   248,
+     249,   250,   251,   252,   253,     0,   254,     0,     0,     0,
+     255,   256,   257,     0,   258,     0,     0,     0,   259,   260,
+       0,     0,     0,   261,   262,   263,   264,     0,     0,   265,
+     266,   267,     0,   268,     0,   269,     0,     0,     0,     0,
+     270,   271,     0,     0,     0,   272,     0,   273,   274,     0,
+     275,   276,     0,     0,     0,   277,     0,     0,   278,   279,
+     280,     0,     0,   281,     0,     0,   282,   283,   620,     0,
+       0,     0,     0,   284,   285,     0,   286,     0,   287,     0,
+     288,   289,     0,     0,     0,     0,     0,     0,     0,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
+     301,   302,     0,   303,   304,   305,     0,   306,   307,   308,
+     309,     0,   310,   311,     0,     0,     0,     0,   312,   313,
+     314,   315,   316,   317,     0,     0,   318,   319,     0,   320,
+       0,   321,     0,   322,   323,   324,   325,   326,   327,   328,
+     329,   330,   331,     0,     0,   332,   333,     0,     0,   334,
+     335,   336,   337,     0,     0,     0,   338,   339,     0,     0,
+       0,     0,   340,   341,   342,     0,   343,   344,   345,   346,
+       0,   347,   348,     0,     0,     0,     0,     0,     0,     0,
+       0,   349,   350,   351,     0,     0,   352,     0,   353,   354,
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+       0,     0,   365,   366,   367,     0,   368,     0,   369,   370,
+     371,   372,   373,     0,   374,   375,   376,     0,     0,   377,
+       0,     0,     0,   378,   379,   380,   381,   382,     0,     0,
+     383,   384,   385,   386,   387,     0,   388,   389,     0,   390,
+     391,   392,     0,     0,   393,     0,   394,     0,   395,   396,
+       0,   397,   398,     0,     0,     0,   399,   400,   401,   402,
+     403,   404,   405,   406,   407,   408,     0,   409,   410,     0,
+       0,     0,   411,   412,   413,   414,     0,     0,     0,   415,
+       0,     0,     0,   416,     0,   417,   418,   419,   420,     0,
+     421,   422,   423,   424,   425,   426,     0,     0,     0,     0,
+       0,     0,   427,   428,     0,   429,     0,     0,   430,     0,
+       0,   431,   432,   433,     0,     0,   434,   435,     0,   436,
+     437,   438,   439,   440,   441,     0,     0,   442,   443,   444,
+     445,     0,   446,   447,     0,   448,     0,   449,   450,   451,
+     452,     0,   136,   453,   454,     0,   455,   456,   457,   458,
+       0,     0,     0,     0,     0,   459,   460,   461,     0,     0,
+       0,   462,   463,   464,   465,     0,   466,   467,     0,   468,
+     469,     0,   470,   471,     0,     0,   472,     0,     0,   473,
+       0,   474,     0,   475,   476,   477,     0,     0,     0,     0,
+       0,     0,   478,     0,     0,   479,     0,     0,     0,   480,
+     481,   482,   483,   484,   485,     0,     0,     0,     0,     0,
+       0,   486,   487,     0,   488,   489,   490,     0,   139,   491,
+     140,   141,   142,   143,   144,     0,     0,   145,     0,     0,
+       0,   146,     0,     0,   147,     0,   148,   149,   150,   151,
+     152,   153,   154,     0,   155,     0,     0,     0,   156,     0,
+       0,     0,   157,     0,     0,   158,   159,   160,     0,   161,
+       0,   162,   163,     0,     0,   164,     0,     0,   165,   166,
+       0,   167,   168,     0,   169,   170,     0,   171,   172,   173,
+     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
+     183,   184,   185,     0,   186,   187,   188,   189,   190,   191,
+     192,   193,     0,   194,   195,     0,   196,   197,   198,   199,
+     200,     0,   201,     0,     0,   202,     0,     0,   203,     0,
+       0,     0,   204,     0,     0,     0,   205,   206,   207,     0,
+       0,   208,     0,     0,     0,     0,   209,   210,     0,     0,
+       0,     0,   211,     0,   212,     0,     0,     0,   213,     0,
+     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
+     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
+       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
+     231,   232,   233,   234,   235,     0,     0,   236,   237,   238,
+       0,     0,   239,   240,     0,   241,   242,   243,     0,     0,
+     244,     0,     0,     0,   245,     0,   246,     0,   247,     0,
+     248,   249,   250,   251,   252,   253,     0,   254,     0,     0,
+       0,   255,   256,   257,     0,   258,     0,     0,     0,   259,
+     260,     0,     0,     0,   261,   262,   263,   264,     0,     0,
+     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
+       0,   270,   271,     0,     0,     0,   272,     0,   273,   274,
+       0,   275,   276,     0,     0,     0,   277,     0,     0,   278,
+     279,   280,     0,     0,   281,     0,     0,   282,   283,   620,
+       0,     0,     0,     0,   284,   285,     0,   286,     0,   287,
+       0,   288,   289,     0,     0,     0,     0,     0,     0,     0,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,     0,   303,   304,   305,     0,   306,   307,
+     308,   309,     0,   310,   311,     0,     0,     0,     0,   312,
+     313,   314,   315,   316,   317,     0,     0,   318,   319,     0,
+     320,     0,   321,     0,   322,   323,   324,   325,   326,   327,
+     328,   329,   330,   331,     0,     0,   332,   333,     0,     0,
+     334,   335,   336,   337,     0,     0,     0,   338,   339,     0,
+       0,     0,     0,   340,   341,   342,     0,   343,   344,   345,
+     346,     0,   347,   348,     0,     0,     0,     0,     0,     0,
+       0,     0,   349,   350,   351,     0,     0,   352,     0,   353,
+     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
+     364,     0,     0,   365,   366,   367,     0,   368,     0,   369,
+     370,   371,   372,   373,     0,   374,   375,   376,     0,     0,
+     377,     0,     0,     0,   378,   379,   380,   381,   382,     0,
+       0,   383,   384,   385,   386,   387,     0,   388,   389,     0,
+     390,   391,   392,     0,     0,   393,     0,   394,     0,   395,
+     396,     0,   397,   398,     0,     0,     0,   399,   400,   401,
+     402,   403,   404,   405,   406,   407,   408,     0,   409,   410,
+       0,     0,     0,   411,   412,   413,   414,     0,     0,     0,
+     415,     0,     0,     0,   416,     0,   417,   418,   419,   420,
+       0,   421,   422,   423,   424,   425,   426,     0,     0,     0,
+       0,     0,     0,   427,   428,     0,   429,     0,     0,   430,
+       0,     0,   431,   432,   433,     0,     0,   434,   435,     0,
+     436,   437,   438,   439,   440,   441,     0,     0,   442,   443,
+     444,   445,     0,   446,   447,     0,   448,     0,   449,   450,
+     451,   452,     0,   136,   453,   454,     0,   455,   456,   457,
+     458,     0,     0,     0,     0,     0,   459,   460,   461,     0,
+       0,     0,   462,   463,   464,   465,     0,   466,   467,     0,
+     468,   469,     0,   470,   471,     0,     0,   472,     0,     0,
+     473,     0,   474,     0,   475,   476,   477,     0,     0,     0,
+       0,     0,     0,   478,     0,     0,   479,     0,     0,     0,
+     480,   481,   482,   483,   484,   485,     0,     0,     0,     0,
+       0,     0,   486,   487,     0,   488,   489,   490,     0,   139,
+     491,   140,   141,   142,   143,   144,     0,     0,   145,     0,
+       0,     0,   146,  2781,     0,   147,     0,   148,   149,   150,
+     151,   152,   153,   154,     0,   155,     0,     0,     0,   156,
+       0,     0,     0,   157,     0,     0,   158,   159,   160,     0,
+     161,     0,   162,   163,     0,     0,   164,     0,     0,   165,
+     166,     0,   167,   168,     0,   169,   170,     0,   171,   172,
+     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
+     182,   183,   184,   185,     0,   186,   187,   188,   189,   190,
+     191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
+     199,   200,     0,   201,     0,     0,   202,     0,     0,   203,
+       0,     0,     0,   204,     0,     0,     0,   205,   206,   207,
+       0,     0,   208,     0,     0,     0,     0,   209,   210,     0,
+       0,     0,     0,   211,     0,   212,     0,     0,     0,   213,
+       0,   214,   215,   216,   217,     0,     0,     0,   218,     0,
+       0,   219,   220,   221,     0,     0,     0,   222,     0,   223,
+     224,     0,   225,   226,   227,     0,     0,   228,   229,     0,
+     230,   231,   232,   233,   234,   235,     0,     0,   236,   237,
+     238,     0,     0,   239,   240,     0,   241,   242,   243,     0,
+       0,   244,     0,     0,     0,   245,     0,   246,     0,   247,
+       0,   248,   249,   250,   251,   252,   253,     0,   254,     0,
+       0,     0,   255,   256,   257,     0,   258,     0,     0,     0,
+     259,   260,     0,     0,     0,   261,   262,   263,   264,     0,
+       0,   265,   266,   267,     0,   268,     0,   269,     0,     0,
+       0,     0,   270,   271,     0,     0,     0,   272,     0,   273,
+     274,     0,   275,   276,     0,     0,     0,   277,     0,     0,
+     278,   279,   280,     0,     0,   281,     0,     0,   282,   283,
+       0,     0,     0,     0,     0,   284,   285,     0,   286,     0,
+     287,     0,   288,   289,     0,     0,     0,     0,     0,     0,
+       0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,   300,   301,   302,     0,   303,   304,   305,     0,   306,
+     307,   308,   309,     0,   310,   311,     0,     0,     0,     0,
+     312,   313,   314,   315,   316,   317,     0,     0,   318,   319,
+       0,   320,     0,   321,     0,   322,   323,   324,   325,   326,
+     327,   328,   329,   330,   331,     0,     0,   332,   333,     0,
+       0,   334,   335,   336,   337,     0,     0,     0,   338,   339,
+       0,     0,     0,     0,   340,   341,   342,     0,   343,   344,
+     345,   346,     0,   347,   348,     0,     0,     0,     0,     0,
+       0,     0,     0,   349,   350,   351,     0,     0,   352,     0,
+     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
+     363,   364,     0,     0,   365,   366,   367,     0,   368,     0,
+     369,   370,   371,   372,   373,     0,   374,   375,   376,     0,
+       0,   377,     0,     0,     0,   378,   379,   380,   381,   382,
+       0,     0,   383,   384,   385,   386,   387,     0,   388,   389,
+       0,   390,   391,   392,     0,     0,   393,     0,   394,     0,
+     395,   396,     0,   397,   398,     0,     0,     0,   399,   400,
+     401,   402,   403,   404,   405,   406,   407,   408,     0,   409,
+     410,     0,     0,     0,   411,   412,   413,   414,     0,     0,
+       0,   415,     0,     0,     0,   416,     0,   417,   418,   419,
+     420,     0,   421,   422,   423,   424,   425,   426,     0,     0,
+       0,     0,     0,     0,   427,   428,     0,   429,     0,     0,
+     430,     0,     0,   431,   432,   433,     0,     0,   434,   435,
+       0,   436,   437,   438,   439,   440,   441,     0,     0,   442,
+     443,   444,   445,     0,   446,   447,     0,   448,     0,   449,
+     450,   451,   452,     0,   136,   453,   454,     0,   455,   456,
+     457,   458,     0,     0,     0,     0,     0,   459,   460,   461,
+       0,     0,     0,   462,   463,   464,   465,     0,   466,   467,
+       0,   468,   469,     0,   470,   471,     0,     0,   472,     0,
+       0,   473,     0,   474,     0,   475,   476,   477,     0,     0,
+       0,     0,     0,     0,   478,     0,     0,   479,     0,     0,
+       0,   480,   481,   482,   483,   484,   485,     0,     0,     0,
+       0,     0,     0,   486,   487,     0,   488,   489,   490,     0,
+     139,   491,   140,   141,   142,   143,   144,     0,     0,   145,
+       0,     0,     0,   146,     0,     0,   147,     0,   148,   149,
+     150,   151,   152,   153,   154,     0,   155,     0,     0,     0,
+     156,     0,     0,     0,   157,     0,     0,   158,   159,   160,
+       0,   161,     0,   162,   163,     0,     0,   164,     0,     0,
+     165,   166,     0,   167,   168,     0,   169,   170,     0,   171,
+     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
+     181,   182,   183,   184,   185,     0,   186,   187,   188,   189,
+     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
+     198,   199,   200,  4342,   201,     0,     0,   202,     0,     0,
+     203,     0,     0,     0,   204,     0,     0,     0,   205,   206,
+     207,     0,     0,   208,     0,     0,     0,     0,   209,   210,
+       0,     0,     0,     0,   211,     0,   212,     0,     0,     0,
+     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
+       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
+     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
+       0,   230,   231,   232,   233,   234,   235,     0,  4343,   236,
+     237,   238,     0,     0,   239,   240,     0,   241,   242,   243,
+       0,     0,   244,     0,     0,     0,   245,     0,   246,     0,
+     247,     0,   248,   249,   250,   251,   252,   253,     0,   254,
+       0,     0,     0,   255,   256,   257,     0,   258,     0,     0,
+       0,   259,   260,     0,     0,     0,   261,   262,   263,   264,
+       0,     0,   265,   266,   267,     0,   268,     0,   269,     0,
+       0,     0,     0,   270,   271,     0,     0,     0,   272,     0,
+     273,   274,     0,   275,   276,     0,     0,     0,   277,     0,
+       0,   278,   279,   280,     0,     0,   281,     0,     0,   282,
+     283,     0,     0,     0,     0,     0,   284,   285,     0,   286,
+       0,   287,     0,   288,   289,     0,     0,     0,     0,     0,
+       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,     0,   303,   304,   305,     0,
+     306,   307,   308,   309,     0,   310,   311,     0,     0,     0,
+       0,   312,   313,   314,   315,   316,   317,     0,     0,   318,
+     319,     0,   320,     0,   321,     0,   322,   323,   324,   325,
+     326,   327,   328,   329,   330,   331,     0,     0,   332,   333,
+       0,     0,   334,   335,   336,   337,     0,     0,     0,   338,
+     339,     0,     0,     0,     0,   340,   341,   342,     0,   343,
+     344,   345,   346,     0,   347,   348,     0,     0,     0,     0,
+       0,     0,     0,     0,   349,   350,   351,     0,     0,   352,
+       0,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,     0,     0,   365,   366,   367,     0,   368,
+       0,   369,   370,   371,   372,   373,     0,   374,   375,   376,
+       0,     0,   377,     0,     0,     0,   378,   379,   380,   381,
+     382,     0,     0,   383,   384,   385,   386,   387,     0,   388,
+     389,     0,   390,   391,   392,     0,     0,   393,     0,   394,
+       0,   395,   396,     0,   397,   398,     0,     0,     0,   399,
+     400,   401,   402,   403,   404,   405,   406,   407,   408,     0,
+     409,   410,     0,     0,     0,   411,   412,   413,   414,     0,
+       0,     0,   415,     0,     0,     0,   416,     0,   417,   418,
+     419,   420,     0,   421,   422,   423,   424,   425,   426,     0,
+       0,     0,     0,     0,     0,   427,   428,     0,   429,     0,
+       0,   430,     0,     0,   431,   432,   433,     0,     0,   434,
+     435,     0,   436,   437,   438,   439,   440,   441,     0,     0,
+     442,   443,   444,   445,     0,   446,   447,     0,   448,     0,
+     449,   450,   451,   452,     0,     0,   453,   454,     0,   455,
+     456,   457,   458,     0,     0,     0,     0,     0,   459,   460,
+     461,     0,     0,     0,   462,   463,   464,   465,     0,   466,
+     467,     0,   468,   469,     0,   470,   471,     0,     0,   472,
+       0,     0,   473,     0,   474,     0,   475,   476,   477,     0,
+       0,     0,     0,     0,     0,   478,     0,     0,   479,     0,
+       0,     0,   480,   481,   482,   483,   484,   485,     0,     0,
+       0,     0,     0,     0,   486,   487,     0,   488,   489,   490,
+       0,   139,   491,   140,   141,   142,   143,   144,     0,     0,
+     145,     0,     0,     0,   146,     0,     0,   147,     0,   148,
+     149,   150,   151,   152,   153,   154,     0,   155,     0,     0,
+       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
+     160,     0,   161,     0,   162,   163,     0,     0,   164,     0,
+       0,   165,   166,     0,   167,   168,     0,   169,   170,     0,
+     171,   172,   173,   174,   175,   176,   177,     0,   178,   179,
+     180,   181,   182,   183,   184,   185,     0,   186,   187,   188,
+     189,   190,   191,   192,   193,     0,   194,   195,     0,   196,
+     197,   198,   199,   200,     0,   201,     0,     0,   202,     0,
+       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
+     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
+     210,     0,     0,     0,     0,   211,     0,   212,     0,     0,
+       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
+     218,     0,     0,   219,   220,   221,     0,     0,     0,   222,
+       0,   223,   224,     0,   225,   226,   227,     0,     0,   228,
+     229,     0,   230,   231,   232,   233,   234,   235,     0,     0,
+     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
+     243,     0,     0,   244,     0,     0,     0,   245,     0,   246,
+       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
+     254,     0,     0,     0,   255,   256,   257,     0,   258,     0,
+       0,     0,   259,   260,     0,     0,     0,   261,   262,   263,
+     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
+       0,     0,     0,     0,   270,   271,     0,     0,     0,   272,
+       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
+       0,     0,   278,   279,   280,     0,     0,   281,     0,     0,
+     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
+     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
+       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
+       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
+       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
+     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,   331,     0,     0,   332,
+     333,     0,     0,   334,   335,   336,   337,     0,     0,     0,
+     338,   339,     0,     0,     0,     0,   340,   341,   342,     0,
+     343,   344,   345,   346,     0,   347,   348,     0,     0,     0,
+       0,     0,     0,     0,     0,   349,   350,   351,     0,     0,
+     352,     0,   353,   354,   355,   356,   357,   358,   359,   360,
+     361,   362,   363,   364,     0,     0,   365,   366,   367,     0,
+     368,     0,   369,   370,   371,   372,   373,     0,   374,   375,
+     376,     0,     0,   377,     0,     0,     0,   378,   379,   380,
+     381,   382,     0,     0,   383,   384,   385,   386,   387,     0,
+     388,   389,     0,   390,   391,   392,     0,     0,   393,     0,
+     394,     0,   395,   396,     0,   397,   398,     0,     0,     0,
+     399,   400,   401,   402,   403,   404,   405,   406,   407,   408,
+       0,   409,   410,     0,     0,     0,   411,   412,   413,   414,
+       0,     0,     0,   415,     0,     0,     0,   416,     0,   417,
+     418,   419,   420,     0,   421,   422,   423,   424,   425,   426,
+       0,     0,     0,   566,     0,     0,   427,   428,     0,   429,
+       0,     0,   430,     0,     0,   431,   432,   433,     0,     0,
+     434,   435,     0,   436,   437,   438,   439,   440,   441,     0,
+       0,   442,   443,   444,   445,     0,   446,   447,     0,   448,
+       0,   449,   450,   451,   452,     0,     0,   453,   454,     0,
+     455,   456,   457,   458,     0,     0,     0,     0,     0,   459,
+     460,   461,     0,     0,     0,   462,   463,   464,   465,     0,
+     466,   467,     0,   468,   469,     0,   470,   471,     0,     0,
+     472,     0,     0,   473,     0,   474,     0,   475,   476,   477,
+       0,     0,     0,     0,     0,     0,   478,     0,     0,   479,
+       0,     0,     0,   480,   481,   482,   483,   484,   485,     0,
+       0,     0,     0,     0,     0,   486,   487,     0,   488,   489,
+     490,     0,   139,   491,   140,   141,   142,   143,   144,     0,
+       0,   145,     0,     0,     0,   146,     0,     0,   147,     0,
+     148,   149,   150,   151,   152,   153,   154,     0,   155,     0,
+       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
+     159,   160,     0,   161,     0,   162,   163,     0,     0,   164,
+       0,     0,   165,   166,     0,   167,   168,     0,   169,   170,
+       0,   171,   172,   173,   174,   175,   176,   177,     0,   178,
+     179,   180,   181,   182,   183,   184,   185,     0,   186,   187,
+     188,   189,   190,   191,   192,   193,     0,   194,   195,     0,
+     196,   197,   198,   199,   200,     0,   201,     0,     0,   202,
+       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
+     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
+     209,   210,     0,     0,     0,     0,   211,     0,   212,     0,
+       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
+       0,   218,     0,     0,   219,   220,   221,     0,     0,     0,
+     222,     0,   223,   224,     0,   225,   226,   227,     0,     0,
+     228,   229,     0,   230,   231,   232,   233,   234,   235,     0,
+       0,   236,   237,   238,     0,     0,   239,   240,     0,   241,
+     242,   243,     0,     0,   244,     0,     0,     0,   245,  1073,
+     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
+       0,   254,     0,     0,     0,   255,   256,   257,     0,   258,
+       0,     0,     0,   259,   260,     0,     0,     0,   261,   262,
+     263,   264,     0,     0,   265,   266,   267,     0,   268,     0,
+     269,     0,     0,     0,     0,   270,   271,     0,     0,     0,
+     272,     0,   273,   274,     0,   275,   276,     0,     0,     0,
+     277,     0,     0,   278,   279,   280,     0,     0,   281,     0,
+       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
+       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
+       0,     0,     0,     0,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
+     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
+       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
+       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
+     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
+     332,   333,     0,     0,   334,   335,   336,   337,     0,     0,
+       0,   338,   339,     0,     0,     0,     0,   340,   341,   342,
+       0,   343,   344,   345,   346,     0,   347,   348,     0,     0,
+       0,     0,     0,     0,     0,     0,   349,   350,   351,     0,
+       0,   352,     0,   353,   354,   355,   356,   357,   358,   359,
+     360,   361,   362,   363,   364,     0,     0,   365,   366,   367,
+       0,   368,     0,   369,   370,   371,   372,   373,     0,   374,
+     375,   376,     0,     0,   377,     0,     0,     0,   378,   379,
+     380,   381,   382,     0,     0,   383,   384,   385,   386,   387,
+       0,   388,   389,     0,   390,   391,   392,     0,     0,   393,
+       0,   394,     0,   395,   396,     0,   397,   398,     0,     0,
+       0,   399,   400,   401,   402,   403,   404,   405,   406,   407,
+     408,     0,   409,   410,     0,     0,     0,   411,   412,   413,
+     414,     0,     0,     0,   415,     0,     0,     0,   416,     0,
+     417,   418,   419,   420,     0,   421,   422,   423,   424,   425,
+     426,     0,     0,     0,     0,     0,     0,   427,   428,     0,
+     429,     0,     0,   430,     0,     0,   431,   432,   433,     0,
+       0,   434,   435,     0,   436,   437,   438,   439,   440,   441,
+       0,     0,   442,   443,   444,   445,     0,   446,   447,     0,
+     448,     0,   449,   450,   451,   452,     0,     0,   453,   454,
+       0,   455,   456,   457,   458,     0,     0,     0,     0,     0,
+     459,   460,   461,     0,     0,     0,   462,   463,   464,   465,
+       0,   466,   467,     0,   468,   469,     0,   470,   471,     0,
+       0,   472,     0,     0,   473,     0,   474,     0,   475,   476,
+     477,     0,     0,     0,     0,     0,     0,   478,     0,     0,
+     479,     0,     0,     0,   480,   481,   482,   483,   484,   485,
+       0,     0,     0,     0,     0,     0,   486,   487,     0,   488,
+     489,   490,     0,   139,   491,   140,   141,   142,   143,   144,
+       0,     0,   145,     0,     0,     0,   146,     0,     0,   147,
+       0,   148,   149,   150,   151,   152,   153,   154,     0,   155,
+       0,     0,     0,   156,     0,     0,     0,   157,     0,     0,
+     158,   159,   160,     0,   161,     0,   162,   163,     0,     0,
+     164,     0,     0,   165,   166,     0,   167,   168,     0,   169,
+     170,     0,   171,   172,   173,   174,   175,   176,   177,     0,
+     178,   179,   180,   181,   182,   183,   184,   185,     0,   186,
+     187,   188,   189,   190,   191,   192,   193,     0,   194,   195,
+       0,   196,   197,   198,   199,   200,     0,   201,     0,     0,
+     202,     0,     0,   203,     0,     0,     0,   204,     0,     0,
+       0,   205,   206,   207,     0,     0,   208,     0,     0,     0,
+       0,   209,   210,     0,     0,     0,  2026,   211,     0,   212,
+       0,     0,     0,   213,     0,   214,   215,   216,   217,     0,
+       0,     0,   218,     0,     0,   219,   220,   221,     0,     0,
+       0,   222,     0,   223,   224,     0,   225,   226,   227,     0,
+       0,   228,   229,     0,   230,   231,   232,   233,   234,   235,
+       0,     0,   236,   237,   238,     0,     0,   239,   240,     0,
+     241,   242,   243,     0,     0,   244,     0,     0,     0,   245,
+       0,   246,     0,   247,     0,   248,   249,   250,   251,   252,
+     253,     0,   254,     0,     0,     0,   255,   256,   257,     0,
+     258,     0,     0,     0,   259,   260,     0,     0,     0,   261,
+     262,   263,   264,     0,     0,   265,   266,   267,     0,   268,
+       0,   269,     0,     0,     0,     0,   270,   271,     0,     0,
+       0,   272,     0,   273,   274,     0,   275,   276,     0,     0,
+       0,   277,     0,     0,   278,   279,   280,     0,     0,   281,
+       0,     0,   282,   283,     0,     0,     0,     0,     0,   284,
+     285,     0,   286,     0,   287,     0,   288,   289,     0,     0,
+       0,     0,     0,     0,     0,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,     0,   303,
+     304,   305,     0,   306,   307,   308,   309,     0,   310,   311,
+       0,     0,     0,     0,   312,   313,   314,   315,   316,   317,
+       0,     0,   318,   319,     0,   320,     0,   321,     0,   322,
+     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
+       0,   332,   333,     0,     0,   334,   335,   336,   337,     0,
+       0,     0,   338,   339,     0,     0,     0,     0,   340,   341,
+     342,     0,   343,   344,   345,   346,     0,   347,   348,     0,
+       0,     0,     0,     0,     0,     0,     0,   349,   350,   351,
+       0,     0,   352,     0,   353,   354,   355,   356,   357,   358,
+     359,   360,   361,   362,   363,   364,     0,     0,   365,   366,
+     367,     0,   368,     0,   369,   370,   371,   372,   373,     0,
+     374,   375,   376,     0,     0,   377,     0,     0,     0,   378,
+     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
+     387,     0,   388,   389,     0,   390,   391,   392,     0,     0,
+     393,     0,   394,     0,   395,   396,     0,   397,   398,     0,
+       0,     0,   399,   400,   401,   402,   403,   404,   405,   406,
+     407,   408,     0,   409,   410,     0,     0,     0,   411,   412,
+     413,   414,     0,     0,     0,   415,     0,     0,     0,   416,
+       0,   417,   418,   419,   420,     0,   421,   422,   423,   424,
+     425,   426,     0,     0,     0,     0,     0,     0,   427,   428,
+       0,   429,     0,     0,   430,     0,     0,   431,   432,   433,
+       0,     0,   434,   435,     0,   436,   437,   438,   439,   440,
+     441,     0,     0,   442,   443,   444,   445,     0,   446,   447,
+       0,   448,     0,   449,   450,   451,   452,     0,     0,   453,
+     454,     0,   455,   456,   457,   458,     0,     0,     0,     0,
+       0,   459,   460,   461,     0,     0,     0,   462,   463,   464,
+     465,     0,   466,   467,     0,   468,   469,     0,   470,   471,
+       0,     0,   472,     0,     0,   473,     0,   474,     0,   475,
+     476,   477,     0,     0,     0,     0,     0,     0,   478,     0,
+       0,   479,     0,     0,     0,   480,   481,   482,   483,   484,
+     485,     0,     0,     0,     0,     0,     0,   486,   487,     0,
+     488,   489,   490,     0,   139,   491,   140,   141,   142,   143,
+     144,     0,     0,   145,     0,     0,     0,   146,     0,     0,
+     147,     0,   148,   149,   150,   151,   152,   153,   154,     0,
+     155,     0,     0,     0,   156,     0,     0,     0,   157,     0,
+       0,   158,   159,   160,     0,   161,     0,   162,   163,     0,
+       0,   164,     0,     0,   165,   166,     0,   167,   168,     0,
+     169,   170,     0,   171,   172,   173,   174,   175,   176,   177,
+       0,   178,   179,   180,   181,   182,   183,   184,   185,     0,
+     186,   187,   188,   189,   190,   191,   192,   193,     0,   194,
+     195,     0,   196,   197,   198,   199,   200,     0,   201,     0,
+       0,   202,     0,     0,   203,     0,     0,     0,   204,     0,
+       0,     0,   205,   206,   207,     0,     0,   208,     0,     0,
+       0,     0,   209,   210,     0,     0,     0,  2360,   211,     0,
+     212,     0,     0,     0,   213,     0,   214,   215,   216,   217,
+       0,     0,     0,   218,     0,     0,   219,   220,   221,     0,
+       0,     0,   222,     0,   223,   224,     0,   225,   226,   227,
+       0,     0,   228,   229,     0,   230,   231,   232,   233,   234,
+     235,     0,     0,   236,   237,   238,     0,     0,   239,   240,
+       0,   241,   242,   243,     0,     0,   244,     0,     0,     0,
+     245,     0,   246,     0,   247,     0,   248,   249,   250,   251,
+     252,   253,     0,   254,     0,     0,     0,   255,   256,   257,
+       0,   258,     0,     0,     0,   259,   260,     0,     0,     0,
+     261,   262,   263,   264,     0,     0,   265,   266,   267,     0,
+     268,     0,   269,     0,     0,     0,     0,   270,   271,     0,
+       0,     0,   272,     0,   273,   274,     0,   275,   276,     0,
+       0,     0,   277,     0,     0,   278,   279,   280,     0,     0,
+     281,     0,     0,   282,   283,     0,     0,     0,     0,     0,
+     284,   285,     0,   286,     0,   287,     0,   288,   289,     0,
+       0,     0,     0,     0,     0,     0,   290,   291,   292,   293,
+     294,   295,   296,   297,   298,   299,   300,   301,   302,     0,
+     303,   304,   305,     0,   306,   307,   308,   309,     0,   310,
+     311,     0,     0,     0,     0,   312,   313,   314,   315,   316,
+     317,     0,     0,   318,   319,     0,   320,     0,   321,     0,
+     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
+       0,     0,   332,   333,     0,     0,   334,   335,   336,   337,
+       0,     0,     0,   338,   339,     0,     0,     0,     0,   340,
+     341,   342,     0,   343,   344,   345,   346,     0,   347,   348,
+       0,     0,     0,     0,     0,     0,     0,     0,   349,   350,
+     351,     0,     0,   352,     0,   353,   354,   355,   356,   357,
+     358,   359,   360,   361,   362,   363,   364,     0,     0,   365,
+     366,   367,     0,   368,     0,   369,   370,   371,   372,   373,
+       0,   374,   375,   376,     0,     0,   377,     0,     0,     0,
+     378,   379,   380,   381,   382,     0,     0,   383,   384,   385,
+     386,   387,     0,   388,   389,     0,   390,   391,   392,     0,
+       0,   393,     0,   394,     0,   395,   396,     0,   397,   398,
+       0,     0,     0,   399,   400,   401,   402,   403,   404,   405,
+     406,   407,   408,     0,   409,   410,     0,     0,     0,   411,
+     412,   413,   414,     0,     0,     0,   415,     0,     0,     0,
+     416,     0,   417,   418,   419,   420,     0,   421,   422,   423,
+     424,   425,   426,     0,     0,     0,     0,     0,     0,   427,
+     428,     0,   429,     0,     0,   430,     0,     0,   431,   432,
+     433,     0,     0,   434,   435,     0,   436,   437,   438,   439,
+     440,   441,     0,     0,   442,   443,   444,   445,     0,   446,
+     447,     0,   448,     0,   449,   450,   451,   452,     0,     0,
+     453,   454,     0,   455,   456,   457,   458,     0,     0,     0,
+       0,     0,  2361,   460,   461,     0,     0,     0,   462,   463,
+     464,   465,     0,   466,   467,     0,   468,   469,     0,   470,
+     471,     0,     0,   472,     0,     0,   473,     0,   474,     0,
+     475,   476,   477,     0,     0,     0,     0,     0,     0,   478,
+       0,     0,   479,     0,     0,     0,   480,   481,   482,   483,
+     484,   485,     0,     0,     0,     0,     0,     0,   486,   487,
+       0,   488,   489,   490,     0,   139,   491,   140,   141,   142,
+     143,   144,  2885,     0,   145,     0,     0,     0,   146,     0,
+       0,   147,     0,   148,   149,   150,   151,   152,   153,   154,
+       0,   155,     0,     0,     0,   156,     0,     0,     0,   157,
+       0,     0,   158,   159,   160,     0,   161,     0,   162,   163,
+       0,     0,   164,     0,     0,   165,   166,     0,   167,   168,
+       0,   169,   170,     0,   171,   172,   173,   174,   175,   176,
+     177,     0,   178,   179,   180,   181,   182,   183,   184,   185,
+       0,   186,   187,   188,   189,   190,   191,   192,   193,     0,
+     194,   195,     0,   196,   197,   198,   199,   200,     0,   201,
+       0,     0,   202,     0,     0,   203,     0,     0,     0,   204,
+       0,     0,     0,   205,   206,   207,     0,     0,   208,     0,
+       0,     0,     0,   209,   210,     0,     0,     0,     0,   211,
+       0,   212,     0,     0,     0,   213,     0,   214,   215,   216,
+     217,     0,     0,     0,   218,     0,     0,   219,   220,   221,
+       0,     0,     0,   222,     0,   223,   224,     0,   225,   226,
+     227,     0,     0,   228,   229,     0,   230,   231,   232,   233,
+     234,   235,     0,     0,   236,   237,   238,     0,     0,   239,
+     240,     0,   241,   242,   243,     0,     0,   244,     0,     0,
+       0,   245,     0,   246,     0,   247,     0,   248,   249,   250,
+     251,   252,   253,     0,   254,     0,     0,     0,   255,   256,
+     257,     0,   258,     0,     0,     0,   259,   260,     0,     0,
+       0,   261,   262,   263,   264,     0,     0,   265,   266,   267,
+       0,   268,     0,   269,     0,     0,     0,     0,   270,   271,
+       0,     0,     0,   272,     0,   273,   274,     0,   275,   276,
+       0,     0,     0,   277,     0,     0,   278,   279,   280,     0,
+       0,   281,     0,     0,   282,   283,     0,     0,     0,     0,
+       0,   284,   285,     0,   286,     0,   287,     0,   288,   289,
+       0,     0,     0,     0,     0,     0,     0,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+       0,   303,   304,   305,     0,   306,   307,   308,   309,     0,
+     310,   311,     0,     0,     0,     0,   312,   313,   314,   315,
+     316,   317,     0,     0,   318,   319,     0,   320,     0,   321,
+       0,   322,   323,   324,   325,   326,   327,   328,   329,   330,
+     331,     0,     0,   332,   333,     0,     0,   334,   335,   336,
+     337,     0,     0,     0,   338,   339,     0,     0,     0,     0,
+     340,   341,   342,     0,   343,   344,   345,   346,     0,   347,
+     348,     0,     0,     0,     0,     0,     0,     0,     0,   349,
+     350,   351,     0,     0,   352,     0,   353,   354,   355,   356,
+     357,   358,   359,   360,   361,   362,   363,   364,     0,     0,
+     365,   366,   367,     0,   368,     0,   369,   370,   371,   372,
+     373,     0,   374,   375,   376,     0,     0,   377,     0,     0,
+       0,   378,   379,   380,   381,   382,     0,     0,   383,   384,
+     385,   386,   387,     0,   388,   389,     0,   390,   391,   392,
+       0,     0,   393,     0,   394,     0,   395,   396,     0,   397,
+     398,     0,     0,     0,   399,   400,   401,   402,   403,   404,
+     405,   406,   407,   408,     0,   409,   410,     0,     0,     0,
+     411,   412,   413,   414,     0,     0,     0,   415,     0,     0,
+       0,   416,     0,   417,   418,   419,   420,     0,   421,   422,
+     423,   424,   425,   426,     0,     0,     0,     0,     0,     0,
+     427,   428,     0,   429,     0,     0,   430,     0,     0,   431,
+     432,   433,     0,     0,   434,   435,     0,   436,   437,   438,
+     439,   440,   441,     0,     0,   442,   443,   444,   445,     0,
+     446,   447,     0,   448,     0,   449,   450,   451,   452,     0,
+       0,   453,   454,     0,   455,   456,   457,   458,     0,     0,
+       0,     0,     0,   459,   460,   461,     0,     0,     0,   462,
+     463,   464,   465,     0,   466,   467,     0,   468,   469,     0,
+     470,   471,     0,     0,   472,     0,     0,   473,     0,   474,
+       0,   475,   476,   477,     0,     0,     0,     0,     0,     0,
+     478,     0,     0,   479,     0,     0,     0,   480,   481,   482,
+     483,   484,   485,     0,     0,     0,     0,     0,     0,   486,
+     487,     0,   488,   489,   490,     0,   139,   491,   140,   141,
+     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
+       0,     0,   147,     0,   148,   149,   150,   151,   152,   153,
+     154,     0,   155,     0,     0,     0,   156,     0,     0,     0,
+     157,     0,     0,   158,   159,   160,     0,   161,     0,   162,
+     163,     0,     0,   164,     0,     0,   165,   166,     0,   167,
+     168,     0,   169,   170,     0,   171,   172,   173,   174,   175,
+     176,   177,     0,   178,   179,   180,   181,   182,   183,   184,
+     185,     0,   186,   187,   188,   189,   190,   191,   192,   193,
+       0,   194,   195,     0,   196,   197,   198,   199,   200,     0,
+     201,     0,     0,   202,     0,     0,   203,     0,     0,     0,
+     204,     0,     0,     0,   205,   206,   207,     0,     0,   208,
+       0,     0,     0,     0,   209,   210,     0,     0,     0,     0,
+     211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
+     216,   217,     0,     0,     0,   218,     0,     0,   219,   220,
+     221,     0,     0,     0,   222,     0,   223,   224,     0,   225,
+     226,   227,     0,     0,   228,   229,     0,   230,   231,   232,
+     233,   234,   235,     0,     0,   236,   237,   238,     0,     0,
+     239,   240,     0,   241,   242,   243,     0,     0,   244,     0,
+       0,     0,   245,     0,   246,     0,   247,     0,   248,   249,
+     250,   251,   252,   253,     0,   254,     0,     0,     0,   255,
+     256,   257,     0,   258,     0,     0,     0,   259,   260,     0,
+       0,     0,   261,   262,   263,   264,     0,     0,   265,   266,
+     267,     0,   268,     0,   269,     0,     0,     0,     0,   270,
+     271,     0,     0,     0,   272,     0,   273,   274,     0,   275,
+     276,     0,     0,     0,   277,     0,     0,   278,   279,   280,
+       0,     0,   281,     0,     0,   282,   283,     0,     0,     0,
+       0,     0,   284,   285,     0,   286,     0,   287,     0,   288,
+     289,     0,     0,     0,     0,     0,     0,     0,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
+     302,     0,   303,   304,   305,     0,   306,   307,   308,   309,
+       0,   310,   311,     0,     0,     0,     0,   312,   313,   314,
+     315,   316,   317,     0,     0,   318,   319,     0,   320,     0,
+     321,     0,   322,   323,   324,   325,   326,   327,   328,   329,
+     330,   331,     0,     0,   332,   333,     0,     0,   334,   335,
+     336,   337,     0,     0,     0,   338,   339,     0,     0,     0,
+       0,   340,   341,   342,     0,   343,   344,   345,   346,     0,
+     347,   348,     0,     0,     0,     0,     0,     0,     0,     0,
+     349,   350,   351,     0,     0,   352,     0,   353,   354,   355,
+     356,   357,   358,   359,   360,   361,   362,   363,   364,     0,
+       0,   365,   366,   367,  2972,   368,     0,   369,   370,   371,
+     372,   373,     0,   374,   375,   376,     0,     0,   377,     0,
+       0,     0,   378,   379,   380,   381,   382,     0,     0,   383,
+     384,   385,   386,   387,     0,   388,   389,     0,   390,   391,
+     392,     0,     0,   393,     0,   394,     0,   395,   396,     0,
+     397,   398,     0,     0,     0,   399,   400,   401,   402,   403,
+     404,   405,   406,   407,   408,     0,   409,   410,     0,     0,
+       0,   411,   412,   413,   414,     0,     0,     0,   415,     0,
+       0,     0,   416,     0,   417,   418,   419,   420,     0,   421,
+     422,   423,   424,   425,   426,     0,     0,     0,     0,     0,
+       0,   427,   428,     0,   429,     0,     0,   430,     0,     0,
+     431,   432,   433,     0,     0,   434,   435,     0,   436,   437,
+     438,   439,   440,   441,     0,     0,   442,   443,   444,   445,
+       0,   446,   447,     0,   448,     0,   449,   450,   451,   452,
+       0,     0,   453,   454,     0,   455,   456,   457,   458,     0,
+       0,     0,     0,     0,   459,   460,   461,     0,     0,     0,
+     462,   463,   464,   465,     0,   466,   467,     0,   468,   469,
+       0,   470,   471,     0,     0,   472,     0,     0,   473,     0,
+     474,     0,   475,   476,   477,     0,     0,     0,     0,     0,
+       0,   478,     0,     0,   479,     0,     0,     0,   480,   481,
+     482,   483,   484,   485,     0,     0,     0,     0,     0,     0,
+     486,   487,     0,   488,   489,   490,     0,   139,   491,   140,
+     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
+     146,     0,     0,   147,     0,   148,   149,   150,   151,   152,
+     153,   154,     0,   155,     0,     0,     0,   156,     0,     0,
+       0,   157,     0,     0,   158,   159,   160,     0,   161,     0,
+     162,   163,     0,     0,   164,     0,     0,   165,   166,     0,
+     167,   168,     0,   169,   170,     0,   171,   172,   173,   174,
+     175,   176,   177,     0,   178,   179,   180,   181,   182,   183,
+     184,   185,     0,   186,   187,   188,   189,   190,   191,   192,
+     193,     0,   194,   195,     0,   196,   197,   198,   199,   200,
+       0,   201,     0,     0,   202,     0,     0,   203,     0,     0,
+       0,   204,     0,     0,     0,   205,   206,   207,     0,     0,
+     208,     0,     0,     0,     0,   209,   210,     0,     0,     0,
+       0,   211,     0,   212,     0,     0,     0,   213,     0,   214,
+     215,   216,   217,     0,     0,     0,   218,     0,     0,   219,
+     220,   221,     0,     0,     0,   222,     0,   223,   224,     0,
+     225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
+     232,   233,   234,   235,     0,     0,   236,   237,   238,     0,
+       0,   239,   240,     0,   241,   242,   243,     0,     0,   244,
+       0,     0,     0,   245,     0,   246,     0,   247,     0,   248,
+     249,   250,   251,   252,   253,     0,   254,     0,     0,     0,
+     255,   256,   257,     0,   258,     0,     0,     0,   259,   260,
+       0,     0,     0,   261,   262,   263,   264,     0,     0,   265,
+     266,   267,     0,   268,     0,   269,     0,     0,     0,     0,
+     270,   271,     0,     0,     0,   272,     0,   273,   274,     0,
+     275,   276,     0,     0,     0,   277,     0,     0,   278,   279,
+     280,     0,     0,   281,     0,     0,   282,   283,     0,     0,
+       0,     0,     0,   284,   285,     0,   286,     0,   287,     0,
+     288,   289,     0,     0,     0,     0,     0,     0,     0,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
+     301,   302,     0,   303,   304,   305,     0,   306,   307,   308,
+     309,     0,   310,   311,     0,     0,     0,     0,   312,   313,
+     314,   315,   316,   317,     0,     0,   318,   319,     0,   320,
+       0,   321,     0,   322,   323,   324,   325,   326,   327,   328,
+     329,   330,   331,     0,     0,   332,   333,     0,     0,   334,
+     335,   336,   337,     0,     0,     0,   338,   339,     0,     0,
+       0,     0,   340,   341,   342,     0,   343,   344,   345,   346,
+       0,   347,   348,     0,     0,     0,     0,     0,     0,     0,
+       0,   349,   350,   351,     0,     0,   352,     0,   353,   354,
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+       0,     0,   365,   366,   367,     0,   368,     0,   369,   370,
+     371,   372,   373,     0,   374,   375,   376,     0,     0,   377,
+       0,     0,     0,   378,   379,   380,   381,   382,     0,     0,
+     383,   384,   385,   386,   387,     0,   388,   389,     0,   390,
+     391,   392,     0,     0,   393,     0,   394,     0,   395,   396,
+       0,   397,   398,     0,     0,     0,   399,   400,   401,   402,
+     403,   404,   405,   406,   407,   408,     0,   409,   410,     0,
+       0,     0,   411,   412,   413,   414,     0,     0,     0,   415,
+       0,     0,     0,   416,     0,   417,   418,   419,   420,     0,
+     421,   422,   423,   424,   425,   426,     0,     0,     0,     0,
+       0,     0,   427,   428,     0,   429,     0,     0,   430,     0,
+       0,   431,   432,   433,     0,     0,   434,   435,     0,   436,
+     437,   438,   439,   440,   441,     0,     0,   442,   443,   444,
+     445,     0,   446,   447,     0,   448,     0,   449,   450,   451,
+     452,     0,   136,   453,   454,     0,   455,   456,   457,   458,
+       0,     0,     0,     0,     0,   459,   460,   461,     0,     0,
+       0,   462,   463,   464,   465,     0,   466,   467,     0,   468,
+     469,     0,   470,   471,     0,     0,   472,     0,     0,   473,
+       0,   474,     0,   475,   476,   477,     0,     0,     0,     0,
+       0,     0,   478,     0,     0,   479,     0,     0,     0,   480,
+     481,   482,   483,   484,   485,     0,     0,     0,     0,     0,
+       0,   486,   487,     0,   488,   489,   490,     0,   139,   491,
+     140,   141,   142,   143,   144,     0,     0,   145,     0,     0,
+       0,   146,     0,     0,   147,     0,   148,   149,   150,   151,
+     152,   153,   154,     0,   155,     0,     0,     0,   156,     0,
+       0,     0,   157,     0,     0,   158,   159,   160,     0,   161,
+       0,   162,   163,     0,     0,   164,     0,     0,   165,   166,
+       0,   167,   168,     0,   169,   170,     0,   171,   172,   173,
+     174,   175,   176,   177,     0,   178,   179,   180,   181,   182,
+     183,   184,   185,     0,   186,   187,   188,   189,   190,   191,
+     192,   193,     0,   194,   195,     0,   196,   197,   198,   199,
+     200,     0,   201,     0,     0,   202,     0,     0,   203,     0,
+       0,     0,   204,     0,     0,     0,   205,   206,   207,     0,
+       0,   208,     0,     0,     0,     0,   209,   210,     0,     0,
+       0,  2360,   211,     0,   212,     0,     0,     0,   213,     0,
+     214,   215,   216,   217,     0,     0,     0,   218,     0,     0,
+     219,   220,   221,     0,     0,     0,   222,     0,   223,   224,
+       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
+     231,   232,   233,   234,   235,     0,     0,   236,   237,   238,
+       0,     0,   239,   240,     0,   241,   242,   243,     0,     0,
+     244,     0,     0,     0,   245,     0,   246,     0,   247,     0,
+     248,   249,   250,   251,   252,   253,     0,   254,     0,     0,
+       0,   255,   256,   257,     0,   258,     0,     0,     0,   259,
+     260,     0,     0,     0,   261,   262,   263,   264,     0,     0,
+     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
+       0,   270,   271,     0,     0,     0,   272,     0,   273,   274,
+       0,   275,   276,     0,     0,     0,   277,     0,     0,   278,
+     279,   280,     0,     0,   281,     0,     0,   282,   283,     0,
+       0,     0,     0,     0,   284,   285,     0,   286,     0,   287,
+       0,   288,   289,     0,     0,     0,     0,     0,     0,     0,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,     0,   303,   304,   305,     0,   306,   307,
+     308,   309,     0,   310,   311,     0,     0,     0,     0,   312,
+     313,   314,   315,   316,   317,     0,     0,   318,   319,     0,
+     320,     0,   321,     0,   322,   323,   324,   325,   326,   327,
+     328,   329,   330,   331,     0,     0,   332,   333,     0,     0,
+     334,   335,   336,   337,     0,     0,     0,   338,   339,     0,
+       0,     0,     0,   340,   341,   342,     0,   343,   344,   345,
+     346,     0,   347,   348,     0,     0,     0,     0,     0,     0,
+       0,     0,   349,   350,   351,     0,     0,   352,     0,   353,
+     354,   355,   356,   357,   358,   359,   360,   361,   362,   363,
+     364,     0,     0,   365,   366,   367,     0,   368,     0,   369,
+     370,   371,   372,   373,     0,   374,   375,   376,     0,     0,
+     377,     0,     0,     0,   378,   379,   380,   381,   382,     0,
+       0,   383,   384,   385,   386,   387,     0,   388,   389,     0,
+     390,   391,   392,     0,     0,   393,     0,   394,     0,   395,
+     396,     0,   397,   398,     0,     0,     0,   399,   400,   401,
+     402,   403,   404,   405,   406,   407,   408,     0,   409,   410,
+       0,     0,     0,   411,   412,   413,   414,     0,     0,     0,
+     415,     0,     0,     0,   416,     0,   417,   418,   419,   420,
+       0,   421,   422,   423,   424,   425,   426,     0,     0,     0,
+       0,     0,     0,   427,   428,     0,   429,     0,     0,   430,
+       0,     0,   431,   432,   433,     0,     0,   434,   435,     0,
+     436,   437,   438,   439,   440,   441,     0,     0,   442,   443,
+     444,   445,     0,   446,   447,     0,   448,     0,   449,   450,
+     451,   452,     0,     0,   453,   454,     0,   455,   456,   457,
+     458,     0,     0,     0,     0,     0,   459,   460,   461,     0,
+       0,     0,   462,   463,   464,   465,     0,   466,   467,     0,
+     468,   469,     0,   470,   471,     0,     0,   472,     0,     0,
+     473,     0,   474,     0,   475,   476,   477,     0,     0,     0,
+       0,     0,     0,   478,     0,     0,   479,     0,     0,     0,
+     480,   481,   482,   483,   484,   485,     0,     0,     0,     0,
+       0,     0,   486,   487,     0,   488,   489,   490,     0,   139,
+     491,   140,   141,   142,   143,   144,     0,     0,   145,     0,
+       0,     0,   146,     0,     0,   147,     0,   148,   149,   150,
+     151,   152,   153,   154,     0,   155,     0,     0,     0,   156,
+       0,     0,     0,   157,     0,     0,   158,   159,   160,     0,
+     161,     0,   162,   163,     0,     0,   164,     0,     0,   165,
+     166,     0,   167,   168,     0,   169,   170,     0,   171,   172,
+     173,   174,   175,   176,   177,     0,   178,   179,   180,   181,
+     182,   183,   184,   185,     0,   186,   187,   188,   189,   190,
+     191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
+     199,   200,     0,   201,     0,     0,   202,     0,     0,   203,
+       0,     0,     0,   204,     0,     0,     0,   205,   206,   207,
+       0,     0,   208,     0,     0,     0,     0,   209,   210,     0,
+       0,     0,     0,   211,     0,   212,     0,     0,     0,   213,
+       0,   214,   215,   216,   217,     0,     0,     0,   218,     0,
+       0,   219,   220,   221,     0,     0,     0,   222,     0,   223,
+     224,     0,   225,   226,   227,     0,     0,   228,   229,     0,
+     230,   231,   232,   233,   234,   235,     0,     0,   236,   237,
+     238,     0,     0,   239,   240,     0,   241,   242,   243,     0,
+       0,   244,     0,     0,     0,   245,     0,   246,     0,   247,
+       0,   248,   249,   250,   251,   252,   253,     0,   254,     0,
+       0,     0,   255,   256,   257,     0,   258,     0,     0,     0,
+     259,   260,     0,     0,     0,   261,   262,   263,   264,     0,
+       0,   265,   266,   267,     0,   268,     0,   269,     0,     0,
+       0,     0,   270,   271,     0,     0,     0,   272,     0,   273,
+     274,     0,   275,   276,     0,     0,     0,   277,     0,     0,
+     278,   279,   280,     0,     0,   281,     0,     0,   282,   283,
+       0,     0,     0,     0,     0,   284,   285,     0,   286,     0,
+     287,     0,   288,   289,     0,     0,     0,     0,     0,     0,
+       0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,   300,   301,   302,     0,   303,   304,   305,     0,   306,
+     307,   308,   309,     0,   310,   311,     0,     0,     0,     0,
+     312,   313,   314,   315,   316,   317,     0,     0,   318,   319,
+       0,   320,     0,   321,     0,   322,   323,   324,   325,   326,
+     327,   328,   329,   330,   331,     0,     0,   332,   333,     0,
+       0,   334,   335,   336,   337,     0,     0,     0,   338,   339,
+       0,     0,     0,     0,   340,   341,   342,     0,   343,   344,
+     345,   346,     0,   347,   348,     0,     0,     0,     0,     0,
+       0,     0,     0,   349,   350,   351,     0,     0,   352,     0,
+     353,   354,   355,   356,   357,   358,   359,   360,   361,   362,
+     363,   364,     0,     0,   365,   366,   367,     0,   368,     0,
+     369,   370,   371,   372,   373,     0,   374,   375,   376,     0,
+       0,   377,     0,     0,     0,   378,   379,   380,   381,   382,
+       0,     0,   383,   384,   385,   386,   387,     0,   388,   389,
+       0,   390,   391,   392,     0,     0,   393,     0,   394,     0,
+     395,   396,     0,   397,   398,     0,     0,     0,   399,   400,
+     401,   402,   403,   404,   405,   406,   407,   408,     0,   409,
+     410,     0,     0,     0,   411,   412,   413,   414,     0,     0,
+       0,   415,     0,     0,     0,   416,     0,   417,   418,   419,
+     420,     0,   421,   422,   423,   424,   425,   426,     0,     0,
+       0,     0,     0,     0,   427,   428,     0,   429,     0,     0,
+     430,     0,     0,   431,   432,   433,     0,     0,   434,   435,
+       0,   436,   437,   438,   439,   440,   441,     0,     0,   442,
+     443,   444,   445,     0,   446,   447,     0,   448,     0,   449,
+     450,   451,   452,     0,     0,   453,   454,     0,   455,   456,
+     457,   458,     0,     0,     0,     0,     0,   459,   460,   461,
+       0,     0,     0,   462,   463,   464,   465,     0,   466,   467,
+       0,   468,   469,     0,   470,   471,     0,     0,   472,     0,
+       0,   473,     0,   474,     0,   475,   476,   477,     0,     0,
+       0,     0,     0,     0,   478,     0,     0,   479,     0,     0,
+       0,   480,   481,   482,   483,   484,   485,     0,     0,     0,
+       0,     0,     0,   486,   487,     0,   488,   489,   490,     0,
+     139,   491,   140,   141,   142,   143,   144,     0,     0,   145,
+       0,     0,     0,   146,     0,     0,   147,     0,   148,   149,
+     150,   151,   152,   153,   154,     0,   155,     0,     0,     0,
+     156,     0,     0,     0,   157,     0,     0,   158,   159,   160,
+       0,   161,     0,   162,   163,     0,     0,   164,     0,     0,
+     165,   166,     0,   167,   168,     0,   169,   170,     0,   171,
+     172,   173,   174,   175,   176,   177,     0,   178,   179,   180,
+     181,   182,   183,   184,   185,     0,   186,   187,   188,   189,
+     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
+     198,   199,   200,     0,   201,     0,     0,   202,     0,     0,
+     203,     0,     0,     0,   204,     0,     0,     0,   205,   206,
+     207,     0,     0,   208,     0,     0,     0,     0,   209,   210,
+       0,     0,     0,     0,   211,     0,   212,     0,     0,     0,
+     213,     0,   214,   215,   216,   217,     0,     0,     0,   218,
+       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
+     223,   224,     0,   225,   226,   227,     0,     0,   228,   229,
+       0,   230,   231,   232,   233,   234,   235,     0,     0,   236,
+     237,   238,     0,     0,   239,   240,     0,   241,  1777,   243,
+       0,     0,   244,     0,     0,     0,   245,     0,   246,     0,
+     247,     0,   248,   249,   250,   251,   252,   253,     0,   254,
+       0,     0,     0,   255,   256,   257,     0,   258,     0,     0,
+       0,   259,   260,     0,     0,     0,   261,   262,   263,   264,
+       0,     0,   265,   266,   267,     0,   268,     0,   269,     0,
+       0,     0,     0,   270,   271,     0,     0,     0,   272,     0,
+     273,   274,     0,   275,   276,     0,     0,     0,   277,     0,
+       0,   278,   279,   280,     0,     0,   281,     0,     0,   282,
+     283,     0,     0,     0,     0,     0,   284,   285,     0,   286,
+       0,   287,     0,   288,   289,     0,     0,     0,     0,     0,
+       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,     0,   303,   304,   305,     0,
+     306,   307,   308,   309,     0,   310,   311,     0,     0,     0,
+       0,   312,   313,   314,   315,   316,   317,     0,     0,   318,
+     319,     0,   320,     0,   321,     0,   322,   323,   324,   325,
+     326,   327,   328,   329,   330,   331,     0,     0,   332,   333,
+       0,     0,   334,  1778,   336,   337,     0,     0,     0,   338,
+     339,     0,     0,     0,     0,   340,   341,   342,     0,   343,
+     344,   345,   346,     0,   347,   348,     0,     0,     0,     0,
+       0,     0,     0,     0,   349,   350,   351,     0,     0,   352,
+       0,   353,   354,   355,   356,   357,   358,   359,   360,   361,
+     362,   363,   364,     0,     0,   365,   366,   367,     0,   368,
+       0,   369,   370,   371,   372,   373,     0,   374,   375,   376,
+       0,     0,   377,     0,     0,     0,   378,   379,   380,   381,
+     382,     0,     0,   383,   384,   385,   386,   387,     0,   388,
+     389,     0,   390,   391,   392,     0,     0,   393,     0,   394,
+       0,   395,   396,     0,   397,   398,     0,     0,     0,   399,
+     400,   401,   402,   403,   404,   405,   406,   407,   408,     0,
+     409,   410,     0,     0,     0,   411,   412,   413,   414,     0,
+       0,     0,   415,     0,     0,     0,   416,     0,   417,   418,
+     419,   420,     0,   421,   422,   423,   424,   425,   426,     0,
+       0,     0,     0,     0,     0,   427,   428,     0,   429,     0,
+       0,   430,     0,     0,   431,   432,   433,     0,     0,   434,
+     435,     0,   436,   437,   438,   439,   440,   441,     0,     0,
+     442,   443,   444,   445,     0,   446,   447,     0,   448,     0,
+     449,   450,   451,   452,     0,     0,   453,   454,     0,   455,
+     456,   457,   458,     0,     0,     0,     0,     0,   459,   460,
+     461,     0,     0,     0,   462,   463,   464,   465,     0,   466,
+     467,     0,   468,   469,     0,   470,   471,     0,     0,   472,
+       0,     0,   473,     0,   474,     0,   475,   476,   477,     0,
+       0,     0,     0,     0,     0,   478,     0,     0,   479,     0,
+       0,     0,   480,   481,   482,   483,   484,   485,     0,     0,
+       0,     0,     0,     0,   486,   487,     0,   488,   489,   490,
+       0,   139,   491,   140,   141,   142,   143,   144,     0,     0,
+     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
+     149,   150,   151,   152,   153,     0,     0,  -329,     0,     0,
+       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
+     160,     0,   161,     0,     0,     0,     0,     0,   164,  3892,
+       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
+     171,   172,   173,   174,  3893,   176,   177,     0,   178,   179,
+       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
+       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
+     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
+       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
+     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
+       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
+       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
+       0,     0,     0,   219,   220,   221,     0,  -299,  -299,   222,
+       0,  -299,   224,     0,   225,   226,   227,     0,     0,   228,
+     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
+     236,   237,   238,     0,     0,   239,   240,  3894,   241,   242,
+     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
+       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
+     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
+       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
+     264,  3895,     0,   265,   266,   267,     0,   268,     0,   269,
+       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
+       0,   273,   274,     0,   275,   276,  3896,     0,     0,   277,
+       0,     0,     0,   279,   280,     0,     0,   281,  3897,     0,
+     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
+     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
+    -284,     0,     0,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
+       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
+       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
+     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,   331,     0,     0,   332,
+     333,     0,     0,   334,   335,   336,   337,     0,     0,     0,
+       0,   339,     0,     0,     0,     0,   340,   341,   342,     0,
+     343,   344,   345,  3898,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   350,   351,     0,     0,
+       0,     0,   353,   354,   355,     0,   357,   358,   359,   360,
+     361,   362,   363,     0,     0,     0,     0,   366,   367,     0,
+     368,     0,   369,   370,   371,   372,   373,     0,   374,   375,
+     376,     0,     0,   377,     0,     0,     0,   378,   379,   380,
+     381,   382,     0,     0,   383,   384,   385,   386,   387,     0,
+     388,     0,     0,   390,     0,   392,  -284,     0,   393,     0,
+       0,     0,   395,     0,     0,   397,   398,  3899,     0,     0,
+       0,   400,   401,   402,   403,   404,   405,     0,   407,   408,
+       0,   409,     0,     0,     0,     0,   411,   412,   413,     0,
+       0,     0,     0,   415,     0,     0,     0,   416,     0,     0,
+     418,     0,   420,     0,   421,     0,   423,     0,   425,   426,
+       0,     0,     0,     0,     0,     0,   427,   428,     0,   429,
+       0,     0,   430,     0,     0,   431,     0,   433,     0,     0,
+       0,   435,     0,   436,   437,   438,   439,   440,   441,     0,
+       0,   442,   443,   444,   445,     0,   446,   447,     0,   448,
+       0,   449,   450,   451,   452,     0,     0,   453,   454,     0,
+     455,   456,   457,   458,     0,     0,     0,     0,     0,   459,
+     460,   461,     0,     0,     0,     0,   463,   464,   465,     0,
+     466,   467,     0,   468,   469,     0,     0,     0,     0,     0,
+     472,     0,     0,   473,     0,     0,     0,   475,   476,   477,
+       0,     0,     0,     0,     0,     0,   478,     0,     0,   479,
+       0,     0,     0,   480,   481,   482,   483,   484,   485,     0,
+       0,  -284,     0,     0,     0,   486,     0,     0,   488,     0,
+     490,     0,   139,   491,   140,   141,   142,   143,   144,     0,
+       0,   145,     0,     0,     0,   146,     0,     0,     0,     0,
+     148,   149,   150,   151,   152,   153,     0,     0,  -329,     0,
+       0,     0,   156,     0,     0,     0,   157,     0,     0,   158,
+     159,   160,     0,   161,     0,     0,     0,     0,     0,   164,
+    3892,     0,   165,   166,     0,   167,     0,     0,     0,     0,
+       0,   171,   172,   173,   174,  3893,   176,   177,     0,   178,
+     179,     0,     0,     0,     0,     0,     0,     0,   186,     0,
+     188,     0,   190,   191,   192,   193,     0,   194,   195,     0,
+     196,   197,   198,     0,   200,     0,   201,     0,     0,   202,
+       0,     0,   203,     0,     0,     0,   204,     0,     0,     0,
+     205,   206,   207,     0,     0,   208,     0,     0,     0,     0,
+     209,     0,     0,     0,     0,     0,   211,     0,   212,     0,
+       0,     0,   213,     0,   214,   215,   216,   217,     0,     0,
+       0,     0,     0,     0,   219,   220,   221,     0,  -320,     0,
+     222,     0,  -320,   224,     0,   225,   226,   227,     0,     0,
+     228,   229,     0,   230,   231,   232,   233,     0,     0,     0,
+       0,   236,   237,   238,     0,     0,   239,   240,  3894,   241,
+     242,   243,     0,     0,     0,     0,     0,     0,   245,     0,
+     246,     0,   247,     0,   248,   249,   250,   251,   252,   253,
+       0,   254,     0,     0,     0,     0,   256,   257,     0,     0,
+       0,     0,     0,     0,   260,     0,     0,     0,   261,   262,
+     263,   264,  3895,     0,   265,   266,   267,     0,   268,     0,
+     269,     0,     0,     0,     0,   270,     0,     0,     0,     0,
+     272,     0,   273,   274,     0,   275,   276,  3896,     0,     0,
+     277,     0,     0,     0,   279,   280,     0,     0,   281,  3897,
+       0,   282,   283,     0,     0,     0,     0,     0,   284,   285,
+       0,   286,     0,   287,     0,   288,   289,     0,     0,     0,
+       0,  -284,     0,     0,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,   300,   301,   302,     0,   303,   304,
+     305,     0,   306,   307,   308,   309,     0,   310,   311,     0,
+       0,     0,     0,   312,   313,   314,   315,   316,   317,     0,
+       0,   318,   319,     0,   320,     0,   321,     0,   322,   323,
+     324,   325,   326,   327,   328,   329,   330,   331,     0,     0,
+     332,   333,     0,     0,   334,   335,   336,   337,     0,     0,
+       0,     0,   339,     0,     0,     0,     0,   340,   341,   342,
+       0,   343,   344,   345,  3898,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   350,   351,     0,
+       0,     0,     0,   353,   354,   355,     0,   357,   358,   359,
+     360,   361,   362,   363,     0,     0,     0,     0,   366,   367,
+       0,   368,     0,   369,   370,   371,   372,   373,     0,   374,
+     375,   376,     0,     0,   377,     0,     0,     0,   378,   379,
+     380,   381,   382,     0,     0,   383,   384,   385,   386,   387,
+       0,   388,     0,     0,   390,     0,   392,  -284,     0,   393,
+       0,     0,     0,   395,     0,     0,   397,   398,  3899,     0,
+       0,     0,   400,   401,   402,   403,   404,   405,     0,   407,
+     408,     0,   409,     0,     0,     0,     0,   411,   412,   413,
+       0,     0,     0,     0,   415,     0,     0,     0,   416,     0,
+       0,   418,     0,   420,     0,   421,     0,   423,     0,   425,
+     426,     0,     0,     0,     0,     0,     0,   427,   428,     0,
+     429,     0,     0,   430,     0,     0,   431,     0,   433,     0,
+       0,     0,   435,     0,   436,   437,   438,   439,   440,   441,
+       0,     0,   442,   443,   444,   445,     0,   446,   447,     0,
+     448,     0,   449,   450,   451,   452,     0,     0,   453,   454,
+       0,   455,   456,   457,   458,     0,     0,     0,     0,     0,
+     459,   460,   461,     0,     0,     0,     0,   463,   464,   465,
+       0,   466,   467,     0,   468,   469,     0,     0,     0,     0,
+       0,   472,     0,     0,   473,     0,     0,     0,   475,   476,
+     477,     0,     0,     0,     0,     0,     0,   478,     0,     0,
+     479,     0,     0,     0,   480,   481,   482,   483,   484,   485,
+    -320,     0,  -284,     0,     0,     0,   486,     0,     0,   488,
+       0,   490,     0,   139,   491,   140,   141,   142,   143,   144,
+       0,     0,   145,     0,     0,     0,   146,     0,     0,     0,
+       0,   148,   149,   150,   151,   152,   153,     0,     0,  -329,
+       0,     0,     0,   156,     0,     0,     0,   157,     0,     0,
+     158,   159,   160,     0,   161,     0,     0,     0,     0,     0,
+     164,  3892,     0,   165,   166,     0,   167,     0,     0,     0,
+       0,     0,   171,   172,   173,   174,  3893,   176,   177,     0,
+     178,   179,     0,     0,     0,     0,     0,     0,     0,   186,
+       0,   188,     0,   190,   191,   192,   193,     0,   194,   195,
+       0,   196,   197,   198,     0,   200,     0,   201,     0,     0,
+     202,     0,     0,   203,     0,     0,     0,   204,     0,     0,
+       0,   205,   206,   207,     0,     0,   208,     0,     0,     0,
+       0,   209,     0,     0,     0,     0,     0,   211,     0,   212,
+       0,     0,     0,   213,     0,   214,   215,   216,   217,     0,
+       0,     0,     0,     0,     0,   219,   220,   221,     0,  -317,
+       0,   222,     0,  -317,   224,     0,   225,   226,   227,     0,
+       0,   228,   229,     0,   230,   231,   232,   233,     0,     0,
+       0,     0,   236,   237,   238,     0,     0,   239,   240,  3894,
+     241,   242,   243,     0,     0,     0,     0,     0,     0,   245,
+       0,   246,     0,   247,     0,   248,   249,   250,   251,   252,
+     253,     0,   254,     0,     0,     0,     0,   256,   257,     0,
+       0,     0,     0,     0,     0,   260,     0,     0,     0,   261,
+     262,   263,   264,  3895,     0,   265,   266,   267,     0,   268,
+       0,   269,     0,     0,     0,     0,   270,     0,     0,     0,
+       0,   272,     0,   273,   274,     0,   275,   276,  3896,     0,
+       0,   277,     0,     0,     0,   279,   280,     0,     0,   281,
+    3897,     0,   282,   283,     0,     0,     0,     0,     0,   284,
+     285,     0,   286,     0,   287,     0,   288,   289,     0,     0,
+       0,     0,  -284,     0,     0,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,     0,   303,
+     304,   305,     0,   306,   307,   308,   309,     0,   310,   311,
+       0,     0,     0,     0,   312,   313,   314,   315,   316,   317,
+       0,     0,   318,   319,     0,   320,     0,   321,     0,   322,
+     323,   324,   325,   326,   327,   328,   329,   330,   331,     0,
+       0,   332,   333,     0,     0,   334,   335,   336,   337,     0,
+       0,     0,     0,   339,     0,     0,     0,     0,   340,   341,
+     342,     0,   343,   344,   345,  3898,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   350,   351,
+       0,     0,     0,     0,   353,   354,   355,     0,   357,   358,
+     359,   360,   361,   362,   363,     0,     0,     0,     0,   366,
+     367,     0,   368,     0,   369,   370,   371,   372,   373,     0,
+     374,   375,   376,     0,     0,   377,     0,     0,     0,   378,
+     379,   380,   381,   382,     0,     0,   383,   384,   385,   386,
+     387,     0,   388,     0,     0,   390,     0,   392,  -284,     0,
+     393,     0,     0,     0,   395,     0,     0,   397,   398,  3899,
+       0,     0,     0,   400,   401,   402,   403,   404,   405,     0,
+     407,   408,     0,   409,     0,     0,     0,     0,   411,   412,
+     413,     0,     0,     0,     0,   415,     0,     0,     0,   416,
+       0,     0,   418,     0,   420,     0,   421,     0,   423,     0,
+     425,   426,     0,     0,     0,     0,     0,     0,   427,   428,
+       0,   429,     0,     0,   430,     0,     0,   431,     0,   433,
+       0,     0,     0,   435,     0,   436,   437,   438,   439,   440,
+     441,     0,     0,   442,   443,   444,   445,     0,   446,   447,
+       0,   448,     0,   449,   450,   451,   452,     0,     0,   453,
+     454,     0,   455,   456,   457,   458,     0,     0,     0,     0,
+       0,   459,   460,   461,     0,     0,     0,     0,   463,   464,
+     465,     0,   466,   467,     0,   468,   469,     0,     0,     0,
+       0,     0,   472,     0,     0,   473,     0,     0,     0,   475,
+     476,   477,     0,     0,     0,     0,     0,     0,   478,     0,
+       0,   479,     0,     0,     0,   480,   481,   482,   483,   484,
+     485,  -317,     0,  -284,     0,     0,     0,   486,     0,     0,
+     488,     0,   490,     0,   139,   491,   140,   141,   142,   143,
+     144,     0,     0,   145,     0,     0,     0,   146,     0,     0,
+       0,     0,   148,   149,   150,   151,   152,   153,     0,     0,
+    -329,     0,     0,     0,   156,     0,     0,     0,   157,     0,
+       0,   158,   159,   160,     0,   161,     0,     0,     0,     0,
+       0,   164,  3892,     0,   165,   166,     0,   167,     0,     0,
+       0,     0,     0,   171,   172,   173,   174,  3893,   176,   177,
+       0,   178,   179,     0,     0,     0,     0,     0,     0,     0,
+     186,     0,   188,     0,   190,   191,   192,   193,     0,   194,
+     195,     0,   196,   197,   198,     0,   200,     0,   201,     0,
+       0,   202,     0,     0,   203,     0,     0,     0,   204,     0,
+       0,     0,   205,   206,   207,     0,     0,   208,     0,     0,
+       0,     0,   209,     0,     0,     0,     0,     0,   211,     0,
+     212,     0,     0,     0,   213,     0,   214,   215,   216,   217,
+       0,     0,     0,     0,     0,     0,   219,   220,   221,     0,
+       0,     0,   222,     0,  4232,   224,     0,   225,   226,   227,
+       0,     0,   228,   229,     0,   230,   231,   232,   233,     0,
+       0,     0,     0,   236,   237,   238,     0,     0,   239,   240,
+    3894,   241,   242,   243,     0,     0,     0,     0,     0,     0,
+     245,     0,   246,     0,   247,     0,   248,   249,   250,   251,
+     252,   253,     0,   254,     0,     0,     0,     0,   256,   257,
+       0,     0,     0,     0,     0,     0,   260,     0,     0,     0,
+     261,   262,   263,   264,  3895,     0,   265,   266,   267,     0,
+     268,     0,   269,     0,     0,     0,     0,   270,     0,     0,
+       0,     0,   272,     0,   273,   274,     0,   275,   276,  3896,
+       0,     0,   277,     0,     0,     0,   279,   280,     0,     0,
+     281,  3897,     0,   282,   283,     0,     0,     0,     0,     0,
+     284,   285,     0,   286,     0,   287,     0,   288,   289,     0,
+       0,     0,     0,  -284,     0,     0,   290,   291,   292,   293,
+     294,   295,   296,   297,   298,   299,   300,   301,   302,     0,
+     303,   304,   305,     0,   306,   307,   308,   309,     0,   310,
+     311,     0,     0,     0,     0,   312,   313,   314,   315,   316,
+     317,     0,     0,   318,   319,     0,   320,     0,   321,     0,
+     322,   323,   324,   325,   326,   327,   328,   329,   330,   331,
+       0,     0,   332,   333,     0,     0,   334,   335,   336,   337,
+       0,     0,     0,     0,   339,     0,     0,     0,     0,   340,
+     341,   342,     0,   343,   344,   345,  3898,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   350,
+     351,     0,     0,     0,     0,   353,   354,   355,     0,   357,
+     358,   359,   360,   361,   362,   363,     0,     0,     0,     0,
+     366,   367,     0,   368,     0,   369,   370,   371,   372,   373,
+       0,   374,   375,   376,     0,     0,   377,     0,     0,     0,
+     378,   379,   380,   381,   382,     0,     0,   383,   384,   385,
+     386,   387,     0,   388,     0,     0,   390,     0,   392,  -284,
+       0,   393,     0,     0,     0,   395,     0,     0,   397,   398,
+    3899,     0,     0,     0,   400,   401,   402,   403,   404,   405,
+       0,   407,   408,     0,   409,     0,     0,     0,     0,   411,
+     412,   413,     0,     0,     0,     0,   415,     0,     0,     0,
+     416,     0,     0,   418,     0,   420,     0,   421,     0,   423,
+       0,   425,   426,     0,     0,     0,     0,     0,     0,   427,
+     428,     0,   429,     0,     0,   430,     0,     0,   431,     0,
+     433,     0,     0,     0,   435,     0,   436,   437,   438,   439,
+     440,   441,     0,     0,   442,   443,   444,   445,     0,   446,
+     447,     0,   448,     0,   449,   450,   451,   452,     0,     0,
+     453,   454,     0,   455,   456,   457,   458,     0,     0,     0,
+       0,     0,   459,   460,   461,     0,     0,     0,     0,   463,
+     464,   465,     0,   466,   467,     0,   468,   469,     0,     0,
+       0,     0,     0,   472,     0,     0,   473,     0,     0,     0,
+     475,   476,   477,     0,     0,     0,     0,     0,     0,   478,
+       0,     0,   479,     0,     0,     0,   480,   481,   482,   483,
+     484,   485,     0,     0,  -284,     0,     0,     0,   486,     0,
+       0,   488,     0,   490,     0,   139,   491,   140,   141,   142,
+     143,   144,     0,     0,   145,     0,     0,     0,   146,     0,
+       0,     0,     0,   148,   149,   150,   151,   152,   153,     0,
+       0,  -329,     0,     0,     0,   156,     0,     0,     0,   157,
+       0,     0,   158,   159,   160,     0,   161,     0,     0,     0,
+       0,     0,   164,  3892,     0,   165,   166,     0,   167,     0,
+       0,     0,     0,     0,   171,   172,   173,   174,  3893,   176,
+     177,     0,   178,   179,     0,     0,     0,     0,     0,     0,
+       0,   186,     0,   188,     0,   190,   191,   192,   193,     0,
+     194,   195,     0,   196,   197,   198,     0,   200,     0,   201,
+       0,     0,   202,     0,     0,   203,     0,     0,     0,   204,
+       0,     0,     0,   205,   206,   207,     0,     0,   208,     0,
+       0,     0,     0,   209,     0,     0,     0,     0,     0,   211,
+       0,   212,     0,     0,     0,   213,     0,   214,   215,   216,
+     217,     0,     0,     0,     0,     0,     0,   219,   220,   221,
+       0,     0,     0,   222,     0,  -322,   224,     0,   225,   226,
+     227,     0,     0,   228,   229,     0,   230,   231,   232,   233,
+       0,     0,     0,     0,   236,   237,   238,     0,     0,   239,
+     240,  3894,   241,   242,   243,     0,     0,     0,     0,     0,
+       0,   245,     0,   246,     0,   247,     0,   248,   249,   250,
+     251,   252,   253,     0,   254,     0,     0,     0,     0,   256,
+     257,     0,     0,     0,     0,     0,     0,   260,     0,     0,
+       0,   261,   262,   263,   264,  3895,     0,   265,   266,   267,
+       0,   268,     0,   269,     0,     0,     0,     0,   270,     0,
+       0,     0,     0,   272,     0,   273,   274,     0,   275,   276,
+    3896,     0,     0,   277,     0,     0,     0,   279,   280,     0,
+       0,   281,  3897,     0,   282,   283,     0,     0,     0,     0,
+       0,   284,   285,     0,   286,     0,   287,     0,   288,   289,
+       0,     0,     0,     0,  -284,     0,     0,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,   300,   301,   302,
+       0,   303,   304,   305,     0,   306,   307,   308,   309,     0,
+     310,   311,     0,     0,     0,     0,   312,   313,   314,   315,
+     316,   317,     0,     0,   318,   319,     0,   320,     0,   321,
+       0,   322,   323,   324,   325,   326,   327,   328,   329,   330,
+     331,     0,     0,   332,   333,     0,     0,   334,   335,   336,
+     337,     0,     0,     0,     0,   339,     0,     0,     0,     0,
+     340,   341,   342,     0,   343,   344,   345,  3898,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+     350,   351,     0,     0,     0,     0,   353,   354,   355,     0,
+     357,   358,   359,   360,   361,   362,   363,     0,     0,     0,
+       0,   366,   367,     0,   368,     0,   369,   370,   371,   372,
+     373,     0,   374,   375,   376,     0,     0,   377,     0,     0,
+       0,   378,   379,   380,   381,   382,     0,     0,   383,   384,
+     385,   386,   387,     0,   388,     0,     0,   390,     0,   392,
+    -284,     0,   393,     0,     0,     0,   395,     0,     0,   397,
+     398,  3899,     0,     0,     0,   400,   401,   402,   403,   404,
+     405,     0,   407,   408,     0,   409,     0,     0,     0,     0,
+     411,   412,   413,     0,     0,     0,     0,   415,     0,     0,
+       0,   416,     0,     0,   418,     0,   420,     0,   421,     0,
+     423,     0,   425,   426,     0,     0,     0,     0,     0,     0,
+     427,   428,     0,   429,     0,     0,   430,     0,     0,   431,
+       0,   433,     0,     0,     0,   435,     0,   436,   437,   438,
+     439,   440,   441,     0,     0,   442,   443,   444,   445,     0,
+     446,   447,     0,   448,     0,   449,   450,   451,   452,     0,
+       0,   453,   454,     0,   455,   456,   457,   458,     0,     0,
+       0,     0,     0,   459,   460,   461,     0,     0,     0,     0,
+     463,   464,   465,     0,   466,   467,     0,   468,   469,     0,
+       0,     0,     0,     0,   472,     0,     0,   473,     0,     0,
+       0,   475,   476,   477,     0,     0,     0,     0,     0,     0,
+     478,     0,     0,   479,     0,     0,     0,   480,   481,   482,
+     483,   484,   485,     0,     0,  -284,     0,     0,     0,   486,
+       0,     0,   488,     0,   490,     0,   139,   491,   140,   141,
+     142,   143,   144,     0,     0,   145,     0,     0,     0,   146,
+       0,     0,     0,     0,   148,   149,   150,   151,   152,   153,
+       0,     0,  -329,     0,     0,     0,   156,     0,     0,     0,
+     157,     0,     0,   158,   159,   160,     0,   161,     0,     0,
+       0,     0,     0,   164,  3892,     0,   165,   166,     0,   167,
+       0,     0,     0,     0,     0,   171,   172,   173,   174,  3893,
+     176,   177,     0,   178,   179,     0,     0,     0,     0,     0,
+       0,     0,   186,     0,   188,     0,   190,   191,   192,   193,
+       0,   194,   195,     0,   196,   197,   198,     0,   200,     0,
+     201,     0,     0,   202,     0,     0,   203,     0,     0,     0,
+     204,     0,     0,     0,   205,   206,   207,     0,     0,   208,
+       0,     0,     0,     0,   209,     0,     0,     0,     0,     0,
+     211,     0,   212,     0,     0,     0,   213,     0,   214,   215,
+     216,   217,     0,     0,     0,     0,     0,     0,   219,   220,
+     221,     0,     0,     0,   222,     0,  4347,   224,     0,   225,
+     226,   227,     0,     0,   228,   229,     0,   230,   231,   232,
+     233,     0,     0,     0,     0,   236,   237,   238,     0,     0,
+     239,   240,  3894,   241,   242,   243,     0,     0,     0,     0,
+       0,     0,   245,     0,   246,     0,   247,     0,   248,   249,
+     250,   251,   252,   253,     0,   254,     0,     0,     0,     0,
+     256,   257,     0,     0,     0,     0,     0,     0,   260,     0,
+       0,     0,   261,   262,   263,   264,  3895,     0,   265,   266,
+     267,     0,   268,     0,   269,     0,     0,     0,     0,   270,
+       0,     0,     0,     0,   272,     0,   273,   274,     0,   275,
+     276,  3896,     0,     0,   277,     0,     0,     0,   279,   280,
+       0,     0,   281,  3897,     0,   282,   283,     0,     0,     0,
+       0,     0,   284,   285,     0,   286,     0,   287,     0,   288,
+     289,     0,     0,     0,     0,  -284,     0,     0,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
+     302,     0,   303,   304,   305,     0,   306,   307,   308,   309,
+       0,   310,   311,     0,     0,     0,     0,   312,   313,   314,
+     315,   316,   317,     0,     0,   318,   319,     0,   320,     0,
+     321,     0,   322,   323,   324,   325,   326,   327,   328,   329,
+     330,   331,     0,     0,   332,   333,     0,     0,   334,   335,
+     336,   337,     0,     0,     0,     0,   339,     0,     0,     0,
+       0,   340,   341,   342,     0,   343,   344,   345,  3898,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   350,   351,     0,     0,     0,     0,   353,   354,   355,
+       0,   357,   358,   359,   360,   361,   362,   363,     0,     0,
+       0,     0,   366,   367,     0,   368,     0,   369,   370,   371,
+     372,   373,     0,   374,   375,   376,     0,     0,   377,     0,
+       0,     0,   378,   379,   380,   381,   382,     0,     0,   383,
+     384,   385,   386,   387,     0,   388,     0,     0,   390,     0,
+     392,  -284,     0,   393,     0,     0,     0,   395,     0,     0,
+     397,   398,  3899,     0,     0,     0,   400,   401,   402,   403,
+     404,   405,     0,   407,   408,     0,   409,     0,     0,     0,
+       0,   411,   412,   413,     0,     0,     0,     0,   415,     0,
+       0,     0,   416,     0,     0,   418,     0,   420,     0,   421,
+       0,   423,     0,   425,   426,     0,     0,     0,     0,     0,
+       0,   427,   428,     0,   429,     0,     0,   430,     0,     0,
+     431,     0,   433,     0,     0,     0,   435,     0,   436,   437,
+     438,   439,   440,   441,     0,     0,   442,   443,   444,   445,
+       0,   446,   447,     0,   448,     0,   449,   450,   451,   452,
+       0,     0,   453,   454,     0,   455,   456,   457,   458,     0,
+       0,     0,     0,     0,   459,   460,   461,     0,     0,     0,
+       0,   463,   464,   465,     0,   466,   467,     0,   468,   469,
+       0,     0,     0,     0,     0,   472,     0,     0,   473,     0,
+       0,     0,   475,   476,   477,     0,     0,     0,     0,     0,
+       0,   478,     0,     0,   479,     0,     0,     0,   480,   481,
+     482,   483,   484,   485,     0,     0,  -284,     0,     0,     0,
+     486,     0,     0,   488,     0,   490,     0,   139,   491,   140,
+     141,   142,   143,   144,     0,     0,   145,     0,     0,     0,
+     146,     0,     0,     0,     0,   148,   149,   150,   151,   152,
+     153,     0,     0,  -329,     0,     0,     0,   156,     0,     0,
+       0,   157,     0,     0,   158,   159,   160,     0,   161,     0,
+       0,     0,     0,     0,   164,  3892,     0,   165,   166,     0,
+     167,     0,     0,     0,     0,     0,   171,   172,   173,   174,
+    3893,   176,   177,     0,   178,   179,     0,     0,     0,     0,
+       0,     0,     0,   186,     0,   188,     0,   190,   191,   192,
+     193,     0,   194,   195,     0,   196,   197,   198,     0,   200,
+       0,   201,     0,     0,   202,     0,     0,   203,     0,     0,
+       0,   204,     0,     0,     0,   205,   206,   207,     0,     0,
+     208,     0,     0,     0,     0,   209,     0,     0,     0,     0,
+       0,   211,     0,   212,     0,     0,     0,   213,     0,   214,
+     215,   216,   217,     0,     0,     0,     0,     0,     0,   219,
+     220,   221,     0,     0,     0,   222,     0,  4396,   224,     0,
+     225,   226,   227,     0,     0,   228,   229,     0,   230,   231,
+     232,   233,     0,     0,     0,     0,   236,   237,   238,     0,
+       0,   239,   240,  3894,   241,   242,   243,     0,     0,     0,
+       0,     0,     0,   245,     0,   246,     0,   247,     0,   248,
+     249,   250,   251,   252,   253,     0,   254,     0,     0,     0,
+       0,   256,   257,     0,     0,     0,     0,     0,     0,   260,
+       0,     0,     0,   261,   262,   263,   264,  3895,     0,   265,
+     266,   267,     0,   268,     0,   269,     0,     0,     0,     0,
+     270,     0,     0,     0,     0,   272,     0,   273,   274,     0,
+     275,   276,  3896,     0,     0,   277,     0,     0,     0,   279,
+     280,     0,     0,   281,  3897,     0,   282,   283,     0,     0,
+       0,     0,     0,   284,   285,     0,   286,     0,   287,     0,
+     288,   289,     0,     0,     0,     0,  -284,     0,     0,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,   300,
+     301,   302,     0,   303,   304,   305,     0,   306,   307,   308,
+     309,     0,   310,   311,     0,     0,     0,     0,   312,   313,
+     314,   315,   316,   317,     0,     0,   318,   319,     0,   320,
+       0,   321,     0,   322,   323,   324,   325,   326,   327,   328,
+     329,   330,   331,     0,     0,   332,   333,     0,     0,   334,
+     335,   336,   337,     0,     0,     0,     0,   339,     0,     0,
+       0,     0,   340,   341,   342,     0,   343,   344,   345,  3898,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   350,   351,     0,     0,     0,     0,   353,   354,
+     355,     0,   357,   358,   359,   360,   361,   362,   363,     0,
+       0,     0,     0,   366,   367,     0,   368,     0,   369,   370,
+     371,   372,   373,     0,   374,   375,   376,     0,     0,   377,
+       0,     0,     0,   378,   379,   380,   381,   382,     0,     0,
+     383,   384,   385,   386,   387,     0,   388,     0,     0,   390,
+       0,   392,  -284,     0,   393,     0,     0,     0,   395,     0,
+       0,   397,   398,  3899,     0,     0,     0,   400,   401,   402,
+     403,   404,   405,     0,   407,   408,     0,   409,     0,     0,
+       0,     0,   411,   412,   413,     0,     0,     0,     0,   415,
+       0,     0,     0,   416,     0,     0,   418,     0,   420,     0,
+     421,     0,   423,     0,   425,   426,     0,     0,     0,     0,
+       0,     0,   427,   428,     0,   429,     0,     0,   430,     0,
+       0,   431,     0,   433,     0,     0,     0,   435,     0,   436,
+     437,   438,   439,   440,   441,     0,     0,   442,   443,   444,
+     445,     0,   446,   447,     0,   448,     0,   449,   450,   451,
+     452,     0,     0,   453,   454,     0,   455,   456,   457,   458,
+       0,     0,     0,     0,     0,   459,   460,   461,     0,     0,
+       0,     0,   463,   464,   465,     0,   466,   467,     0,   468,
+     469,     0,     0,     0,     0,     0,   472,     0,     0,   473,
+       0,     0,     0,   475,   476,   477,     0,     0,     0,     0,
+       0,     0,   478,     0,     0,   479,     0,     0,     0,   480,
+     481,   482,   483,   484,   485,     0,     0,  -284,     0,     0,
+       0,   486,     0,     0,   488,     0,   490,     0,   139,   491,
+     140,   141,   142,   143,   144,     0,     0,   145,     0,     0,
+       0,   146,     0,     0,     0,     0,   148,   149,   150,   151,
+     152,   153,     0,     0,  -329,     0,     0,     0,   156,     0,
+       0,     0,   157,     0,     0,   158,   159,   160,     0,   161,
+       0,     0,     0,     0,     0,   164,  3892,     0,   165,   166,
+       0,   167,     0,     0,     0,     0,     0,   171,   172,   173,
+     174,  3893,   176,   177,     0,   178,   179,     0,     0,     0,
+       0,     0,     0,     0,   186,     0,   188,     0,   190,   191,
+     192,   193,     0,   194,   195,     0,   196,   197,   198,     0,
+     200,     0,   201,     0,     0,   202,     0,     0,   203,     0,
+       0,     0,   204,     0,     0,     0,   205,   206,   207,     0,
+       0,   208,     0,     0,     0,     0,   209,     0,     0,     0,
+       0,     0,   211,     0,   212,     0,     0,     0,   213,     0,
+     214,   215,   216,   217,     0,     0,     0,     0,     0,     0,
+     219,   220,   221,     0,     0,     0,   222,     0,  -303,   224,
+       0,   225,   226,   227,     0,     0,   228,   229,     0,   230,
+     231,   232,   233,     0,     0,     0,     0,   236,   237,   238,
+       0,     0,   239,   240,  3894,   241,   242,   243,     0,     0,
+       0,     0,     0,     0,   245,     0,   246,     0,   247,     0,
+     248,   249,   250,   251,   252,   253,     0,   254,     0,     0,
+       0,     0,   256,   257,     0,     0,     0,     0,     0,     0,
+     260,     0,     0,     0,   261,   262,   263,   264,  3895,     0,
+     265,   266,   267,     0,   268,     0,   269,     0,     0,     0,
+       0,   270,     0,     0,     0,     0,   272,     0,   273,   274,
+       0,   275,   276,  3896,     0,     0,   277,     0,     0,     0,
+     279,   280,     0,     0,   281,  3897,     0,   282,   283,     0,
+       0,     0,     0,     0,   284,   285,     0,   286,     0,   287,
+       0,   288,   289,     0,     0,     0,     0,  -284,     0,     0,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+     300,   301,   302,     0,   303,   304,   305,     0,   306,   307,
+     308,   309,     0,   310,   311,     0,     0,     0,     0,   312,
+     313,   314,   315,   316,   317,     0,     0,   318,   319,     0,
+     320,     0,   321,     0,   322,   323,   324,   325,   326,   327,
+     328,   329,   330,   331,     0,     0,   332,   333,     0,     0,
+     334,   335,   336,   337,     0,     0,     0,     0,   339,     0,
+       0,     0,     0,   340,   341,   342,     0,   343,   344,   345,
+    3898,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   350,   351,     0,     0,     0,     0,   353,
+     354,   355,     0,   357,   358,   359,   360,   361,   362,   363,
+       0,     0,     0,     0,   366,   367,     0,   368,     0,   369,
+     370,   371,   372,   373,     0,   374,   375,   376,     0,     0,
+     377,     0,     0,     0,   378,   379,   380,   381,   382,     0,
+       0,   383,   384,   385,   386,   387,     0,   388,     0,     0,
+     390,     0,   392,  -284,     0,   393,     0,     0,     0,   395,
+       0,     0,   397,   398,  3899,     0,     0,     0,   400,   401,
+     402,   403,   404,   405,     0,   407,   408,     0,   409,     0,
+       0,     0,     0,   411,   412,   413,     0,     0,     0,     0,
+     415,     0,     0,     0,   416,     0,     0,   418,     0,   420,
+       0,   421,     0,   423,     0,   425,   426,     0,     0,     0,
+       0,     0,     0,   427,   428,     0,   429,     0,     0,   430,
+       0,     0,   431,     0,   433,     0,     0,     0,   435,     0,
+     436,   437,   438,   439,   440,   441,     0,     0,   442,   443,
+     444,   445,     0,   446,   447,     0,   448,     0,   449,   450,
+     451,   452,     0,     0,   453,   454,     0,   455,   456,   457,
+     458,     0,     0,     0,     0,     0,   459,   460,   461,     0,
+       0,     0,     0,   463,   464,   465,     0,   466,   467,     0,
+     468,   469,     0,     0,     0,     0,     0,   472,     0,     0,
+     473,     0,     0,     0,   475,   476,   477,     0,     0,     0,
+       0,     0,     0,   478,     0,     0,   479,     0,     0,     0,
+     480,   481,   482,   483,   484,   485,     0,     0,  -284,     0,
+       0,     0,   486,     0,     0,   488,     0,   490,     0,   139,
+     491,   140,   141,   142,   143,   144,     0,     0,   145,     0,
+       0,     0,   146,     0,     0,     0,     0,   148,   149,   150,
+     151,   152,   153,     0,     0,  -329,     0,     0,     0,   156,
+       0,     0,     0,   157,     0,     0,   158,   159,   160,     0,
+     161,     0,     0,     0,     0,     0,   164,  3892,     0,   165,
+     166,     0,   167,     0,     0,     0,     0,     0,   171,   172,
+     173,   174,  3893,   176,   177,     0,   178,   179,     0,     0,
+       0,     0,     0,     0,     0,   186,     0,   188,     0,   190,
+     191,   192,   193,     0,   194,   195,     0,   196,   197,   198,
+       0,   200,     0,   201,     0,     0,   202,     0,     0,   203,
+       0,     0,     0,   204,     0,     0,     0,   205,   206,   207,
+       0,     0,   208,     0,     0,     0,     0,   209,     0,     0,
+       0,     0,     0,   211,     0,   212,     0,     0,     0,   213,
+       0,   214,   215,   216,   217,     0,     0,     0,     0,     0,
+       0,   219,   220,   221,     0,     0,     0,   222,     0,     0,
+     224,     0,   225,   226,   227,     0,     0,   228,   229,     0,
+     230,   231,   232,   233,     0,     0,     0,     0,   236,   237,
+     238,     0,     0,   239,   240,  3894,   241,   242,   243,     0,
+       0,     0,     0,     0,     0,   245,     0,   246,     0,   247,
+       0,   248,   249,   250,   251,   252,   253,     0,   254,     0,
+       0,     0,     0,   256,   257,     0,     0,     0,     0,     0,
+       0,   260,     0,     0,     0,   261,   262,   263,   264,  3895,
+       0,   265,   266,   267,     0,   268,     0,   269,     0,     0,
+       0,     0,   270,     0,     0,     0,     0,   272,     0,   273,
+     274,     0,   275,   276,  3896,     0,     0,   277,     0,     0,
+       0,   279,   280,     0,     0,   281,  3897,     0,   282,   283,
+       0,     0,     0,     0,     0,   284,   285,     0,   286,     0,
+     287,     0,   288,   289,     0,     0,     0,     0,  -284,     0,
+       0,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,   300,   301,   302,     0,   303,   304,   305,     0,   306,
+     307,   308,   309,     0,   310,   311,     0,     0,     0,     0,
+     312,   313,   314,   315,   316,   317,     0,     0,   318,   319,
+       0,   320,     0,   321,     0,   322,   323,   324,   325,   326,
+     327,   328,   329,   330,   331,     0,     0,   332,   333,     0,
+       0,   334,   335,   336,   337,     0,     0,     0,     0,   339,
+       0,     0,     0,     0,   340,   341,   342,     0,   343,   344,
+     345,  3898,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,   350,   351,     0,     0,     0,     0,
+     353,   354,   355,     0,   357,   358,   359,   360,   361,   362,
+     363,     0,     0,     0,     0,   366,   367,     0,   368,     0,
+     369,   370,   371,   372,   373,     0,   374,   375,   376,     0,
+       0,   377,     0,     0,     0,   378,   379,   380,   381,   382,
+       0,     0,   383,   384,   385,   386,   387,     0,   388,     0,
+       0,   390,     0,   392,  -284,     0,   393,     0,     0,     0,
+     395,     0,     0,   397,   398,  3899,     0,     0,     0,   400,
+     401,   402,   403,   404,   405,     0,   407,   408,     0,   409,
+       0,     0,     0,     0,   411,   412,   413,     0,     0,     0,
+       0,   415,     0,     0,     0,   416,     0,     0,   418,     0,
+     420,     0,   421,     0,   423,     0,   425,   426,     0,     0,
+       0,     0,     0,     0,   427,   428,     0,   429,     0,     0,
+     430,     0,     0,   431,     0,   433,     0,     0,     0,   435,
+       0,   436,   437,   438,   439,   440,   441,     0,     0,   442,
+     443,   444,   445,     0,   446,   447,     0,   448,     0,   449,
+     450,   451,   452,     0,     0,   453,   454,     0,   455,   456,
+     457,   458,     0,     0,     0,     0,     0,   459,   460,   461,
+       0,     0,     0,     0,   463,   464,   465,     0,   466,   467,
+       0,   468,   469,     0,     0,     0,     0,     0,   472,     0,
+       0,   473,     0,     0,     0,   475,   476,   477,     0,     0,
+       0,     0,     0,     0,   478,     0,     0,   479,     0,     0,
+       0,   480,   481,   482,   483,   484,   485,     0,     0,  -284,
+       0,     0,     0,   486,     0,     0,   488,     0,   490,     0,
+     139,   491,   140,   141,   142,   143,   144,     0,     0,   145,
+       0,     0,     0,   146,     0,     0,     0,     0,   148,   149,
+     150,   151,   152,   153,     0,     0,  -329,     0,     0,     0,
+     156,     0,     0,     0,   157,     0,     0,   158,   159,   160,
+       0,   161,     0,     0,     0,     0,     0,   164,  3892,     0,
+     165,   166,     0,   167,     0,     0,     0,     0,     0,   171,
+     172,   173,   174,  3893,   176,   177,     0,   178,   179,     0,
+       0,     0,     0,     0,     0,     0,   186,     0,   188,     0,
+     190,   191,   192,   193,     0,   194,   195,     0,   196,   197,
+     198,     0,   200,     0,   201,     0,     0,   202,     0,     0,
+     203,     0,     0,     0,   204,     0,     0,     0,   205,   206,
+     207,     0,     0,   208,     0,     0,     0,     0,   209,     0,
+       0,     0,     0,     0,   211,     0,   212,     0,     0,     0,
+     213,     0,   214,   215,   216,   217,     0,     0,     0,     0,
+       0,     0,   219,   220,   221,     0,     0,     0,   222,     0,
+       0,   224,     0,   225,   226,   227,     0,     0,   228,   229,
+       0,   230,   231,   232,   233,     0,     0,     0,     0,   236,
+     237,   238,     0,     0,   239,   240,  3894,   241,   242,   243,
+       0,     0,     0,     0,     0,     0,   245,     0,   246,     0,
+     247,     0,   248,   249,   250,   251,   252,   253,     0,   254,
+       0,     0,     0,     0,   256,   257,     0,     0,     0,     0,
+       0,     0,   260,     0,     0,     0,   261,   262,   263,   264,
+    3895,     0,   265,   266,   267,     0,   268,     0,   269,     0,
+       0,     0,     0,   270,     0,     0,     0,     0,   272,     0,
+     273,   274,     0,   275,   276,  3896,     0,     0,   277,     0,
+       0,     0,   279,   280,     0,     0,   281,  3897,     0,   282,
+     283,     0,     0,     0,     0,     0,   284,   285,     0,   286,
+       0,   287,     0,   288,   289,     0,     0,     0,     0,  -284,
+       0,     0,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,   300,   301,   302,     0,   303,   304,   305,     0,
+     306,   307,   308,   309,     0,   310,   311,     0,     0,     0,
+       0,   312,   313,   314,   315,   316,   317,     0,     0,   318,
+     319,     0,   320,     0,   321,     0,   322,   323,   324,   325,
+     326,   327,   328,   329,   330,   331,     0,     0,   332,   333,
+       0,     0,   334,   335,   336,   337,     0,     0,     0,     0,
+     339,     0,     0,     0,     0,   340,   341,   342,     0,   343,
+     344,   345,  3898,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   350,   351,     0,     0,     0,
+       0,   353,   354,   355,     0,   357,   358,   359,   360,   361,
+     362,   363,     0,     0,     0,     0,   366,   367,     0,   368,
+       0,   369,   370,   371,   372,   373,     0,   374,   375,   376,
+       0,     0,   377,     0,     0,     0,   378,   379,   380,   381,
+     382,     0,     0,   383,   384,   385,   386,   387,     0,   388,
+       0,     0,   390,     0,   392,  -284,     0,   393,     0,     0,
+       0,   395,     0,     0,   397,   398,  3899,     0,     0,     0,
+     400,   401,   402,   403,   404,   405,     0,   407,   408,     0,
+     409,     0,     0,     0,     0,   411,   412,   413,     0,     0,
+       0,     0,   415,     0,     0,     0,   416,     0,     0,   418,
+       0,   420,     0,   421,     0,   423,     0,   425,   426,     0,
+       0,     0,     0,     0,     0,   427,   428,     0,   429,     0,
+       0,   430,     0,     0,   431,     0,   433,     0,     0,     0,
+     435,     0,   436,   437,   438,   439,   440,   441,     0,     0,
+     442,   443,   444,   445,     0,   446,   447,     0,   448,     0,
+     449,   450,   451,   452,     0,     0,   453,   454,     0,   455,
+     456,   457,   458,     0,     0,     0,     0,     0,   459,   460,
+     461,     0,     0,     0,     0,   463,   464,   465,     0,   466,
+     467,     0,   468,   469,     0,     0,     0,     0,     0,   472,
+       0,     0,  4235,     0,     0,     0,   475,   476,   477,     0,
+       0,     0,     0,     0,     0,   478,     0,     0,   479,     0,
+       0,     0,   480,   481,   482,   483,   484,   485,     0,     0,
+    -284,     0,     0,     0,   486,     0,     0,   488,     0,   490,
+       0,   139,   491,   140,   141,   142,   143,   144,     0,     0,
+     145,     0,     0,     0,   146,     0,     0,     0,     0,   148,
+     149,   150,   151,   152,   153,     0,     0,     0,     0,     0,
+       0,   156,     0,     0,     0,   157,     0,     0,   158,   159,
+     160,     0,   161,     0,     0,     0,     0,     0,   164,     0,
+       0,   165,   166,     0,   167,     0,     0,     0,     0,     0,
+     171,   172,   173,   174,     0,   176,   177,     0,   178,   179,
+       0,     0,     0,     0,     0,     0,     0,   186,     0,   188,
+       0,   190,   191,   192,   193,     0,   194,   195,     0,   196,
+     197,   198,     0,   200,     0,   201,     0,     0,   202,     0,
+       0,   203,     0,     0,     0,   204,     0,     0,     0,   205,
+     206,   207,     0,     0,   208,     0,     0,     0,     0,   209,
+       0,     0,     0,     0,     0,   211,     0,   212,     0,     0,
+       0,   213,     0,   214,   215,   216,   217,     0,     0,     0,
+       0,     0,     0,   219,   220,   221,     0,     0,     0,   222,
+       0,     0,   224,     0,   225,   226,   227,     0,     0,   228,
+     229,     0,   230,   231,   232,   233,     0,     0,     0,     0,
+     236,   237,   238,     0,     0,   239,   240,     0,   241,   242,
+     243,     0,     0,     0,     0,     0,     0,   245,     0,   246,
+       0,   247,     0,   248,   249,   250,   251,   252,   253,     0,
+     254,     0,     0,     0,     0,   256,   257,     0,     0,     0,
+       0,     0,     0,   260,     0,     0,     0,   261,   262,   263,
+     264,     0,     0,   265,   266,   267,     0,   268,     0,   269,
+       0,     0,     0,     0,   270,     0,     0,     0,     0,   272,
+       0,   273,   274,     0,   275,   276,     0,     0,     0,   277,
+       0,     0,     0,   279,   280,     0,     0,   281,     0,     0,
+     282,   283,     0,     0,     0,     0,     0,   284,   285,     0,
+     286,     0,   287,     0,   288,   289,     0,     0,     0,     0,
+       0,     0,     0,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,   300,   301,   302,     0,   303,   304,   305,
+       0,   306,   307,   308,   309,     0,   310,   311,     0,     0,
+       0,     0,   312,   313,   314,   315,   316,   317,     0,     0,
+     318,   319,     0,   320,     0,   321,     0,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,   331,     0,     0,   332,
+     333,     0,     0,   334,   335,   336,   337,     0,     0,     0,
+       0,   339,     0,     0,     0,     0,   340,   341,   342,     0,
+     343,   344,   345,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   350,   351,     0,     0,
+       0,     0,   353,   354,   355,     0,   357,   358,   359,   360,
+     361,   362,   363,     0,     0,     0,     0,   366,   367,     0,
+     368,     0,   369,   370,   371,   372,   373,     0,   374,   375,
+     376,     0,     0,   377,     0,     0,     0,   378,   379,   380,
+     381,   382,     0,     0,   383,   384,   385,   386,   387,     0,
+     388,     0,     0,   390,     0,   392,     0,     0,   393,     0,
+       0,     0,   395,     0,     0,   397,   398,     0,     0,     0,
+       0,   400,   401,   402,   403,   404,   405,     0,   407,   408,
+       0,   409,     0,     0,     0,     0,   411,   412,   413,     0,
+       0,     0,     0,   415,     0,     0,     0,   416,     0,     0,
+     418,     0,   420,     0,   421,     0,   423,     0,   425,   426,
+       0,     0,     0,     0,     0,     0,   427,   428,     0,   429,
+       0,     0,   430,     0,     0,   431,     0,   433,     0,     0,
+       0,   435,     0,   436,   437,   438,   439,   440,   441,     0,
+       0,   442,   443,   444,   445,     0,   446,   447,     0,   448,
+       0,   449,   450,   451,   452,     0,     0,   453,   454,     0,
+     455,   456,   457,   458,     0,     0,     0,     0,     0,   459,
+     460,   461,     0,     0,     0,     0,   463,   464,   465,     0,
+     466,   467,     0,   468,   469,     0,     0,     0,     0,     0,
+     472,     0,     0,   473,     0,     0,     0,   475,   476,   477,
+       0,     0,     0,     0,     0,     0,   478,     0,     0,   479,
+       0,     0,     0,   480,   481,   482,   483,   484,   485,     0,
+       0,     0,     0,     0,     0,   486,     0,     0,   488,     0,
+     490,     0,     0,   491
+};
+
+static const yytype_int16 yycheck[] =
+{
+       6,   648,   579,   579,   556,    20,   988,  1148,   602,   899,
+     616,  1178,  1105,    19,    29,  1178,    22,   124,   696,  1800,
+     989,    36,   675,     6,  1693,  1124,    32,  1077,   701,   951,
+    1831,  1832,  1486,    39,   813,   722,    42,  1387,  1071,  1072,
+      46,  1387,  1241,  2019,   926,  1310,  1819,  2481,    54,  2054,
+    2291,  1484,  2522,   524,  2589,  1200,  2411,   924,  2819,    22,
+    2330,  1318,  1207,  2764,  2100,  2603,   993,  1208,  1209,   951,
+     993,  1212,  1213,  1214,  1215,  2121,  1217,  1218,  1219,  1220,
+    1221,  1222,  1223,  1224,   757,   952,  3208,   760,  2134,   767,
+      96,  1467,  2399,  1475,  1115,  1961,  1959,   644,   645,  1819,
+    1959,     4,  2016,  1398,  2220,   657,   658,  1890,  2135,  2964,
+    1914,  1915,  2353,   119,  2476,   121,  1962,   123,   124,   125,
+    1966,  1416,   775,   776,   777,  3214,   662,  1931,  2079,  1424,
+    1425,  1977,  2079,    96,   787,  2263,  2343,  3444,   121,   786,
+     123,  1987,  2392,    34,  1948,  1949,    17,   882,  1457,  2455,
+    2400,  2620,  1528,  3271,  3272,    16,    17,  3275,    73,    25,
+    1964,  1965,  3097,  1967,     8,    19,  1970,  1971,    16,    17,
+    1974,    19,  3232,   131,  1942,  1979,  3294,    60,    19,  1983,
+    1984,  1985,  1986,  3301,    28,    19,  1990,  1991,  1830,  1993,
+    2680,    35,    16,    17,    17,  1999,    21,    30,  2002,  2003,
+      51,  2005,  3491,   112,  1905,  2617,  2618,    19,  1933,   815,
+     151,  2623,    47,  2625,    16,    17,  2079,   145,    16,    17,
+    2079,  2458,    36,  2440,  2441,   175,  3928,   114,    16,    17,
+    2565,  2444,   967,  2591,    59,    60,  2757,    58,    68,    16,
+      17,  1951,    43,    36,    83,    51,    66,   367,   217,    16,
+      17,   128,    63,    11,   233,   373,   358,    16,    17,  2063,
+    2064,  2065,  2066,  2875,  3038,  3383,  4053,    63,  1467,   388,
+    3046,   877,  2040,    82,    16,    17,   188,  2045,   342,   175,
+     157,   128,    46,  2051,  2052,   267,   157,   341,  2056,   279,
+     134,   226,    21,   391,   251,    21,   192,   450,   355,   443,
+     128,    56,   226,   157,    86,    34,   650,   161,    34,   363,
+     157,   405,    82,   128,   226,    16,    17,   995,  3440,    48,
+     161,   285,    48,   140,    59,    60,    16,    17,   192,  1528,
+      59,    60,  2068,    59,    60,   423,    23,   192,   515,   390,
+    2557,  2558,   157,   230,  3488,   335,   151,  2104,  2384,   161,
+    4182,   540,   953,  4185,   175,  4057,    16,    17,   179,    20,
+     129,   285,   268,    16,    17,  2751,   394,   233,   394,   190,
+    2214,   129,   485,   151,    16,    17,   355,   241,    25,   354,
+     418,  4015,   190,   432,   210,   192,    40,  2363,  2364,  2365,
+     192,   572,    10,   189,   282,  3564,    16,    17,  3567,   213,
+     214,   439,   509,  3676,   192,   508,   540,   168,    70,   132,
+    3528,   505,   230,   222,   511,   224,   157,   301,   530,  3537,
+     213,   214,   534,    16,    17,   164,    64,  1114,   254,   561,
+      16,    17,   470,   192,   195,   532,   539,   244,   545,  3712,
+     553,  1128,   308,  3561,   253,    70,   210,   636,  3566,   630,
+     132,  3620,  2838,   585,   418,    16,    17,   506,   433,  1238,
+      16,    17,   556,   491,   414,   491,   810,   373,  1437,   277,
+     358,  1018,   133,   285,   243,  4307,   540,  4111,  2272,   567,
+      16,    17,   169,   660,   637,   226,  3793,   631,  3632,   540,
+     414,   115,   449,   348,   118,   316,  3272,  1049,  1050,  1051,
+     317,   599,   566,   509,   598,   511,   441,   657,   658,   373,
+     629,   372,   159,   631,   375,  3604,  4303,   637,   414,  2826,
+     622,   511,   528,  1977,   372,  1392,   532,   375,  1395,   357,
+    1457,   585,  3306,  1400,  1457,   541,   515,  3681,  2893,   545,
+     341,   547,   511,   600,  1743,  3667,  2460,   475,   372,   146,
+    2464,   375,    16,    17,   560,   237,  1203,  1933,  1211,  1426,
+    1427,  2768,  2769,  2770,  2478,  2479,  1301,  1449,  2874,  2605,
+     372,  2877,  2878,   375,  2488,  1228,    16,    17,    16,    17,
+    1721,  2444,   588,  1959,   372,  2444,   233,   375,   418,  1884,
+    2896,  1732,  2349,   414,  1735,   372,  1331,   448,   375,   354,
+    1527,   607,  2516,   338,  1527,   372,   418,   403,   375,  3221,
+     616,   249,   618,   372,  2565,   426,   375,   375,  2565,  1090,
+    1091,   600,   604,   629,  3713,   188,  2008,  3148,  2398,   635,
+     372,    16,    17,   375,   640,  2872,   642,  2405,   644,   645,
+      16,    17,   448,   649,   650,   548,  1117,   611,   654,  3139,
+    3411,  2864,   635,  2988,  1125,   390,  1127,  3015,   664,   665,
+     666,   308,   603,   226,   670,   485,   629,  2471,  1139,  1140,
+    1141,   372,   584,  2587,   375,  4377,  1147,   640,  1284,  2483,
+     462,   631,   372,    16,    17,   375,   589,   583,  1467,   598,
+    2391,    73,  2068,   537,  1715,  2463,   460,  2465,  2423,  1246,
+     441,   659,  2565,  2079,  2472,   812,  2565,  1800,   355,   592,
+     551,   555,   372,  2355,   629,   375,   722,  2485,   551,   372,
+    3809,  3211,   375,  2491,  2492,   564,   540,   614,   551,  4018,
+     372,  3791,  2442,   375,  1933,   606,  2772,  2773,   629,  2507,
+    2508,  3011,  4049,    16,    17,   570,   590,   540,  1354,  1528,
+    3839,   585,   372,  2062,   615,   375,    16,    17,   635,  2563,
+    3695,   585,   597,  2531,   635,   631,  1313,   615,    16,    17,
+    2987,   606,  2900,   634,   780,  2556,   782,   573,  1513,   372,
+     631,   635,   375,  1330,  3253,  3254,   372,   405,   635,   375,
+    1396,   615,  3261,    16,    17,  3264,  3265,   606,   603,   611,
+     806,   807,   808,   573,   810,   811,   812,   631,   814,   815,
+     631,   372,  3281,   615,   375,  3959,   372,   615,   925,   375,
+     635,  1422,  2798,  2559,   807,   603,  3295,   615,   811,   631,
+      64,   814,  3301,  3302,  3303,  3304,   372,  2681,   615,   375,
+    1376,   570,   630,  3255,   570,  2602,   852,  3259,   615,   511,
+      16,    17,  3996,   630,   631,   578,   615,  3946,  2834,   865,
+     514,  4168,   601,   630,   631,  2298,   595,  1017,   515,  2068,
+     467,   877,   878,   615,   361,  3145,   882,  3289,  3290,  3291,
+    2079,   535,   520,  3245,  1461,  3297,   511,   505,   630,   631,
+     195,  3198,   284,  3305,   635,  3202,   578,    16,    17,    32,
+     629,   636,   865,  2704,  4022,  3374,  4024,   561,   372,    16,
+      17,   375,  3218,   210,   615,   878,  3157,  1067,    90,   925,
+     544,    16,    17,   547,  3501,   615,  2720,  2721,  2722,   630,
+     631,   125,   372,  3788,   372,   375,    82,   375,   556,  2740,
+     630,   631,  2954,    16,    17,  3483,  3153,   312,  3198,    16,
+      17,    12,  3202,   600,  1641,   615,   268,   254,  1880,   270,
+    3372,   967,   615,    16,    17,  2746,    71,   209,   871,  3381,
+     630,   631,     8,   615,   202,   819,   161,   630,   631,    88,
+     598,  4070,    34,   989,   631,  3021,   192,   372,  1910,   631,
+     375,   185,  2765,    16,    17,   615,   372,   251,  1880,   375,
+    1536,  2864,   609,  2457,  2458,  2864,  1873,  4096,   195,   263,
+     630,   631,  1018,   629,   301,   249,  1883,   467,  2159,  1886,
+    1887,   584,   615,  3050,  2374,   407,  2376,  2377,  1910,   615,
+    2376,  2377,   629,   175,  2817,   461,   633,  2988,   631,   372,
+     178,  2988,   375,   125,   630,  2765,   274,  2423,   440,   159,
+     192,    16,    17,  2310,   615,  4177,  2106,  2827,  2828,   615,
+      51,   373,   268,  1069,   370,   629,    12,  1073,  2444,   161,
+     631,   125,  2938,   637,   128,   631,   222,  3193,   224,   615,
+     141,  1734,   147,  1190,    16,    17,    16,    17,   282,  2234,
+    2385,    16,    17,  2939,   389,   631,    16,    17,   190,   372,
+     405,   485,   375,    16,    17,   125,  1069,   253,  1114,  2890,
+    1073,   244,   372,   342,   534,   375,   350,   154,    16,    17,
+    1227,    25,  1128,   233,   372,  2988,   413,   375,   165,  2988,
+    2512,   185,  1819,   193,   267,  2062,   126,   190,  2403,  2062,
+     435,  2240,  2241,  1749,   631,  3683,   457,   183,   530,   372,
+    2819,   615,   375,  3730,  1933,    16,    17,    16,    17,   213,
+    4005,   352,  4007,  2330,   358,  2306,  3142,   631,  3475,  3476,
+     111,  3207,  1178,   555,   157,   615,   285,   615,  1784,   629,
+      71,   318,   467,  2559,  1190,   235,   104,  1739,   797,  2565,
+      52,   631,    89,   631,   244,   141,  3896,  3897,   485,   453,
+     282,    63,  1808,  1809,  1751,  3181,   372,    16,    17,   375,
+     401,   108,  2233,   605,  1321,    16,    17,    25,   405,   357,
+     157,  1227,  2243,     0,  2423,  3237,  1232,   168,   282,   534,
+     615,  1237,    16,    17,  2401,   183,  3937,   230,  2401,   615,
+    1246,   413,  4003,  1795,   472,   355,   631,    80,   490,   301,
+      16,    17,   242,   372,   195,   631,   375,    16,    17,  3794,
+     572,   254,   282,  1840,   629,   372,    16,    17,   375,   374,
+      16,    17,   414,   507,  1237,   166,   358,   372,  1284,   274,
+     375,   890,   615,    16,    17,   268,   520,    16,    17,  2068,
+    1296,   476,  1298,    25,   427,  1301,  2729,  3767,   631,   372,
+    2079,   157,   375,  4043,   358,   372,   130,  1313,   375,   257,
+     400,   540,   377,  3777,  3228,  1321,   234,   202,  3364,   372,
+      16,    17,   375,  2490,  1330,  1331,   386,  2490,   378,   233,
+     226,   268,  3602,   251,   371,  3249,   631,   566,   358,  4461,
+     511,    21,   615,   467,   629,   263,   161,   534,  1354,   372,
+      82,  1357,   375,   142,    34,   615,   189,  1464,   631,  1365,
+    2559,   356,   342,   354,   351,   352,  2565,   615,    48,   563,
+     630,  1377,  1378,  1379,  1380,  1381,  1382,   125,   612,    59,
+      60,  1387,  2509,   631,   476,    16,    17,  1393,  1394,   274,
+    1396,  4021,   615,  1399,  1377,  1378,  1379,   230,  1381,  1302,
+     629,   538,    16,    17,   308,   515,   354,   372,   631,     8,
+     375,  1394,   274,  1419,   161,   561,  1399,  1380,  2872,  1382,
+     558,   254,   593,   341,   484,   233,   205,   159,   565,   606,
+     420,    30,  3896,  3897,    16,    17,   574,   185,   534,   585,
+     372,   583,   372,   375,   176,   375,   168,   372,   168,   615,
+     375,   355,   372,   342,   631,   375,  1419,   448,  1464,   372,
+    2810,   285,   375,  2556,   405,   631,    12,    16,    17,  1372,
+     366,   129,  1478,   195,   372,  1481,  1482,   375,   362,   364,
+     125,   563,   138,   374,   475,  2939,  4226,  3842,  2864,   631,
+     600,   205,  3468,   467,    16,    17,   615,   153,    16,    17,
+     308,   233,   539,  1112,   551,   629,   390,  1513,   615,   563,
+     129,   372,   631,   372,   375,  1478,   375,    16,    17,  1482,
+     615,   631,    16,    17,   631,  3795,  1532,   517,  1534,  1535,
+     592,  1537,  1538,   595,   282,   453,   631,   251,  4238,  4239,
+     185,   330,   615,   563,  1550,   483,  1552,    17,   615,   268,
+     467,  1534,  1535,  1162,  2604,  2700,  3324,  1166,   631,    12,
+     540,   467,   615,   372,   631,    82,   375,  1470,   213,   530,
+     403,   372,  3618,   534,   375,   130,   308,   630,  4042,  4043,
+     630,    41,   637,  3559,  2237,  2752,   566,   472,   372,  2752,
+     467,   375,   615,   534,  4064,   141,    16,    17,   516,  4339,
+    3841,  4341,   467,    16,    17,    12,   372,   225,   631,   375,
+     358,   515,  2988,   372,   467,   556,   375,   349,  4088,  4089,
+     581,   604,   372,   355,   243,   375,   372,    16,    17,   375,
+    4370,    16,    17,    16,    17,  1641,  1642,   282,   576,   372,
+     585,    12,   375,   372,  2423,  1752,   375,  4277,  4278,   629,
+     615,   540,   635,  2746,   373,   629,   540,   598,  2129,   373,
+     215,   205,  2335,  2336,  2337,  2136,   631,   604,  4408,  4409,
+     530,   222,  4136,   224,   534,   135,   372,   566,  2149,   375,
+     618,  3801,  3802,   615,   534,   615,   631,  4151,   141,   467,
+     615,  3124,   637,  1699,   537,   615,   600,   225,   635,   631,
+    4164,   631,   615,    16,    17,   222,   631,   224,   367,  3490,
+     630,  2182,   629,   358,    16,    17,   634,   615,   631,   244,
+    3725,  3726,   510,   629,    16,    17,   514,  3500,    16,    17,
+     285,   205,   630,   230,   141,  1741,   253,  2343,   598,   264,
+     629,   372,  3411,  1749,   375,  1751,  1752,   629,    16,    17,
+      16,    17,   629,  2880,   615,   637,   615,  1763,   372,  1765,
+     623,   375,  4226,  4197,   629,  1771,  1772,   630,  1774,   630,
+     141,   630,   230,  3546,  4238,  4239,   629,   241,  1784,  2250,
+    2559,  1787,   230,   515,  2911,  1791,  2565,  3348,  3349,  2988,
+     372,   467,    47,   375,   623,  2922,   192,  2890,  2925,    16,
+      17,   630,  1808,  1809,  1810,  1811,   615,   192,  1771,  1772,
+     590,  1774,   475,  1819,   615,   563,  1822,  1823,  1824,  1005,
+    1006,   630,  4286,   372,  1787,   606,   375,   630,  1791,   630,
+    3950,   615,  4296,  1839,  3954,   624,   625,   626,   627,   178,
+      16,    17,  1848,   585,  2971,    39,   630,  1810,  1811,   615,
+     372,   629,    46,   375,   372,   633,   615,   375,  1044,  1822,
+    1823,  1824,  2370,   285,   630,   615,    16,    17,   600,   615,
+     635,   630,   579,   372,  2764,  4339,   375,  4341,   372,  1885,
+     630,   375,   615,  2805,   630,   637,   615,  4351,   630,   631,
+     570,  1897,  2814,  2470,    16,    17,   369,   630,  1904,   631,
+     505,   630,   629,  1806,   189,   735,  4370,    82,  4372,     6,
+    4374,   591,   592,   589,   590,    16,    17,  4381,   563,   615,
+     585,  1285,  1885,  2805,  1288,   755,  3025,  1291,  4392,  3194,
+     582,   583,  2814,   585,   630,  3496,    16,    17,   768,   769,
+    1843,  1904,    16,    17,  4408,  4409,   630,   631,   269,  2816,
+     441,   272,   372,   629,  2462,   375,  3055,  3056,   235,   372,
+    4424,  4425,   375,    16,    17,  4429,   631,   244,   629,  3945,
+    2077,    11,   637,    16,    17,   629,  2083,  3076,  2486,  2487,
+     630,   631,  3149,   372,   615,   630,   375,   372,   629,   372,
+     375,    82,   375,  4113,  4114,  2001,   629,    16,    17,   630,
+     629,   615,  3352,   629,   123,    96,  3352,    16,    17,   629,
+    2016,   540,   351,   352,  2121,  1918,   630,   629,   357,    16,
+      17,    16,    17,   629,  1927,  1928,   629,  2134,   629,    19,
+     637,    16,    17,   615,    19,  1938,  1939,  1940,  1941,  3206,
+    1943,  1944,   192,  3206,    16,    17,   630,   631,   630,   629,
+      16,    17,    16,    17,   629,  3823,  3824,  3825,   233,   372,
+      16,    17,   375,    17,    16,    17,   615,    19,   630,   631,
+     372,  2077,  3239,   375,   607,   608,  3239,  2083,  2765,  2085,
+     372,   630,  2088,   375,   372,   630,   631,   375,   629,  2095,
+    2096,  2097,  2098,   615,   415,  2101,   631,   615,   631,   629,
+    4076,   378,   221,   629,   372,  2088,   372,   375,   630,   375,
+      16,    17,   630,    25,   104,  2121,   615,   467,   629,  2226,
+     629,   615,   629,    12,   629,   475,   289,   290,  2134,   630,
+     631,   630,  2095,  2096,  2097,  3939,   630,   629,  2041,  2042,
+     629,  2044,  2748,  2046,  2047,  2048,  2049,  2050,   630,   631,
+    2053,  2258,  2055,    42,  2706,   372,  3717,  3718,   375,  3720,
+    3721,   629,  2768,  2769,  2770,   256,   629,   157,   630,   631,
+      82,   161,   629,  3974,   349,    16,    17,   629,  3982,  3983,
+     355,   172,  3986,  3987,  3988,  3989,   630,   631,   142,  2795,
+    3223,  3224,   630,   631,  3975,   615,   372,     6,   188,   375,
+     190,   320,   615,  3261,   203,   324,  3264,  3265,    97,  2988,
+     630,  3310,   331,   102,    17,   205,   363,   630,   629,   558,
+    2226,   211,   372,  3281,  2695,   375,   615,   629,   595,   596,
+     615,   598,   615,   600,   629,   574,   226,   328,   144,   589,
+     590,   630,    16,    17,   234,  2251,    19,   630,    57,   424,
+     372,   241,  2258,   375,  3708,  3709,   629,  2364,   585,  2366,
+    2367,   251,   515,   354,   176,   629,  2272,   430,   431,    59,
+      60,   372,  3439,   263,   375,   629,  3439,   629,   268,   629,
+     629,    71,  4086,  4087,   630,   631,   629,   277,    31,   630,
+     631,  4095,   372,   412,  4062,   375,   630,   631,   372,  2305,
+    3350,   375,   615,  2410,  2411,   629,   305,   306,   404,  4090,
+     629,   310,   311,   615,   155,   629,  3374,   630,   629,   372,
+     629,   233,   375,   615,  2330,   416,   629,   615,   630,   372,
+     629,   104,   375,   629,  4003,   629,   145,  2343,   630,   142,
+     515,    84,   630,    59,    60,   629,   465,   615,   629,   615,
+    2356,   341,  2358,   372,   630,   631,   375,   246,  2364,   629,
+    2366,  2367,   630,   372,   630,   629,   375,   543,  2374,   629,
+    2376,  2377,   629,   363,  2481,   372,   330,   372,   375,  1772,
+     375,  1774,   629,   373,   157,   630,   631,   372,   161,   629,
+     375,   630,   631,   568,   629,  2401,   308,  3490,   615,   629,
+     372,   630,   631,   375,  2410,  2411,   372,   629,   372,   375,
+     629,   375,   155,   630,   505,   405,   372,   190,    63,   375,
+     372,   629,  3391,   375,   629,   600,   630,   631,   317,  1822,
+    1823,  1824,   205,   111,   456,    80,  2451,   349,   211,   615,
+     629,   142,   629,   355,  2450,   629,  2461,    92,   629,  2455,
+     629,    82,  2467,  2356,  2460,   456,   630,   631,  2464,   629,
+    2466,   234,   629,   453,   629,   615,   372,   629,   241,   375,
+    2476,   629,  2478,  2479,  2489,  2481,   630,   631,   251,  4455,
+    2495,   629,  2488,   602,  2490,   475,  2501,  2502,   630,   631,
+     263,   629,   381,   615,  2500,   268,   630,   631,   617,    11,
+     630,   631,   629,  2509,   277,    60,   630,   631,   630,   531,
+    2516,  2517,   630,   631,   615,   537,  2522,   630,   631,   629,
+    3173,   630,   631,  2529,   478,   479,   516,   330,   159,   630,
+     629,   372,   630,   631,   375,   615,   629,  2500,   216,   151,
+     152,   615,   370,   352,   189,   363,   543,  3153,   530,   194,
+     630,   363,    12,   630,   631,   631,   630,   630,   631,   581,
+     115,   226,   615,   118,    49,  2468,  2469,   491,   341,   630,
+      12,   126,   615,   279,   125,    49,   598,   630,   363,   543,
+    2586,  2587,   572,   631,   142,   230,  4387,   630,   143,   461,
+     363,  2494,   363,  3064,   584,   585,   615,   630,   631,   111,
+     373,   572,   233,   515,   493,   167,   615,   624,   417,   254,
+     419,   630,   630,   631,   604,   475,   606,   129,   615,  2522,
+     615,   630,   629,  2586,  1083,  1084,  1085,   630,   631,   330,
+     615,   186,   405,  3104,   185,   630,   630,   631,   527,   268,
+     630,   631,  1101,   615,   634,   635,   190,   142,   511,   615,
+     167,   615,  2555,   630,   631,   530,   168,   400,   630,   615,
+     511,  4462,   213,   615,   630,   279,   620,   621,   622,   623,
+     624,   625,   626,   627,  1133,   478,   479,  1136,   158,   422,
+     453,   141,    91,   195,   630,   631,   631,   242,   600,   630,
+     631,  3832,   630,   631,   630,   631,  1155,  1156,   365,   141,
+    1159,   379,   475,   630,   631,   526,    63,   630,   631,   615,
+    2716,   454,   390,  2719,  2720,  2721,  2722,    32,   349,   397,
+    1179,  1180,  2728,    80,   355,   630,   631,   630,   631,   526,
+     527,   282,   630,   530,   531,    92,   104,   534,   157,   536,
+     128,  2747,  2748,   516,   389,   114,  2752,   630,   631,   244,
+     630,   631,   630,   631,   636,   215,     6,    26,   403,  2765,
+      58,   629,  2768,  2769,  2770,  2728,   278,   510,   630,   631,
+     113,    34,   330,   215,   615,  2781,  3745,   478,   479,     4,
+    3332,  2787,  3751,  2789,  3361,   340,  2893,   466,   343,  2795,
+     598,   125,   244,   424,   128,  3522,  3523,    60,   631,   572,
+     125,   389,    71,    56,  2810,  3972,   433,   358,  3535,  3972,
+     172,   489,   585,    82,   114,  3542,   223,   620,   621,   622,
+     623,   624,   625,   626,   627,  3647,  3648,   142,  1163,  1164,
+     631,   604,   189,   606,    71,   330,   631,   194,    82,   125,
+      12,  3568,  3569,  3159,  3160,   637,    90,  3117,  3118,   494,
+     603,   185,   115,   630,   125,   118,   540,   630,   631,   128,
+     185,   634,   635,   126,   630,   420,   234,   141,  2874,     9,
+     114,  2877,  2878,   230,  2880,  3420,  3421,   175,  2781,   213,
+     143,   179,  3975,   251,   515,   631,   637,  2893,   213,   630,
+    2896,   142,   190,   405,   630,   263,   629,   254,   637,   185,
+     267,   159,   637,   581,   631,  2911,   636,   279,   142,   279,
+     111,    49,   631,   279,   185,   159,  2922,   530,   125,  2925,
+     621,   622,   623,   624,   625,   626,   627,   213,   573,   244,
+     279,   279,   279,   629,   274,   388,   222,   568,   224,   631,
+     631,  2947,   213,   551,  2950,   631,   497,   551,   282,  2955,
+      12,   631,   267,   222,   104,   224,   161,   282,   631,  2965,
+     631,   473,   631,  2969,   244,  2971,   624,   168,   245,   600,
+     180,    26,    27,   341,   528,   190,   631,   577,   185,   242,
+    2986,   631,  2965,   478,   479,   254,   230,  2950,   488,   392,
+     137,  2894,   547,   505,   195,  3001,   282,  4090,   363,  2902,
+     631,   631,  3008,   631,    59,    60,   213,    62,    80,  4176,
+     244,   282,   563,  4176,  3020,   330,    71,    36,   316,   531,
+     817,   576,   161,   630,   358,   161,   161,    82,   161,   230,
+     161,   161,   161,   358,   161,    90,   351,   352,   161,   499,
+     500,   501,   502,   503,   504,  3008,   403,  3937,   161,  3722,
+    3723,  3724,   161,   161,  4023,  3162,   516,   499,   500,   114,
+     502,   161,   504,   307,   622,   623,   624,   625,   626,   627,
+     161,  3178,   358,   128,   516,   282,   131,   278,  3756,   330,
+     343,   325,   351,   352,   234,   453,   598,   358,   357,   631,
+    2993,   161,  3098,   161,   363,   161,   330,   161,  1557,   118,
+    3106,   251,   579,   610,   159,   349,   125,  3684,   584,   195,
+     631,   363,   427,   263,  4255,   363,   414,   189,  3670,   192,
+     363,   630,   630,   624,  3130,   620,   621,   622,   623,   624,
+     625,   626,   627,    85,   403,    87,   630,   494,   630,   630,
+     630,   630,   630,  3149,  3150,   192,   629,  3153,   516,   631,
+     623,   358,   630,   476,   572,   630,  3162,   629,   230,   178,
+     630,   630,  3168,   478,   479,   630,   185,   222,   631,   224,
+     631,   630,  3178,   630,   630,   230,   128,   492,   629,   627,
+    3186,   630,   254,   238,  1643,   629,  3780,   551,  1647,   604,
+     631,   341,   232,   629,   213,   214,   522,   149,   253,   400,
+    3206,    11,   471,  3106,   405,  3883,   203,   192,   637,   192,
+    1669,    55,  3218,   363,  4355,   170,   573,   630,   457,   413,
+     483,    65,  3228,   631,  3230,   142,   475,   478,   479,   563,
+     631,   190,   184,  3239,   161,   162,    47,    81,   563,  3245,
+     339,  3247,   466,  3249,   478,   479,   505,    80,   505,    93,
+      94,    95,   307,   137,   551,  4422,   252,  3364,   505,  4422,
+    3836,   389,   252,   282,   505,   109,   531,   505,   389,   196,
+     325,   515,   473,   389,   137,   531,    47,   563,  4445,   389,
+     207,   436,  4445,   389,   547,  4452,   387,   531,   629,  4452,
+     629,  4458,   563,   389,   389,  4458,   389,  4266,  4267,   278,
+    4269,   629,   161,   453,   573,   620,   621,   622,   623,   624,
+     625,   626,   627,   576,   630,   585,  3322,   389,   637,   155,
+     247,   111,   630,   342,   183,   380,   240,   382,   240,   630,
+     531,   403,   259,   637,   353,   390,   537,   196,   357,   358,
+     630,  3347,  3348,  3349,   637,   630,  3352,  3454,   207,  4318,
+     637,  4320,  4321,   637,   630,   556,   563,   630,  3364,   286,
+     551,   551,   630,    16,    17,   631,   516,   551,   274,   620,
+     621,   622,   623,   624,   625,   626,   627,   637,   540,   611,
+     581,    88,   637,    47,   629,   631,   620,   621,   622,   623,
+     624,   625,   626,   627,   629,   161,   629,   598,   257,   551,
+     259,   336,     6,   458,   194,   161,  4053,   629,   370,    13,
+     192,    15,  3315,   330,  4383,  3991,   192,   192,   345,   241,
+     192,   637,    26,    27,   248,   637,   170,   286,  3434,   381,
+     358,   631,   251,  3439,   251,  3338,   376,  3544,  4420,   321,
+     230,   114,   114,   629,   637,   254,   254,   551,  3454,    26,
+      27,   629,   205,    57,   369,   540,   450,   389,    62,    63,
+     515,   629,   637,   373,   624,    69,   119,   120,   121,   122,
+     123,   629,   629,   425,  4026,   319,   531,   242,    82,   242,
+     535,   104,    59,    60,   630,    62,    90,   630,   278,   348,
+    3496,  3506,   637,   337,    71,   606,   100,   363,   630,   554,
+    4077,   226,   269,  4055,   630,    82,   630,  3513,   630,   629,
+     114,  3618,   630,    90,   631,   630,   630,   572,   389,   624,
+     578,   540,   192,   630,   128,   544,   244,   131,   547,   631,
+     265,    71,   251,   363,   138,   139,   251,   114,  3544,   558,
+     637,   145,   631,   402,   563,   629,   254,   566,   254,   153,
+     631,   128,   631,   157,   131,   159,   630,   363,   629,   401,
+     363,   478,   479,    82,  3570,   218,   219,   220,   221,    19,
+     631,  3577,   631,   630,   363,   629,   631,   363,   491,  3686,
+      47,    82,   159,   629,   188,   630,   467,   629,   629,  3595,
+     268,    19,   629,    47,   630,    96,   469,    36,    26,   630,
+     606,   203,   418,   622,   623,   148,   261,   630,   630,   205,
+     631,   234,  3618,   477,   629,   629,   629,   251,   222,   463,
+     224,   251,   631,   128,   228,   128,   230,   629,   251,   399,
+     637,    86,   485,   144,   238,   136,   491,   630,   630,   462,
+     263,   630,  3545,    71,   631,   222,   630,   224,    19,   253,
+     630,    34,   630,   230,    82,   630,  4303,   630,    34,   358,
+      60,   238,   242,   630,   630,   630,   630,   320,   327,   322,
+     323,   324,   256,   413,   518,   370,   253,   277,   331,   118,
+    3686,  3584,   606,   473,   241,   629,   125,   630,   637,   631,
+     267,    47,   536,   211,   631,   327,   418,   540,  3704,   540,
+     128,   630,   585,   307,   494,   622,   623,   624,   625,   626,
+     627,  3717,  3718,   585,  3720,  3721,   304,   595,   341,   372,
+     629,   325,   375,    14,   629,   329,   629,   629,   629,   629,
+     307,   629,   578,   595,   128,  3842,  4312,   254,    19,   178,
+     363,   531,   254,   357,   534,    34,   185,   537,   325,   170,
+     630,   358,   631,   629,   457,   256,   631,   327,   174,   412,
+     540,  3767,    17,  4315,   368,   254,  4413,   540,   629,   373,
+     198,   540,   534,   630,   213,   214,   380,    34,   382,   630,
+    3786,  3787,   589,   573,   585,   389,   390,   585,   241,   363,
+     353,   581,  3798,   590,   222,   509,   224,   358,   450,   630,
+    4447,   606,   170,   380,   631,   382,   138,   156,   370,   521,
+      67,   464,   465,   390,   578,   629,   629,   421,   190,   603,
+      31,   190,    61,   638,  3787,  3831,   254,   328,  3834,   629,
+     453,   435,   436,   437,   438,   629,  3842,  4389,    13,   630,
+     384,   542,  4136,   282,   137,   630,   159,   630,   629,   137,
+     351,   352,   405,   354,   458,    73,   603,  4151,   426,   192,
+      31,    63,   370,    63,  3767,   522,  3872,   270,  3831,   630,
+    4164,   631,   629,    47,    47,   629,     5,   629,   135,   363,
+     363,   458,   630,   241,   155,   635,   136,  3893,   370,   524,
+     370,   144,  3898,   516,    47,   629,    47,    47,   154,   578,
+     132,   603,   159,   342,   155,   225,   163,  4459,   635,   284,
+     638,   515,   127,   150,    47,   416,   457,    47,   357,   358,
+     629,    47,    53,   351,   352,   630,   459,   531,   103,   357,
+     630,   535,   254,   223,   631,   363,   155,   635,   515,   631,
+     197,   208,   543,   631,   635,    47,   630,   630,    53,   602,
+     554,   631,   440,   226,   531,   559,   190,   132,   535,   190,
+     217,   190,   615,   616,   617,   543,  3972,   605,   572,   128,
+     145,   358,  3903,   629,   231,   403,   475,   554,   191,  2265,
+     631,  3324,  2057,  3325,  4091,  2439,  3930,   658,  3593,  4056,
+    4245,  1002,  4286,   168,  4246,   572,   171,  3591,  3785,  4005,
+    3595,  4007,  4296,  4009,   505,  4447,  4400,   182,    46,   580,
+    2765,  1818,  3777,  4410,  3777,  3777,  4283,  3777,  4129,  4283,
+    3777,  3777,   279,  3777,  3777,  3777,  3777,  3777,   203,  4035,
+    4239,   635,  3777,  3777,  4155,  3938,  1473,  4154,  1042,  1743,
+     675,  3935,  2015,   471,   301,   680,  2920,  1475,  1483,  2742,
+    3433,  3130,   629,  2747,  1318,   230,  4081,  4351,  4064,  3832,
+    4355,  3436,   237,  4263,  4180,  4312,  3991,   519,  3600,  1527,
+    2994,  2008,  2587,  3249,  2016,  4081,  2519,  3228,  4372,  3237,
+    4374,  4330,   717,  4026,  3046,  4091,  3743,  4381,  3272,  3306,
+    4197,  4097,  3555,  4077,  3178,  3544,  4013,    11,  4392,   734,
+      11,   540,   277,  4113,  3941,   544,  4114,  1541,   547,  3954,
+    3950,  3751,  2093,  3798,  2015,  3230,  1892,   971,  2512,   558,
+     633,  1433,  3510,  2325,   563,  3229,  1523,   566,  1810,  1482,
+    4424,  4425,  2728,  3125,  2298,  4429,  2347,  2216,  3779,   601,
+     775,   776,   777,   778,  1829,   573,  3106,   404,  2128,  2125,
+    2706,  1128,   787,   911,  4261,  3196,   413,  2215,  2402,    34,
+    3857,  4064,  3711,  3322,  4212,  1101,  4213,  3239,  1449,  4389,
+    4176,   428,  2244,  2810,   227,  3705,  2508,  3686,  2098,  2352,
+    1331,  4084,  4085,   622,   623,  2292,  2329,  3439,  3144,   446,
+    3143,  4197,    67,  3206,   591,  4176,  1550,   671,  1301,   579,
+    1881,  1762,  1385,  3247,  1413,  1882,  4212,  4213,  4204,  3128,
+    4305,  4353,  1337,  4273,  4452,  4458,  3546,  1365,  3149,  1834,
+    2797,  3465,  3186,  3694,    12,    13,   563,  1791,   485,   486,
+     571,   406,   893,   868,   287,   288,   289,   290,   291,   292,
+    1293,   294,   295,   296,   297,   298,   299,   300,  3821,   302,
+     303,   426,  3827,  1532,   511,  4261,   572,  1355,   898,   434,
+     135,  2716,   658,   515,    -1,   658,   515,   442,   658,    -1,
+      -1,    -1,    -1,   530,    -1,    -1,   533,   534,    -1,    -1,
+      -1,    -1,  4288,    -1,   159,  4188,  4189,    -1,   163,  4295,
+      -1,    -1,   467,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   480,   481,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   103,    -1,    -1,    -1,    -1,
+      -1,    -1,   197,    -1,    -1,   582,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  4441,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   217,    -1,   132,    -1,    -1,    -1,    -1,    -1,
+     525,    -1,    -1,    -1,    -1,    -1,   231,   145,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,  4371,    -1,    -1,    -1,    -1,
+    4376,    -1,    -1,    -1,    -1,    -1,    -1,   430,   431,    -1,
+     168,   556,    -1,   171,    -1,    -1,    -1,    -1,    -1,  1024,
+      -1,    -1,    -1,    -1,   182,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   578,   279,   580,    -1,  4413,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   203,  4422,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  4327,    -1,   301,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,  4441,    -1,    -1,    -1,  4445,
+      -1,  4447,   230,    -1,  1079,  1080,  4452,    -1,    -1,   237,
+      -1,    -1,  4458,  1088,  1089,  1090,  1091,  1092,  1093,  1094,
+    1095,  1096,  1097,  1098,  1099,  1100,    -1,    -1,   119,   120,
+     121,   122,   123,  1108,  1109,    -1,  1111,    -1,  1113,    -1,
+      -1,    -1,  1117,    -1,    -1,  1120,  1121,  1122,  1123,   277,
+    1125,  1126,  1127,    -1,    -1,    -1,    -1,    -1,    -1,  1134,
+    1135,    -1,  1137,  1138,  1139,  1140,  1141,    12,    13,  1144,
+    1145,  1146,  1147,  1148,  1149,  1150,  1151,  1152,  1153,  1154,
+      -1,    -1,  1157,  1158,    -1,    -1,  1161,    -1,    -1,   404,
+    1165,    -1,  1167,  1168,    -1,    -1,    -1,    -1,   413,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  1181,  1182,    -1,    -1,
+      -1,    -1,    -1,   428,  1189,    -1,    -1,    -1,    -1,    -1,
+      -1,  1196,  1197,  1198,    -1,  1200,    -1,   218,   219,   220,
+     221,   446,  1207,  1208,  1209,    -1,  1211,  1212,  1213,  1214,
+    1215,    -1,  1217,  1218,  1219,  1220,  1221,  1222,  1223,  1224,
+      -1,    -1,    -1,  1228,  1229,    -1,    33,    34,   103,    -1,
+      -1,    -1,    39,    -1,    41,    -1,    43,    44,    -1,    -1,
+     485,   486,    -1,    -1,    -1,    -1,    -1,    -1,   406,    -1,
+      -1,    -1,   410,    60,    -1,    -1,    -1,   132,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   511,    -1,   426,    -1,
+     145,    -1,    -1,    -1,    -1,    -1,   434,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   442,    -1,    -1,    -1,   533,    -1,
+      -1,    -1,    -1,   168,    -1,    -1,   171,    -1,    -1,   320,
+    1305,   322,   323,   324,    -1,    -1,    -1,   182,   115,   467,
+     331,   118,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   126,
+      -1,    -1,   480,   481,    -1,    -1,    -1,    -1,   203,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   143,   582,    -1,    -1,
+      -1,    -1,    -1,    -1,    26,    27,    -1,    -1,    -1,    -1,
+     680,    -1,    -1,   160,    -1,   230,    -1,    -1,    -1,    -1,
+    1365,    -1,   237,    -1,    -1,    -1,    -1,   525,  1373,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   184,    -1,   186,
+      62,    -1,    -1,    -1,    -1,    -1,    -1,   717,    -1,    -1,
+      -1,   412,   199,   200,    -1,    -1,    -1,    -1,   556,    -1,
+      82,    -1,   277,    -1,   734,    -1,    -1,    -1,    90,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     578,    -1,   580,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   114,    -1,    -1,   242,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   464,   465,    -1,   128,    -1,   778,   131,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   271,    -1,    -1,    -1,    -1,    -1,
+    1475,    -1,    -1,   280,   281,    -1,   283,   159,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   313,   314,   315,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   332,   333,   334,    -1,    -1,
+      -1,   406,    -1,   340,    -1,   410,   343,    -1,   868,    -1,
+     222,    -1,   224,    -1,    -1,    -1,    -1,    -1,   230,    -1,
+      -1,   426,   359,   360,    -1,    -1,   238,    -1,  1563,   434,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   442,    -1,    -1,
+      -1,   253,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     6,
+      -1,   602,    -1,    -1,    -1,    -1,    13,    -1,   395,   396,
+      -1,    -1,   467,    -1,    -1,   616,   617,    -1,    -1,    26,
+      27,    -1,    -1,    -1,    -1,   480,   481,    -1,    -1,    -1,
+      -1,    -1,    -1,   420,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   307,    -1,    -1,    -1,    -1,
+      57,    -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   325,    -1,    -1,    -1,    -1,    -1,    -1,
+     525,    -1,    -1,    -1,    -1,    82,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    90,   471,    -1,    -1,    -1,   475,    -1,
+    1675,  1676,  1677,   100,    -1,    -1,    -1,    -1,    -1,    -1,
+     487,   556,    -1,    -1,  1689,    -1,    -1,   114,    -1,    -1,
+      -1,    -1,    -1,    -1,  1024,    -1,    -1,    -1,   380,    -1,
+     382,   128,    -1,   578,   131,   580,    -1,    -1,   390,    -1,
+    1715,   138,    -1,    -1,    -1,    -1,  1721,    -1,   145,  1724,
+      -1,  1726,    -1,    -1,    -1,    -1,   153,  1732,    -1,  1734,
+    1735,    -1,   159,    -1,   541,    -1,    -1,   544,    -1,    -1,
+     547,   548,   549,   550,    -1,    -1,    -1,    -1,    -1,  1079,
+    1080,    -1,    -1,    26,    27,    -1,    -1,    -1,  1088,  1089,
+      -1,   188,  1092,  1093,  1094,  1095,  1096,  1097,  1098,  1099,
+    1100,    -1,    -1,    -1,    -1,    -1,   458,    -1,  1108,  1109,
+      -1,  1111,    -1,  1113,   591,   592,    59,    60,    -1,    62,
+    1120,  1121,  1122,  1123,    -1,   222,  1126,   224,    71,    -1,
+    1805,    -1,    -1,   230,  1134,  1135,    -1,  1137,  1138,    82,
+     617,   238,    -1,    -1,  1144,  1145,  1146,    90,    -1,  1149,
+    1150,  1151,  1152,  1153,  1154,    -1,   253,  1157,  1158,    -1,
+      -1,  1161,    -1,   515,    -1,  1165,    -1,  1167,  1168,    -1,
+      -1,   114,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   531,
+      -1,  1181,  1182,   535,    -1,   128,    -1,    -1,   131,  1189,
+      -1,    -1,    -1,    -1,    -1,    -1,  1196,  1197,  1198,    -1,
+      -1,    -1,   554,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     307,    -1,    -1,    -1,    -1,    -1,   159,    -1,    -1,    -1,
+     572,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   325,  1229,
+      -1,    -1,   329,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   373,    -1,    -1,   222,
+      -1,   224,    -1,   380,    -1,   382,    -1,   230,    -1,    -1,
+      -1,    -1,    -1,   390,    -1,   238,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,  1305,    -1,    -1,    -1,    -1,
+     253,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  2008,    -1,    -1,    -1,    -1,    -1,   436,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   458,    -1,  2038,   307,  1365,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  1373,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   325,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  2091,    -1,   515,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  2107,    -1,   531,    -1,  2111,   380,   535,   382,
+      -1,  2116,  2117,    -1,    -1,    -1,    -1,   390,    -1,    -1,
+    2125,  2126,    -1,  2128,  2129,  2130,  2131,   554,  2133,    -1,
+      -1,  2136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,  2146,    -1,  2148,  2149,   572,  2151,  2152,  2153,  2154,
+      -1,  2156,    -1,    -1,  2159,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  2168,    -1,    -1,    -1,    -1,    -1,    -1,
+    2175,    -1,  2177,    -1,  2179,  2180,  2181,  2182,    -1,    -1,
+      -1,  2186,  2187,  2188,    -1,   458,    -1,  2192,  2193,  2194,
+      -1,  2196,    -1,  2198,    -1,  2200,    -1,  2202,    -1,  2204,
+      -1,    -1,    -1,    -1,  2209,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  2227,    -1,    -1,    -1,    -1,    -1,    -1,  2234,
+      -1,    -1,  2237,  1563,    -1,    -1,    -1,    -1,  2243,    -1,
+      -1,  2246,   515,    -1,    -1,  2250,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   531,    -1,
+      -1,    -1,   535,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   554,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   572,
+      -1,  2306,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      13,    -1,    15,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,  1675,  1676,  1677,    31,    -1,
+      -1,    -1,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    49,    50,    -1,    -1,
+      -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,    62,
+      63,    -1,    -1,    -1,    -1,  1715,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  1724,    -1,  1726,    -1,    -1,    -1,
+      -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2422,    -1,    -1,
+     103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,  2440,  2441,    -1,    -1,    -1,
+      -1,   124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   132,
+     133,   134,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   144,   145,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   157,  1805,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   171,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   187,    -1,    -1,  2512,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     203,    -1,    -1,    -1,    -1,   208,    -1,    -1,    -1,   212,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  2557,  2558,   237,    -1,   239,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   255,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  2591,    -1,    -1,    -1,
+     273,    -1,    -1,    -1,   277,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  2608,    -1,    -1,    -1,  2612,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2642,  2643,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  2662,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  2671,    -1,  2673,    -1,
+    2675,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   368,    -1,    -1,    -1,    -1,
+    2695,    -1,    -1,    -1,    -1,  2700,    -1,    -1,    -1,    -1,
+      -1,    -1,   385,    -1,    -1,    -1,   389,    -1,  2038,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   400,    -1,  2724,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   411,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     433,    -1,    -1,   436,    -1,   438,    -1,    -1,   441,    -1,
+      -1,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,   452,
+      -1,   454,    -1,    -1,    -1,    -1,    -1,  2107,   461,    -1,
+      -1,  2111,    -1,    -1,   467,  2790,  2116,  2117,    -1,  2794,
+      -1,    -1,   475,    -1,    -1,  2125,  2126,   480,  2128,   482,
+    2130,  2131,   485,  2133,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  2146,    -1,  2148,    -1,
+      -1,  2151,  2152,  2153,  2154,    -1,  2156,   510,    -1,    -1,
+      -1,   514,    -1,    -1,    -1,    -1,  2841,    -1,  2168,    -1,
+      -1,    -1,    -1,    -1,    -1,  2175,    -1,  2177,    -1,  2179,
+    2180,  2181,    -1,    -1,    -1,    -1,  2186,  2187,  2188,    -1,
+      -1,    -1,  2192,  2193,  2194,    -1,  2196,    -1,  2198,    -1,
+    2200,    -1,  2202,    -1,  2204,    -1,   559,    -1,    -1,  2209,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   571,    -1,
+      -1,    -1,   575,    -1,    -1,   578,    -1,  2227,    -1,    -1,
+      -1,   584,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  2243,    -1,    -1,  2246,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     613,    13,    -1,    15,    -1,    -1,   619,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   629,    -1,    -1,    -1,
+      -1,    -1,    -1,    35,    -1,    -1,    -1,  2962,  2963,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    49,    50,    -1,
+      -1,    -1,    -1,    -1,    -1,    57,    -1,    -1,    -1,    -1,
+      62,    63,  2987,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    84,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    3015,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   103,    -1,  3028,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   124,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     132,   133,   134,    -1,    -1,    -1,  3061,  3062,    -1,  3064,
+      -1,    -1,   144,   145,    -1,    -1,    -1,    -1,  3073,    -1,
+      -1,    -1,    -1,  3078,    -1,    -1,  3081,    -1,  3083,  3084,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   171,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3104,
+      -1,    -1,    -1,    -1,    -1,   187,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  3119,    -1,    -1,    -1,    -1,    -1,
+      -1,   203,    -1,    -1,    -1,    -1,   208,    -1,    -1,    -1,
+     212,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3143,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   237,    -1,   239,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3173,    -1,
+      -1,    -1,    -1,   255,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  3187,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   273,    -1,    -1,    -1,   277,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  3208,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  3217,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  2608,    -1,
+      -1,    -1,  2612,    -1,    -1,    -1,   368,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  3299,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   385,    -1,    -1,    -1,   389,    -1,    -1,
+      -1,    -1,  2642,  2643,    -1,    -1,    -1,    -1,   400,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   411,
+      -1,    -1,  2662,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,  2671,    -1,  2673,    -1,  2675,    -1,    -1,    -1,    -1,
+      -1,   433,    -1,    -1,   436,    -1,   438,    -1,    -1,   441,
+      -1,    -1,   444,   445,    -1,    -1,    -1,    -1,    -1,    -1,
+     452,    -1,   454,    -1,    -1,    -1,    -1,    -1,    -1,   461,
+      -1,    -1,    -1,    -1,    -1,   467,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   475,  2724,    -1,    -1,    -1,   480,    -1,
+     482,    -1,    -1,   485,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   510,    -1,
+      -1,    -1,   514,    -1,    -1,  3440,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    2790,    -1,    -1,    -1,  2794,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  3479,  3480,    -1,   559,    -1,    -1,
+      -1,    -1,    -1,  3488,    -1,    -1,    -1,    -1,    -1,   571,
+      -1,    -1,    -1,   575,    -1,    -1,   578,    -1,    -1,    -1,
+      -1,    -1,   584,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,  2841,    -1,    -1,    -1,    -1,    -1,    24,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,    35,    -1,
+      -1,   613,    -1,    -1,    -1,    -1,    -1,   619,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   629,    -1,    -1,
+    3555,    -1,    59,    60,    -1,    -1,    -1,    -1,    -1,    -1,
+      67,    -1,    -1,    -1,    -1,    72,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    99,    -1,   101,  3600,   103,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   112,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3632,    -1,    -1,
+      -1,  3636,  2962,  2963,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   158,   159,    -1,    -1,    -1,    -1,   164,    -1,    -1,
+     167,    -1,  3667,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  3681,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   193,    -1,   195,  3694,
+      -1,    -1,    -1,    -1,    -1,   202,    -1,   204,  3028,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   229,   230,   231,    -1,    -1,    -1,    -1,    -1,
+      -1,  3061,  3062,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  3073,    -1,   252,    -1,    -1,  3078,    -1,
+      -1,  3081,    -1,  3083,  3084,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   274,    -1,    -1,
+      -1,    -1,  3777,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3119,
+      -1,    -1,  3797,    -1,   301,    -1,  3801,  3802,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  3143,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3832,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,  3840,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  3849,    -1,  3851,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  3187,    -1,    -1,
+     367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3208,    -1,
+      -1,    -1,    -1,    -1,    -1,  3890,   393,  3217,    -1,    -1,
+      -1,  3896,  3897,    -1,    -1,    -1,    -1,   404,   405,    -1,
+      -1,   408,   409,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   429,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  3941,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,  3950,    -1,    -1,    -1,  3954,
+      -1,    -1,    -1,    -1,  3959,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   472,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   485,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,  3996,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   511,    -1,    -1,    -1,   515,    -1,
+    4015,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  4028,    -1,  4030,   533,   534,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,  4040,    -1,  4042,  4043,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  4067,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   582,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   593,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   601,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  4111,    -1,  4113,  4114,
+    3440,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4134,
+      -1,  4136,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  4151,  4152,    -1,  3479,
+    3480,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3488,  4164,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  4177,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    4225,  4226,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  4238,  4239,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    4255,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,  4286,    -1,    -1,    -1,    -1,    -1,    -1,  4293,    -1,
+      -1,  4296,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  3632,    -1,    -1,    -1,  3636,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  4332,    -1,    -1,
+      -1,    -1,    -1,    -1,  4339,    -1,  4341,  3667,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  4351,    -1,    -1,    -1,
+    4355,  3681,    -1,  4358,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  3694,  4370,    -1,  4372,    -1,  4374,
+      -1,    -1,    -1,    -1,    -1,    -1,  4381,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  4392,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  4408,  4409,    -1,    -1,    -1,    -1,  4414,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4424,
+    4425,    -1,    -1,    -1,  4429,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  4461,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    3840,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3849,
+      -1,  3851,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    3890,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  3959,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,  3996,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4028,    -1,
+    4030,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+    4040,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,  4134,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  4152,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,  4177,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,  4225,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,  4293,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,  4332,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,  4358,    -1,
+      -1,    -1,     5,    -1,     7,     8,     9,    10,    11,    -1,
+      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
+      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
+      -1,    34,    35,    36,    37,    38,    39,    40,    -1,    42,
+      43,    44,    45,    46,    -1,    48,    49,    -1,    -1,    52,
+      53,    54,    55,    56,  4414,    58,    59,    60,    61,    62,
+      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
+      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
+      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
+      93,    94,    95,    96,    97,    -1,    99,   100,   101,   102,
+      -1,  4461,   105,   106,   107,    -1,   109,   110,   111,    -1,
+     113,   114,   115,   116,   117,   118,    -1,    -1,    -1,    -1,
+     123,   124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,
+      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
+      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
+     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
+     163,   164,    -1,   166,   167,   168,   169,   170,   171,   172,
+      -1,   174,   175,   176,   177,   178,   179,   180,    -1,   182,
+     183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,
+     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
+      -1,   204,    -1,   206,    -1,   208,   209,   210,    -1,   212,
+     213,   214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
+     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
+     233,    -1,    -1,    -1,   237,   238,   239,   240,    -1,    -1,
+     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
+     253,    -1,    -1,   256,   257,   258,    -1,   260,   261,    -1,
+     263,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
+      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
+      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,    -1,
+      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
+      -1,   324,   325,   326,   327,    -1,   329,   330,   331,   332,
+     333,   334,   335,   336,   337,   338,   339,   340,    -1,   342,
+     343,   344,    -1,    -1,   347,   348,   349,   350,   351,   352,
+     353,   354,   355,    -1,   357,   358,    -1,   360,   361,   362,
+      -1,   364,   365,   366,   367,    -1,   369,   370,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,
+     383,   384,    -1,   386,   387,   388,   389,   390,   391,   392,
+     393,   394,   395,   396,   397,   398,    -1,   400,   401,   402,
+      -1,   404,    -1,   406,   407,   408,   409,   410,    -1,   412,
+     413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,
+     423,   424,   425,    -1,    -1,   428,   429,   430,   431,   432,
+      -1,   434,   435,    -1,   437,   438,   439,   440,   441,   442,
+      -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,
+     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
+     463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,
+     473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,
+     483,   484,   485,   486,    -1,   488,   489,   490,   491,   492,
+     493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,
+     503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,   512,
+     513,   514,   515,    -1,   517,   518,   519,   520,   521,   522,
+     523,   524,   525,   526,   527,   528,   529,   530,   531,    -1,
+     533,    -1,   535,   536,   537,   538,    -1,   540,   541,   542,
+      -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,   552,
+     553,   554,   555,    -1,   557,   558,   559,   560,   561,   562,
+     563,   564,   565,   566,   567,   568,    -1,   570,   571,    -1,
+      -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,
+     583,    -1,    -1,   586,   587,   588,   589,   590,    -1,    -1,
+     593,   594,    -1,   596,   597,   598,   599,   600,   601,   602,
+      -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,
+     613,   614,    -1,    -1,   617,    -1,    -1,    -1,    -1,   622,
+     623,    -1,    -1,    -1,    -1,   628,   629,    -1,    -1,   632,
+     633,    -1,    -1,   636,   637,     5,    -1,     7,     8,     9,
+      10,    11,    12,    -1,    14,    -1,    -1,    -1,    18,    -1,
+      -1,    21,    -1,    23,    24,    25,    26,    27,    28,    29,
+      -1,    31,    -1,    -1,    34,    35,    36,    37,    38,    39,
+      40,    -1,    42,    43,    44,    -1,    46,    -1,    48,    49,
+      -1,    -1,    52,    53,    54,    55,    56,    -1,    58,    59,
+      60,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
+      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
+      -1,    81,    82,    83,    84,    85,    86,    87,    88,    -1,
+      90,    91,    -1,    93,    94,    95,    96,    97,    -1,    99,
+     100,   101,   102,    -1,    -1,   105,   106,   107,    -1,   109,
+     110,   111,    -1,   113,   114,   115,   116,   117,   118,    -1,
+      -1,    -1,    -1,   123,   124,   125,    -1,    -1,   128,   129,
+      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
+     140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
+      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
+     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
+     170,   171,   172,    -1,   174,   175,   176,   177,   178,   179,
+     180,    -1,   182,   183,   184,   185,    -1,   187,    -1,    -1,
+      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
+     200,   201,   202,    -1,   204,    -1,   206,    -1,   208,   209,
+     210,    -1,   212,   213,   214,    -1,   216,   217,    -1,    -1,
+      -1,   221,   222,   223,   224,   225,    -1,   227,   228,   229,
+      -1,   231,    -1,   233,    -1,    -1,    -1,   237,   238,   239,
+     240,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
+      -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,
+      -1,   261,    -1,   263,   264,   265,    -1,    -1,    -1,    -1,
+      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
+      -1,    -1,   282,    -1,    -1,    -1,    -1,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+      -1,   301,   302,   303,   304,   305,   306,   307,   308,   309,
+     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
+     320,   321,    -1,    -1,   324,   325,   326,   327,    -1,   329,
+     330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
+     340,    -1,   342,   343,   344,    -1,    -1,   347,   348,   349,
+     350,   351,   352,   353,   354,   355,    -1,   357,   358,    -1,
+     360,   361,   362,   363,   364,   365,   366,   367,    -1,   369,
+     370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,
+     380,   381,    -1,   383,   384,    -1,   386,   387,   388,   389,
+     390,   391,   392,   393,   394,   395,   396,   397,   398,    -1,
+     400,   401,   402,    -1,   404,    -1,   406,   407,   408,   409,
+     410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,
+      -1,   421,   422,   423,   424,   425,    -1,    -1,   428,   429,
+     430,   431,   432,    -1,   434,   435,    -1,   437,   438,   439,
+     440,   441,   442,    -1,   444,    -1,   446,   447,    -1,   449,
+     450,    -1,    -1,   453,   454,   455,   456,   457,   458,   459,
+     460,   461,   462,   463,    -1,   465,   466,    -1,    -1,    -1,
+     470,   471,   472,   473,    -1,    -1,    -1,   477,    -1,    -1,
+      -1,   481,    -1,   483,   484,   485,   486,    -1,   488,   489,
+     490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,
+     500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,
+     510,   511,   512,   513,   514,   515,    -1,   517,   518,   519,
+     520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
+     530,   531,    -1,   533,    -1,   535,   536,   537,   538,    -1,
+     540,   541,   542,    -1,   544,   545,   546,   547,    -1,    -1,
+      -1,    -1,    -1,   553,   554,   555,    -1,   557,   558,   559,
+     560,   561,   562,   563,   564,   565,   566,   567,   568,    -1,
+     570,   571,    -1,    -1,   574,    -1,    -1,   577,    -1,   579,
+      -1,   581,   582,   583,    -1,    -1,   586,   587,   588,   589,
+     590,    -1,    -1,   593,   594,    -1,   596,   597,   598,   599,
+     600,   601,   602,    -1,    -1,    -1,    -1,    -1,    -1,   609,
+     610,    -1,   612,   613,   614,    -1,    -1,   617,    -1,    -1,
+      -1,    -1,   622,   623,    -1,    -1,    -1,    -1,   628,   629,
+      -1,    -1,   632,   633,    -1,    -1,   636,   637,     5,    -1,
+       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
+      -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,    26,
+      27,    28,    29,    -1,    31,    -1,    -1,    34,    35,    36,
+      37,    38,    39,    40,    -1,    42,    43,    44,    -1,    46,
+      -1,    48,    49,    -1,    -1,    52,    53,    54,    55,    56,
+      -1,    58,    59,    60,    61,    62,    -1,    64,    65,    66,
+      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
+      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
+      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    96,
+      97,    -1,    99,   100,   101,   102,    -1,    -1,   105,   106,
+     107,    -1,   109,   110,   111,    -1,   113,   114,   115,   116,
+     117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,    -1,
+      -1,   128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
+     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
+     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
+      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
+     167,   168,   169,   170,   171,   172,    -1,   174,   175,   176,
+     177,   178,   179,   180,    -1,   182,   183,   184,   185,    -1,
+     187,    -1,    -1,    -1,   191,   192,   193,    -1,   195,    -1,
+     197,   198,   199,   200,   201,   202,    -1,   204,    -1,   206,
+      -1,   208,   209,   210,    -1,   212,   213,   214,    -1,   216,
+     217,    -1,    -1,    -1,   221,   222,   223,   224,   225,    -1,
+     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
+     237,   238,   239,   240,    -1,    -1,   243,    -1,   245,   246,
+      -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,
+     257,   258,    -1,    -1,   261,    -1,   263,   264,   265,    -1,
+      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
+      -1,   278,   279,    -1,    -1,   282,    -1,    -1,    -1,    -1,
+     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,    -1,   301,   302,   303,   304,   305,   306,
+     307,   308,   309,   310,   311,    -1,    -1,    -1,    -1,   316,
+     317,   318,   319,   320,   321,    -1,    -1,   324,   325,   326,
+     327,    -1,   329,   330,   331,   332,   333,   334,   335,   336,
+     337,   338,   339,   340,    -1,   342,   343,   344,    -1,    -1,
+     347,   348,   349,   350,   351,   352,   353,   354,   355,    -1,
+     357,   358,    -1,   360,   361,   362,    -1,   364,   365,   366,
+     367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   379,   380,   381,    -1,   383,   384,    -1,   386,
+     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
+     397,   398,    -1,   400,   401,   402,    -1,   404,    -1,   406,
+     407,   408,   409,   410,    -1,   412,   413,   414,    -1,    -1,
+     417,    -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,
+      -1,   428,   429,   430,   431,   432,    -1,   434,   435,    -1,
+     437,   438,   439,   440,   441,   442,    -1,   444,    -1,   446,
+     447,    -1,   449,   450,    -1,    -1,   453,   454,   455,   456,
+     457,   458,   459,   460,   461,   462,   463,    -1,   465,   466,
+      -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,
+     477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,
+      -1,   488,   489,   490,   491,   492,   493,    -1,    -1,    -1,
+      -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,
+      -1,    -1,   509,   510,   511,   512,   513,   514,   515,    -1,
+     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
+     527,   528,   529,   530,   531,    -1,   533,    -1,   535,   536,
+     537,   538,    -1,   540,   541,   542,    -1,   544,   545,   546,
+     547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,
+     557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
+     567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,
+     577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,   586,
+     587,   588,   589,   590,    -1,    -1,   593,   594,    -1,   596,
+     597,   598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,
+      -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,    -1,
+     617,    -1,    -1,    -1,    -1,   622,   623,    -1,    -1,    -1,
+      -1,   628,   629,    -1,    -1,   632,   633,    -1,    -1,   636,
+     637,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
       14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
       24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
+      34,    35,    36,    37,    38,    39,    40,    -1,    42,    43,
+      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    53,
+      54,    55,    56,    -1,    58,    59,    60,    61,    62,    -1,
       64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
       74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
       84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
+      94,    95,    96,    97,    -1,    99,   100,   101,   102,    -1,
+      -1,   105,   106,   107,    -1,   109,   110,   111,    -1,   113,
+     114,   115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,
+     124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
       -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
      144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
       -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
+     164,    -1,   166,   167,   168,   169,   170,   171,   172,    -1,
+     174,   175,   176,   177,   178,   179,   180,    -1,   182,   183,
+     184,   185,    -1,   187,    -1,    -1,    -1,   191,   192,   193,
       -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
+     204,    -1,   206,    -1,   208,   209,   210,    -1,   212,   213,
+     214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
+     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
+      -1,    -1,    -1,   237,   238,   239,   240,    -1,    -1,   243,
       -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
+      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,   263,
      264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
+     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
       -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
      294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
+     304,   305,   306,   307,   308,   309,   310,   311,    -1,    -1,
       -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    12,    -1,
+     324,   325,   326,   327,    -1,   329,   330,   331,   332,   333,
+     334,   335,   336,   337,   338,   339,   340,    -1,   342,   343,
+     344,    -1,    -1,   347,   348,   349,   350,   351,   352,   353,
+     354,   355,    -1,   357,   358,    -1,   360,   361,   362,    -1,
+     364,   365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,   383,
+     384,    -1,   386,   387,   388,   389,   390,   391,   392,   393,
+     394,   395,   396,   397,   398,    -1,   400,   401,   402,    -1,
+     404,    -1,   406,   407,   408,   409,   410,    -1,   412,   413,
+     414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,
+     424,   425,    -1,    -1,   428,   429,   430,   431,   432,    -1,
+     434,   435,    -1,   437,   438,   439,   440,   441,   442,    -1,
+     444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,   453,
+     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
+      -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,   473,
+      -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,
+     484,   485,   486,    -1,   488,   489,   490,   491,   492,   493,
+      -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,
+      -1,    -1,   506,    -1,    -1,   509,   510,   511,   512,   513,
+     514,   515,    -1,   517,   518,   519,   520,   521,   522,   523,
+     524,   525,   526,   527,   528,   529,   530,   531,    -1,   533,
+      -1,   535,   536,   537,   538,    -1,   540,   541,   542,    -1,
+     544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,
+     554,   555,    -1,   557,   558,   559,   560,   561,   562,   563,
+     564,   565,   566,   567,   568,    -1,   570,   571,    -1,    -1,
+     574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,
+      -1,    -1,   586,   587,   588,   589,   590,    -1,    -1,   593,
+     594,    -1,   596,   597,   598,   599,   600,   601,   602,    -1,
+      -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,
+     614,    -1,    -1,   617,    -1,    -1,    -1,    -1,   622,   623,
+      -1,    -1,    -1,    -1,   628,   629,    -1,    -1,   632,   633,
+      -1,    -1,   636,   637,     5,    -1,     7,     8,     9,    10,
+      11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,
+      21,    -1,    23,    24,    25,    26,    27,    28,    29,    -1,
+      31,    -1,    -1,    34,    35,    36,    37,    38,    39,    40,
+      -1,    42,    43,    44,    -1,    46,    -1,    48,    49,    -1,
+      -1,    52,    53,    54,    55,    56,    -1,    58,    59,    60,
+      61,    62,    -1,    64,    65,    66,    67,    68,    69,    70,
+      -1,    72,    73,    74,    75,    76,    77,    78,    79,    -1,
+      81,    82,    83,    84,    85,    86,    87,    88,    -1,    90,
+      91,    -1,    93,    94,    95,    96,    97,    -1,    99,   100,
+     101,   102,    -1,    -1,   105,   106,   107,    -1,   109,   110,
+     111,    -1,   113,   114,   115,   116,   117,   118,    -1,    -1,
+      -1,    -1,   123,   124,   125,    -1,    -1,   128,   129,    -1,
+     131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
+      -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,
+      -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,   160,
+      -1,    -1,   163,   164,    -1,   166,   167,   168,   169,   170,
+     171,   172,    -1,   174,   175,   176,   177,   178,   179,   180,
+      -1,   182,   183,   184,   185,    -1,   187,    -1,    -1,    -1,
+     191,   192,   193,    -1,   195,    -1,   197,   198,   199,   200,
+     201,   202,    -1,   204,    -1,   206,    -1,   208,   209,   210,
+      -1,   212,   213,   214,    -1,   216,   217,    -1,    -1,    -1,
+     221,   222,   223,   224,   225,    -1,   227,   228,   229,    -1,
+     231,    -1,   233,    -1,    -1,    -1,   237,   238,   239,   240,
+      -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,
+      -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,
+     261,    -1,   263,   264,   265,    -1,    -1,    -1,    -1,    -1,
+     271,   272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,
+      -1,   282,    -1,    -1,    -1,    -1,   287,   288,   289,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
+     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
+     311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,
+     321,    -1,    -1,   324,   325,   326,   327,    -1,   329,   330,
+     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
+      -1,   342,   343,   344,    -1,    -1,   347,   348,   349,   350,
+     351,   352,   353,   354,   355,    -1,   357,   358,    -1,   360,
+     361,   362,    -1,   364,   365,   366,   367,    -1,   369,   370,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,
+     381,    -1,   383,   384,    -1,   386,   387,   388,   389,   390,
+     391,   392,   393,   394,   395,   396,   397,   398,    -1,   400,
+     401,   402,    -1,   404,    -1,   406,   407,   408,   409,   410,
+      -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,
+     421,   422,   423,   424,   425,    -1,    -1,   428,   429,   430,
+     431,   432,    -1,   434,   435,    -1,   437,   438,   439,   440,
+     441,   442,    -1,   444,    -1,   446,   447,    -1,   449,   450,
+      -1,    -1,   453,   454,   455,   456,   457,   458,   459,   460,
+     461,   462,   463,    -1,   465,   466,    -1,    -1,    -1,   470,
+     471,   472,   473,    -1,    -1,    -1,   477,    -1,    -1,    -1,
+     481,    -1,   483,   484,   485,   486,    -1,   488,   489,   490,
+     491,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,
+     501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,   510,
+     511,   512,   513,   514,   515,    -1,   517,   518,   519,   520,
+     521,   522,   523,   524,   525,   526,   527,   528,   529,   530,
+     531,    -1,   533,    -1,   535,   536,   537,   538,    -1,   540,
+     541,   542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,
+      -1,    -1,   553,   554,   555,    -1,   557,   558,   559,   560,
+     561,   562,   563,   564,   565,   566,   567,   568,    -1,   570,
+     571,    -1,    -1,   574,    -1,    -1,   577,    -1,   579,    -1,
+     581,   582,   583,    -1,    -1,   586,   587,   588,   589,   590,
+      -1,    -1,   593,   594,    -1,   596,   597,   598,   599,   600,
+     601,   602,    -1,    -1,    -1,    -1,    -1,    -1,   609,   610,
+      -1,   612,   613,   614,    -1,    -1,   617,    -1,    -1,    -1,
+      -1,   622,   623,    -1,    -1,    -1,    -1,   628,   629,    -1,
+      -1,   632,   633,    -1,    -1,   636,   637,     5,    -1,     7,
+       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
+      18,    -1,    -1,    21,    -1,    23,    24,    25,    26,    27,
+      28,    29,    -1,    31,    -1,    -1,    34,    35,    36,    37,
+      38,    39,    40,    -1,    42,    43,    44,    -1,    46,    -1,
+      48,    49,    -1,    -1,    52,    53,    54,    55,    56,    -1,
+      58,    59,    60,    61,    62,    -1,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
+      88,    -1,    90,    91,    -1,    93,    94,    95,    96,    97,
+      -1,    99,   100,   101,   102,    -1,    -1,   105,   106,   107,
+      -1,   109,   110,   111,    -1,   113,   114,   115,   116,   117,
+     118,    -1,    -1,    -1,    -1,   123,   124,   125,    -1,    -1,
+     128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
+     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
+     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
+     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
+     168,   169,   170,   171,   172,    -1,   174,   175,   176,   177,
+     178,   179,   180,    -1,   182,   183,   184,   185,    -1,   187,
+      -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,
+     198,   199,   200,   201,   202,    -1,   204,    -1,   206,    -1,
+     208,   209,   210,    -1,   212,   213,   214,    -1,   216,   217,
+      -1,    -1,    -1,   221,   222,   223,   224,   225,    -1,   227,
+     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,   237,
+     238,   239,   240,    -1,    -1,   243,    -1,   245,   246,    -1,
+     248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
+     258,    -1,    -1,   261,    -1,   263,   264,   265,    -1,    -1,
+      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
+     278,   279,    -1,    -1,   282,    -1,    -1,    -1,    -1,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
+     308,   309,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
+     318,   319,   320,   321,    -1,    -1,   324,   325,   326,   327,
+      -1,   329,   330,   331,   332,   333,   334,   335,   336,   337,
+     338,   339,   340,    -1,   342,   343,   344,    -1,    -1,   347,
+     348,   349,   350,   351,   352,   353,   354,   355,    -1,   357,
+     358,    -1,   360,   361,   362,    -1,   364,   365,   366,   367,
+      -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   379,   380,   381,    -1,   383,   384,    -1,   386,   387,
+     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
+     398,    -1,   400,   401,   402,    -1,   404,    -1,   406,   407,
+     408,   409,   410,    -1,   412,   413,   414,    -1,    -1,   417,
+      -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,
+     428,   429,   430,   431,   432,    -1,   434,   435,    -1,   437,
+     438,   439,   440,   441,   442,    -1,   444,    -1,   446,   447,
+      -1,   449,   450,    -1,    -1,   453,   454,   455,   456,   457,
+     458,   459,   460,   461,   462,   463,    -1,   465,   466,    -1,
+      -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,
+      -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,
+     488,   489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
+      -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,
+      -1,   509,   510,   511,   512,   513,   514,   515,    -1,   517,
+     518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
+     528,   529,   530,   531,    -1,   533,    -1,   535,   536,   537,
+     538,    -1,   540,   541,   542,    -1,   544,   545,   546,   547,
+      -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,   557,
+     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
+     568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,
+      -1,   579,    -1,   581,   582,   583,    -1,    -1,   586,   587,
+     588,   589,   590,    -1,    -1,   593,   594,    -1,   596,   597,
+     598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,
+      -1,   609,   610,    -1,   612,   613,   614,    -1,    -1,   617,
+      -1,    -1,    -1,    -1,   622,   623,    -1,    -1,    -1,    -1,
+     628,   629,    -1,    -1,   632,   633,    -1,    -1,   636,   637,
+       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    14,
+      -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,
+      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    34,
+      35,    36,    37,    38,    39,    40,    -1,    42,    43,    44,
+      -1,    46,    -1,    48,    49,    -1,    -1,    52,    53,    54,
+      55,    56,    -1,    58,    59,    60,    61,    62,    -1,    64,
+      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
+      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
+      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
+      95,    96,    97,    -1,    99,   100,   101,   102,    -1,    -1,
+     105,   106,   107,    -1,   109,   110,   111,    -1,   113,   114,
+     115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,   124,
+     125,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,    -1,
+     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
+      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
+     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
+      -1,   166,   167,   168,   169,   170,   171,   172,    -1,   174,
+     175,   176,   177,   178,   179,   180,    -1,   182,   183,   184,
+     185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
+     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
+      -1,   206,    -1,   208,   209,   210,    -1,   212,   213,   214,
+      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
+     225,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
+      -1,    -1,   237,   238,   239,   240,    -1,    -1,   243,    -1,
+     245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,
+      -1,   256,   257,   258,    -1,    -1,   261,    -1,   263,   264,
+     265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
+      -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,    -1,
+      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,    -1,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,    -1,    -1,    -1,
+      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
+     325,   326,   327,    -1,   329,   330,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,    -1,   342,   343,   344,
+      -1,    -1,   347,   348,   349,   350,   351,   352,   353,   354,
+     355,    -1,   357,   358,    -1,   360,   361,   362,    -1,   364,
+     365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   379,   380,   381,    -1,   383,   384,
+      -1,   386,   387,   388,   389,   390,   391,   392,   393,   394,
+     395,   396,   397,   398,    -1,   400,   401,   402,    -1,   404,
+      -1,   406,   407,   408,   409,   410,    -1,   412,   413,   414,
+      -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,
+     425,    -1,    -1,   428,   429,   430,   431,   432,    -1,   434,
+     435,    -1,   437,   438,   439,   440,   441,   442,    -1,   444,
+      -1,   446,   447,    -1,   449,   450,    -1,    -1,   453,   454,
+     455,   456,   457,   458,   459,   460,   461,   462,   463,    -1,
+     465,   466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,
+      -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,
+     485,   486,    -1,   488,   489,   490,   491,   492,   493,    -1,
+      -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,
+      -1,   506,    -1,    -1,   509,   510,   511,   512,   513,   514,
+     515,    -1,   517,   518,   519,   520,   521,   522,   523,   524,
+     525,   526,   527,   528,   529,   530,   531,    -1,   533,    -1,
+     535,   536,   537,   538,    -1,   540,   541,   542,    -1,   544,
+     545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,
+     555,    -1,   557,   558,   559,   560,   561,   562,   563,   564,
+     565,   566,   567,   568,    -1,   570,   571,    -1,    -1,   574,
+      -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,
+      -1,   586,   587,   588,   589,   590,    -1,    -1,   593,   594,
+      -1,   596,   597,   598,   599,   600,   601,   602,    -1,    -1,
+      -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,
+      -1,    -1,   617,    -1,    -1,    -1,    -1,   622,   623,    -1,
+      -1,    -1,    -1,   628,   629,    -1,    -1,   632,   633,    -1,
+      -1,   636,   637,     5,    -1,     7,     8,     9,    10,    11,
+      12,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,
+      -1,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
+      -1,    -1,    34,    35,    36,    37,    38,    39,    40,    -1,
+      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
+      52,    53,    54,    55,    56,    -1,    58,    59,    60,    61,
+      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
+      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
+      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
+      -1,    93,    94,    95,    96,    97,    -1,    99,   100,   101,
+     102,    -1,    -1,   105,   106,   107,    -1,   109,   110,   111,
+      -1,   113,   114,   115,   116,   117,   118,    -1,    -1,    -1,
+      -1,   123,   124,   125,    -1,    -1,   128,   129,    -1,   131,
+      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
+      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
+      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
+      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
+     172,    -1,   174,   175,   176,   177,   178,   179,   180,    -1,
+     182,   183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,
+      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
+     202,    -1,   204,    -1,   206,    -1,   208,   209,   210,    -1,
+     212,   213,   214,    -1,   216,   217,    -1,    -1,    -1,   221,
+     222,   223,   224,   225,    -1,   227,   228,   229,    -1,   231,
+      -1,   233,    -1,    -1,    -1,   237,   238,   239,   240,    -1,
+      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
+      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
+      -1,   263,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,
+     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
+     282,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
+     302,   303,   304,   305,   306,   307,   308,   309,   310,   311,
+      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
+      -1,    -1,   324,   325,   326,   327,    -1,   329,   330,   331,
+     332,   333,   334,   335,   336,   337,   338,   339,   340,    -1,
+     342,   343,   344,    -1,    -1,   347,   348,   349,   350,   351,
+      -1,   353,   354,   355,    -1,   357,   358,    -1,   360,   361,
+     362,    -1,   364,   365,   366,   367,    -1,   369,   370,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,
+      -1,   383,   384,    -1,   386,   387,   388,   389,   390,   391,
+     392,   393,   394,   395,   396,   397,   398,    -1,   400,   401,
+     402,    -1,   404,    -1,   406,   407,   408,   409,   410,    -1,
+     412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,
+     422,   423,   424,   425,    -1,    -1,   428,   429,   430,   431,
+     432,    -1,   434,   435,    -1,   437,   438,   439,   440,   441,
+     442,    -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,
+      -1,   453,   454,   455,   456,   457,   458,   459,   460,   461,
+     462,   463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,
+     472,   473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,
+      -1,   483,   484,   485,   486,    -1,   488,   489,   490,   491,
+     492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,
+      -1,   503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,
+     512,   513,   514,   515,    -1,   517,   518,   519,   520,   521,
+     522,   523,   524,   525,   526,   527,   528,   529,   530,   531,
+      -1,   533,    -1,   535,   536,   537,   538,    -1,   540,   541,
+     542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,
+      -1,   553,   554,   555,    -1,   557,   558,   559,   560,   561,
+     562,   563,   564,   565,   566,   567,   568,    -1,   570,   571,
+      -1,    -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,
+     582,   583,    -1,    -1,   586,   587,   588,   589,   590,    -1,
+      -1,   593,   594,    -1,   596,   597,   598,   599,   600,   601,
+     602,    -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,
+     612,   613,   614,    -1,    -1,   617,    -1,    -1,    -1,    -1,
+     622,   623,    -1,    -1,    -1,    -1,   628,   629,    -1,    -1,
+     632,   633,    -1,    -1,   636,   637,     5,    -1,     7,     8,
+       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
+      -1,    -1,    21,    -1,    23,    24,    25,    26,    27,    28,
+      29,    -1,    31,    -1,    -1,    34,    35,    36,    37,    38,
+      39,    40,    -1,    42,    43,    44,    -1,    46,    -1,    48,
+      49,    -1,    -1,    52,    53,    54,    55,    56,    -1,    58,
+      59,    60,    61,    62,    -1,    64,    65,    66,    67,    68,
+      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
+      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
+      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
+      99,   100,   101,   102,    -1,    -1,   105,   106,   107,    -1,
+     109,   110,   111,    -1,   113,   114,   115,   116,   117,   118,
+      -1,    -1,    -1,    -1,   123,   124,   125,    -1,    -1,   128,
+     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
+     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
+     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
+     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
+     169,   170,   171,   172,    -1,   174,   175,   176,   177,   178,
+     179,   180,    -1,   182,   183,   184,   185,    -1,   187,    -1,
+      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
+     199,   200,   201,   202,    -1,   204,    -1,   206,    -1,   208,
+     209,   210,    -1,   212,   213,   214,    -1,   216,   217,    -1,
+      -1,    -1,   221,   222,   223,   224,   225,    -1,   227,   228,
+     229,    -1,   231,    -1,   233,    -1,    -1,    -1,   237,   238,
+     239,   240,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
+     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
+      -1,    -1,   261,    -1,   263,   264,   265,    -1,    -1,    -1,
+      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
+     279,    -1,    -1,   282,    -1,    -1,    -1,    -1,   287,   288,
+     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,    -1,   301,   302,   303,   304,   305,   306,   307,   308,
+     309,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
+     319,   320,   321,    -1,    -1,   324,   325,   326,   327,    -1,
+     329,   330,   331,   332,   333,   334,   335,   336,   337,   338,
+     339,   340,    -1,   342,   343,   344,    -1,    -1,   347,   348,
+     349,   350,   351,   352,   353,   354,   355,    -1,   357,   358,
+      -1,   360,   361,   362,    -1,   364,   365,   366,   367,    -1,
+     369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     379,   380,   381,    -1,   383,   384,    -1,   386,   387,   388,
+     389,   390,   391,   392,   393,   394,   395,   396,   397,   398,
+      -1,   400,   401,   402,    -1,   404,    -1,   406,   407,   408,
+     409,   410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,
+      -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,   428,
+     429,   430,   431,   432,    -1,   434,   435,    -1,   437,   438,
+     439,   440,   441,   442,    -1,   444,    -1,   446,   447,    -1,
+     449,   450,    -1,    -1,   453,   454,   455,   456,   457,   458,
+     459,   460,   461,   462,   463,    -1,   465,   466,    -1,    -1,
+      -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,    -1,
+      -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,   488,
+     489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
+      -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,
+     509,   510,   511,   512,   513,   514,   515,    -1,   517,   518,
+     519,   520,   521,   522,   523,   524,   525,   526,   527,   528,
+     529,   530,   531,    -1,   533,    -1,   535,   536,   537,   538,
+      -1,   540,   541,   542,    -1,   544,   545,   546,   547,    -1,
+      -1,    -1,    -1,    -1,   553,   554,   555,    -1,   557,   558,
+     559,   560,   561,   562,   563,   564,   565,   566,   567,   568,
+      -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,    -1,
+     579,    -1,   581,   582,   583,    -1,    -1,   586,   587,   588,
+     589,   590,    -1,    -1,   593,   594,    -1,   596,   597,   598,
+     599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,    -1,
+     609,   610,    -1,   612,   613,   614,    -1,    -1,   617,    -1,
+      -1,    -1,    -1,   622,   623,    -1,    -1,    -1,    -1,   628,
+     629,    -1,    -1,   632,   633,    -1,    -1,   636,   637,     5,
+      -1,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
+      -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,
+      26,    27,    28,    29,    -1,    31,    -1,    -1,    34,    35,
+      36,    37,    38,    39,    40,    -1,    42,    43,    44,    -1,
+      46,    -1,    48,    49,    -1,    -1,    52,    53,    54,    55,
+      56,    -1,    58,    59,    60,    61,    62,    -1,    64,    65,
+      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
+      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
+      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
+      96,    97,    -1,    99,   100,   101,   102,    -1,    -1,   105,
+     106,   107,    -1,   109,   110,   111,    -1,   113,   114,   115,
+     116,   117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,
+      -1,    -1,   128,   129,    -1,   131,    -1,    -1,    -1,   135,
+      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
+      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
+     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
+     166,   167,   168,   169,   170,   171,   172,    -1,   174,   175,
+     176,   177,   178,   179,   180,    -1,   182,   183,   184,   185,
+      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
+      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
+     206,    -1,   208,   209,   210,    -1,   212,   213,   214,    -1,
+     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,   225,
+      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
+      -1,   237,   238,   239,   240,    -1,    -1,   243,    -1,   245,
+     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
+     256,   257,   258,    -1,    -1,   261,    -1,   263,   264,   265,
+      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
+     276,    -1,   278,   279,    -1,    -1,   282,    -1,    -1,    -1,
+      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,    -1,   301,   302,   303,   304,   305,
+     306,   307,   308,   309,   310,   311,    -1,    -1,    -1,    -1,
+     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
+     326,   327,    -1,   329,   330,   331,   332,   333,   334,   335,
+     336,   337,   338,   339,   340,    -1,   342,   343,   344,    -1,
+      -1,   347,   348,   349,   350,   351,   352,   353,   354,   355,
+      -1,   357,   358,    -1,   360,   361,   362,    -1,   364,   365,
+     366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   379,   380,   381,    -1,   383,   384,    -1,
+     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
+     396,   397,   398,    -1,   400,   401,   402,    -1,   404,    -1,
+     406,   407,   408,   409,   410,    -1,   412,   413,   414,    -1,
+      -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,   425,
+      -1,    -1,   428,   429,   430,   431,   432,    -1,   434,   435,
+      -1,   437,   438,   439,   440,   441,   442,    -1,   444,    -1,
+     446,   447,    -1,   449,   450,    -1,    -1,   453,   454,   455,
+     456,   457,   458,   459,   460,   461,   462,   463,    -1,   465,
+     466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,
+      -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,
+     486,    -1,   488,   489,   490,   491,   492,   493,    -1,    -1,
+      -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,
+     506,    -1,    -1,   509,   510,   511,   512,   513,   514,   515,
+      -1,   517,   518,   519,   520,   521,   522,   523,   524,   525,
+     526,   527,   528,   529,   530,   531,    -1,   533,    -1,   535,
+     536,   537,   538,    -1,   540,   541,   542,    -1,   544,   545,
+     546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,
+      -1,   557,   558,   559,   560,   561,   562,   563,   564,   565,
+     566,   567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,
+      -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,
+     586,   587,   588,   589,   590,    -1,    -1,   593,   594,    -1,
+     596,   597,   598,   599,   600,   601,   602,    -1,    -1,    -1,
+      -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,
+      -1,   617,    -1,    -1,    -1,    -1,   622,   623,    -1,    -1,
+      -1,    -1,   628,   629,    -1,    -1,   632,   633,    -1,    -1,
+     636,   637,     5,    -1,     7,     8,     9,    10,    11,    -1,
+      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
+      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
+      -1,    34,    35,    36,    37,    38,    39,    40,    -1,    42,
+      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
+      53,    54,    55,    56,    -1,    58,    59,    60,    61,    62,
+      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
+      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
+      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
+      93,    94,    95,    96,    97,    -1,    99,   100,   101,   102,
+      -1,    -1,   105,   106,   107,    -1,   109,   110,   111,    -1,
+     113,   114,   115,   116,   117,   118,    -1,    -1,    -1,    -1,
+     123,   124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,
+      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
+      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
+     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
+     163,   164,    -1,   166,   167,   168,   169,   170,   171,   172,
+      -1,   174,   175,   176,   177,   178,   179,   180,    -1,   182,
+     183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,
+     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
+      -1,   204,    -1,   206,    -1,   208,   209,   210,    -1,   212,
+     213,   214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
+     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
+     233,    -1,    -1,    -1,   237,   238,   239,   240,    -1,    -1,
+     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
+     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
+     263,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
+      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,
+      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
+     303,   304,   305,   306,   307,   308,   309,   310,   311,    -1,
+      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
+      -1,   324,   325,   326,   327,    -1,   329,   330,   331,   332,
+     333,   334,   335,   336,   337,   338,   339,   340,    -1,   342,
+     343,   344,    -1,    -1,   347,   348,   349,   350,   351,   352,
+     353,   354,   355,    -1,   357,   358,    -1,   360,   361,   362,
+      -1,   364,   365,   366,   367,    -1,   369,   370,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,
+     383,   384,    -1,   386,   387,   388,   389,   390,   391,   392,
+     393,   394,   395,   396,   397,   398,    -1,   400,   401,   402,
+      -1,   404,    -1,   406,   407,   408,   409,   410,    -1,   412,
+     413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,
+     423,   424,   425,    -1,    -1,   428,   429,   430,   431,   432,
+      -1,   434,   435,    -1,   437,   438,   439,   440,   441,   442,
+      -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,
+     453,   454,   455,   456,   457,   458,   459,   460,   461,   462,
+     463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,
+     473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,
+     483,   484,   485,   486,    -1,   488,   489,   490,   491,   492,
+     493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,
+     503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,   512,
+     513,   514,   515,    -1,   517,   518,   519,   520,   521,   522,
+     523,   524,   525,   526,   527,   528,   529,   530,   531,    -1,
+     533,    -1,   535,   536,   537,   538,    -1,   540,   541,   542,
+      -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,
+     553,   554,   555,    -1,   557,   558,   559,   560,   561,   562,
+     563,   564,   565,   566,   567,   568,    -1,   570,   571,    -1,
+      -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,
+     583,    -1,    -1,   586,   587,   588,   589,   590,    -1,    -1,
+     593,   594,    -1,   596,   597,   598,   599,   600,   601,   602,
+      -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,
+     613,   614,    -1,    -1,   617,    -1,    -1,    -1,    -1,   622,
+     623,    -1,    -1,    -1,    -1,   628,   629,    -1,    -1,   632,
+     633,    -1,    -1,   636,   637,     5,    -1,     7,     8,     9,
+      10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,
+      -1,    21,    -1,    23,    24,    25,    26,    27,    28,    29,
+      -1,    31,    -1,    -1,    34,    35,    36,    37,    38,    39,
+      40,    -1,    42,    43,    44,    -1,    46,    -1,    48,    49,
+      -1,    -1,    52,    53,    54,    55,    56,    -1,    58,    59,
+      60,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
+      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
+      -1,    81,    82,    83,    84,    85,    86,    87,    88,    -1,
+      90,    91,    -1,    93,    94,    95,    96,    97,    -1,    99,
+     100,   101,   102,    -1,    -1,   105,   106,   107,    -1,   109,
+     110,   111,    -1,   113,   114,   115,   116,   117,   118,    -1,
+      -1,    -1,    -1,   123,   124,   125,    -1,    -1,   128,   129,
+      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
+     140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
+      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
+     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
+     170,   171,   172,    -1,   174,   175,   176,   177,   178,   179,
+     180,    -1,   182,   183,   184,   185,    -1,   187,    -1,    -1,
+      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
+     200,   201,   202,    -1,   204,    -1,   206,    -1,   208,   209,
+     210,    -1,   212,   213,   214,    -1,   216,   217,    -1,    -1,
+      -1,   221,   222,   223,   224,   225,    -1,   227,   228,   229,
+      -1,   231,    -1,   233,    -1,    -1,    -1,   237,   238,   239,
+     240,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
+      -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,
+      -1,   261,    -1,   263,   264,   265,    -1,    -1,    -1,    -1,
+      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
+      -1,    -1,   282,    -1,    -1,    -1,    -1,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+      -1,   301,   302,   303,   304,   305,   306,   307,   308,   309,
+     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
+     320,   321,    -1,    -1,   324,   325,   326,   327,    -1,   329,
+     330,   331,   332,   333,   334,   335,   336,   337,   338,   339,
+     340,    -1,   342,   343,   344,    -1,    -1,   347,   348,   349,
+     350,   351,   352,   353,   354,   355,    -1,   357,   358,    -1,
+     360,   361,   362,    -1,   364,   365,   366,   367,    -1,   369,
+     370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,
+     380,   381,    -1,   383,   384,    -1,   386,   387,   388,   389,
+     390,   391,   392,   393,   394,   395,   396,   397,   398,    -1,
+     400,   401,   402,    -1,   404,    -1,   406,   407,   408,   409,
+     410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,
+      -1,   421,   422,   423,   424,   425,    -1,    -1,   428,   429,
+     430,   431,   432,    -1,   434,   435,    -1,   437,   438,   439,
+     440,   441,   442,    -1,   444,    -1,   446,   447,    -1,   449,
+     450,    -1,    -1,   453,   454,   455,   456,   457,   458,   459,
+     460,   461,   462,   463,    -1,   465,   466,    -1,    -1,    -1,
+     470,   471,   472,   473,    -1,    -1,    -1,   477,    -1,    -1,
+      -1,   481,    -1,   483,   484,   485,   486,    -1,   488,   489,
+     490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,
+     500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,
+     510,   511,   512,   513,   514,   515,    -1,   517,   518,   519,
+     520,   521,   522,   523,   524,   525,   526,   527,   528,   529,
+     530,   531,    -1,   533,    -1,   535,   536,   537,   538,    -1,
+     540,   541,   542,    -1,   544,   545,   546,   547,    -1,    -1,
+      -1,    -1,    -1,   553,   554,   555,    -1,   557,   558,   559,
+     560,   561,   562,   563,   564,   565,   566,   567,   568,    -1,
+     570,   571,    -1,    -1,   574,    -1,    -1,   577,    -1,   579,
+      -1,   581,   582,   583,    -1,    -1,   586,   587,   588,   589,
+     590,    -1,    -1,   593,   594,    -1,   596,   597,   598,   599,
+     600,   601,   602,    -1,    -1,    -1,    -1,    -1,    -1,   609,
+     610,    -1,   612,   613,   614,    -1,    -1,   617,    -1,    -1,
+      -1,    -1,   622,   623,    -1,    -1,    -1,    -1,   628,   629,
+      -1,    -1,   632,   633,    -1,    -1,   636,   637,     5,    -1,
+       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
+      -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,    26,
+      27,    28,    29,    -1,    31,    -1,    -1,    34,    35,    36,
+      37,    38,    39,    40,    -1,    42,    43,    44,    -1,    46,
+      -1,    48,    49,    -1,    -1,    52,    53,    54,    55,    56,
+      -1,    58,    59,    60,    61,    62,    -1,    64,    65,    66,
+      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
+      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
+      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    96,
+      97,    -1,    99,   100,   101,   102,    -1,    -1,   105,   106,
+     107,    -1,   109,   110,   111,    -1,   113,   114,   115,   116,
+     117,   118,    -1,    -1,    -1,    -1,   123,   124,   125,    -1,
+      -1,   128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
+     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
+     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
+      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
+     167,   168,   169,   170,   171,   172,    -1,   174,   175,   176,
+     177,   178,   179,   180,    -1,   182,   183,   184,   185,    -1,
+     187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,
+     197,   198,   199,   200,   201,   202,    -1,   204,    -1,   206,
+      -1,   208,   209,   210,    -1,   212,   213,   214,    -1,   216,
+     217,    -1,    -1,    -1,   221,   222,   223,   224,   225,    -1,
+     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
+     237,   238,   239,   240,    -1,    -1,   243,    -1,   245,   246,
+      -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,
+     257,   258,    -1,    -1,   261,    -1,   263,   264,   265,    -1,
+      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
+      -1,   278,   279,    -1,    -1,   282,    -1,    -1,    -1,    -1,
+     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,    -1,   301,   302,   303,   304,   305,   306,
+     307,   308,   309,   310,   311,   312,    -1,    -1,    -1,   316,
+     317,   318,   319,   320,   321,    -1,    -1,   324,   325,   326,
+     327,    -1,   329,   330,   331,   332,   333,   334,   335,   336,
+     337,   338,   339,   340,    -1,   342,   343,   344,    -1,    -1,
+     347,   348,   349,   350,   351,    -1,   353,   354,   355,    -1,
+     357,   358,    -1,   360,   361,   362,    -1,   364,   365,   366,
+     367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   379,   380,   381,    -1,   383,   384,    -1,   386,
+     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
+     397,   398,    -1,   400,   401,   402,    -1,   404,    -1,   406,
+     407,   408,   409,   410,    -1,   412,   413,   414,    -1,    -1,
+     417,    -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,
+      -1,   428,   429,   430,   431,   432,    -1,   434,   435,    -1,
+     437,   438,   439,   440,   441,   442,    -1,   444,    -1,   446,
+     447,    -1,   449,   450,    -1,    -1,   453,   454,   455,   456,
+     457,   458,   459,   460,   461,   462,   463,    -1,   465,   466,
+      -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,
+     477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,
+      -1,   488,   489,   490,   491,   492,   493,    -1,    -1,    -1,
+      -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,
+      -1,    -1,   509,   510,   511,   512,   513,   514,   515,    -1,
+     517,   518,   519,   520,   521,   522,   523,   524,   525,   526,
+     527,   528,   529,   530,   531,    -1,   533,    -1,   535,   536,
+     537,   538,    -1,   540,   541,   542,    -1,   544,   545,   546,
+     547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,
+     557,   558,   559,   560,   561,   562,   563,   564,   565,   566,
+     567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,
+     577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,   586,
+     587,   588,   589,   590,    -1,    -1,   593,   594,    -1,   596,
+     597,   598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,
+      -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,    -1,
+     617,    -1,    -1,    -1,    -1,   622,   623,    -1,    -1,    -1,
+      -1,   628,   629,    -1,    -1,   632,   633,    -1,    -1,   636,
+     637,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
       14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
       24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
+      34,    35,    36,    37,    38,    39,    40,    -1,    42,    43,
+      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    53,
+      54,    55,    56,    -1,    58,    59,    60,    61,    62,    -1,
       64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
       74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
       84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
+      94,    95,    96,    97,    -1,    99,   100,   101,   102,    -1,
+      -1,   105,   106,   107,    -1,   109,   110,   111,    -1,   113,
+     114,   115,   116,   117,   118,    -1,    -1,    -1,    -1,   123,
+     124,   125,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
       -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
      144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
       -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
+     164,    -1,   166,   167,   168,   169,   170,   171,   172,    -1,
+     174,   175,   176,   177,   178,   179,   180,    -1,   182,   183,
+     184,   185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
       -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
+     204,    -1,   206,    -1,   208,   209,   210,    -1,   212,   213,
+     214,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
+     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
+      -1,    -1,    -1,   237,   238,   239,   240,    -1,    -1,   243,
       -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
+      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,   263,
      264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
+     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
       -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
      294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
+     304,   305,   306,   307,   308,   309,   310,   311,    -1,    -1,
       -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
+     324,   325,   326,   327,    -1,   329,   330,   331,   332,   333,
+     334,   335,   336,   337,   338,   339,   340,    -1,   342,   343,
+     344,    -1,    -1,   347,   348,   349,   350,   351,    -1,   353,
+     354,   355,    -1,   357,   358,    -1,   360,   361,   362,    -1,
+     364,   365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,   383,
+     384,    -1,   386,   387,   388,   389,   390,   391,   392,   393,
+     394,   395,   396,   397,   398,    -1,   400,   401,   402,    -1,
+     404,    -1,   406,   407,   408,   409,   410,    -1,   412,   413,
+     414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,
+     424,   425,    -1,    -1,   428,   429,   430,   431,   432,    -1,
+     434,   435,    -1,   437,   438,   439,   440,   441,   442,    -1,
+     444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,   453,
+     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
+      -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,   473,
+      -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,
+     484,   485,   486,    -1,   488,   489,   490,   491,   492,   493,
+      -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,
+      -1,    -1,   506,    -1,    -1,   509,   510,   511,   512,   513,
+     514,   515,    -1,   517,   518,   519,   520,   521,   522,   523,
+     524,   525,   526,   527,   528,   529,   530,   531,    -1,   533,
+      -1,   535,   536,   537,   538,    -1,   540,   541,   542,    -1,
+     544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,
+     554,   555,    -1,   557,   558,   559,   560,   561,   562,   563,
+     564,   565,   566,   567,   568,    -1,   570,   571,    -1,    -1,
+     574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,
+      -1,    -1,   586,   587,   588,   589,   590,    -1,    -1,   593,
+     594,    -1,   596,   597,   598,   599,   600,   601,   602,    -1,
+      -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,
+     614,    -1,    -1,   617,    -1,    -1,    -1,    -1,   622,   623,
+      -1,    -1,    -1,    -1,   628,   629,    -1,    -1,   632,   633,
+      -1,    -1,   636,   637,     5,    -1,     7,     8,     9,    10,
+      11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,
+      21,    -1,    23,    24,    25,    26,    27,    28,    29,    -1,
+      31,    -1,    -1,    34,    35,    36,    37,    38,    39,    40,
+      -1,    42,    43,    44,    -1,    46,    -1,    48,    49,    -1,
+      -1,    52,    53,    54,    55,    56,    -1,    58,    59,    60,
+      61,    62,    -1,    64,    65,    66,    67,    68,    69,    70,
+      -1,    72,    73,    74,    75,    76,    77,    78,    79,    -1,
+      81,    82,    83,    84,    85,    86,    87,    88,    -1,    90,
+      91,    -1,    93,    94,    95,    96,    97,    -1,    99,   100,
+     101,   102,    -1,    -1,   105,   106,   107,    -1,   109,   110,
+     111,    -1,   113,   114,   115,   116,   117,   118,    -1,    -1,
+      -1,    -1,   123,   124,   125,    -1,    -1,   128,   129,    -1,
+     131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
+      -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,
+      -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,   160,
+      -1,    -1,   163,   164,    -1,   166,   167,   168,   169,   170,
+     171,   172,    -1,   174,   175,   176,   177,   178,   179,   180,
+      -1,   182,   183,   184,   185,    -1,   187,    -1,    -1,    -1,
+     191,    -1,   193,    -1,   195,    -1,   197,   198,   199,   200,
+     201,   202,    -1,   204,    -1,   206,    -1,   208,   209,   210,
+      -1,   212,   213,   214,    -1,   216,   217,    -1,    -1,    -1,
+     221,   222,   223,   224,   225,    -1,   227,   228,   229,    -1,
+     231,    -1,   233,    -1,    -1,    -1,   237,   238,   239,   240,
+      -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,
+      -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,
+     261,    -1,   263,   264,   265,    -1,    -1,    -1,    -1,    -1,
+     271,   272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,
+      -1,   282,    -1,    -1,    -1,    -1,   287,   288,   289,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
+     301,   302,   303,   304,   305,   306,   307,   308,   309,   310,
+     311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,
+     321,    -1,    -1,   324,   325,   326,   327,    -1,   329,   330,
+     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
+      -1,   342,   343,   344,    -1,    -1,   347,   348,   349,   350,
+     351,    -1,   353,   354,   355,    -1,   357,   358,    -1,   360,
+     361,   362,    -1,   364,   365,   366,   367,    -1,   369,   370,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,
+     381,    -1,   383,   384,    -1,   386,   387,   388,   389,   390,
+     391,   392,   393,   394,   395,   396,   397,   398,    -1,   400,
+     401,   402,    -1,   404,    -1,   406,   407,   408,   409,   410,
+      -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,
+     421,   422,   423,   424,   425,    -1,    -1,   428,   429,   430,
+     431,   432,    -1,   434,   435,    -1,   437,   438,   439,   440,
+     441,   442,    -1,   444,    -1,   446,   447,    -1,   449,   450,
+      -1,    -1,   453,   454,   455,   456,   457,   458,   459,   460,
+     461,   462,   463,    -1,   465,   466,    -1,    -1,    -1,   470,
+     471,   472,   473,    -1,    -1,    -1,   477,    -1,    -1,    -1,
+     481,    -1,   483,   484,   485,   486,    -1,   488,   489,   490,
+     491,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,
+     501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,   510,
+     511,   512,   513,   514,   515,    -1,   517,   518,   519,   520,
+     521,   522,   523,   524,   525,   526,   527,   528,   529,   530,
+     531,    -1,   533,    -1,   535,   536,   537,   538,    -1,   540,
+     541,   542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,
+      -1,    -1,   553,   554,   555,    -1,   557,   558,   559,   560,
+     561,   562,   563,   564,   565,   566,   567,   568,    -1,   570,
+     571,    -1,    -1,   574,    -1,    -1,   577,    -1,   579,    -1,
+     581,   582,   583,    -1,    -1,   586,   587,   588,   589,   590,
+      -1,    -1,   593,   594,    -1,   596,   597,   598,   599,   600,
+     601,   602,    -1,    -1,    -1,    -1,    -1,    -1,   609,   610,
+      -1,   612,   613,   614,    -1,    -1,   617,    -1,    -1,    -1,
+      -1,   622,   623,    -1,    -1,    -1,    -1,   628,   629,    -1,
+      -1,   632,   633,    -1,    -1,   636,   637,     5,    -1,     7,
+       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
+      18,    -1,    -1,    21,    -1,    23,    24,    25,    26,    27,
+      28,    29,    -1,    31,    -1,    -1,    34,    35,    36,    37,
+      38,    39,    40,    -1,    42,    43,    44,    -1,    46,    -1,
+      48,    49,    -1,    -1,    52,    53,    54,    55,    56,    -1,
+      58,    59,    60,    61,    62,    -1,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
+      88,    -1,    90,    91,    -1,    93,    94,    95,    96,    97,
+      -1,    99,   100,   101,   102,    -1,    -1,   105,   106,   107,
+      -1,   109,   110,   111,    -1,   113,   114,   115,   116,   117,
+     118,    -1,    -1,    -1,    -1,   123,   124,   125,    -1,    -1,
+     128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
+     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
+     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
+     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
+     168,   169,   170,   171,   172,    -1,   174,   175,   176,   177,
+     178,   179,   180,    -1,   182,   183,   184,   185,    -1,   187,
+      -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,
+     198,   199,   200,   201,   202,    -1,   204,    -1,   206,    -1,
+     208,   209,   210,    -1,   212,   213,   214,    -1,   216,   217,
+      -1,    -1,    -1,   221,   222,   223,   224,   225,    -1,   227,
+     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,   237,
+     238,   239,   240,    -1,    -1,   243,    -1,   245,   246,    -1,
+     248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
+     258,    -1,    -1,   261,    -1,   263,   264,   265,    -1,    -1,
+      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
+     278,   279,    -1,    -1,   282,    -1,    -1,    -1,    -1,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,    -1,   301,   302,   303,   304,   305,   306,   307,
+     308,   309,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
+     318,   319,   320,   321,    -1,    -1,   324,   325,   326,   327,
+      -1,   329,   330,   331,   332,   333,   334,   335,   336,   337,
+     338,   339,   340,    -1,   342,   343,   344,    -1,    -1,   347,
+     348,   349,   350,   351,    -1,   353,   354,   355,    -1,   357,
+     358,    -1,   360,   361,   362,    -1,   364,   365,   366,   367,
+      -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   379,   380,   381,    -1,   383,   384,    -1,   386,   387,
+     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
+     398,    -1,   400,   401,   402,    -1,   404,    -1,   406,   407,
+     408,   409,   410,    -1,   412,   413,   414,    -1,    -1,   417,
+      -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,
+     428,   429,   430,   431,   432,    -1,   434,   435,    -1,   437,
+     438,   439,   440,   441,   442,    -1,   444,    -1,   446,   447,
+      -1,   449,   450,    -1,    -1,   453,   454,   455,   456,   457,
+     458,   459,   460,   461,   462,   463,    -1,   465,   466,    -1,
+      -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,
+      -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,
+     488,   489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
+      -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,
+      -1,   509,   510,   511,   512,   513,   514,   515,    -1,   517,
+     518,   519,   520,   521,   522,   523,   524,   525,   526,   527,
+     528,   529,   530,   531,    -1,   533,    -1,   535,   536,   537,
+     538,    -1,   540,   541,   542,    -1,   544,   545,   546,   547,
+      -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,   557,
+     558,   559,   560,   561,   562,   563,   564,   565,   566,   567,
+     568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,
+      -1,   579,    -1,   581,   582,   583,    -1,    -1,   586,   587,
+     588,   589,   590,    -1,    -1,   593,   594,    -1,   596,   597,
+     598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,
+      -1,   609,   610,    -1,   612,   613,   614,    -1,    -1,   617,
+      -1,    -1,    -1,    -1,   622,   623,    -1,    -1,    -1,    -1,
+     628,   629,    -1,    -1,   632,   633,    -1,    -1,   636,   637,
+       5,    -1,     7,     8,     9,    10,    11,    -1,    -1,    14,
+      -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,
+      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,
+      35,    36,    -1,    -1,    39,    -1,    -1,    42,    43,    44,
+      -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,
+      55,    56,    -1,    58,    59,    -1,    61,    62,    -1,    64,
+      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
+      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
+      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
+      95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,
+     105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,
+     115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,
+     125,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,
+     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
+      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
+     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
+      -1,   166,   167,   168,   169,   170,   171,    -1,    -1,   174,
+     175,   176,    -1,   178,   179,   180,    -1,   182,   183,   184,
+     185,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
+     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
+      -1,    -1,    -1,   208,   209,   210,    -1,   212,   213,   214,
+      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
+      -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
+      -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,
+     245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,
+      -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,
+     265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
+      -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,    -1,
+      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,    -1,   301,   302,   303,    -1,
+     305,   306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,
+      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
+     325,    -1,   327,    -1,   329,    -1,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,    -1,   342,   343,   344,
+      -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,   354,
+     355,    -1,   357,   358,    -1,   360,   361,   362,    -1,   364,
+     365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   379,   380,   381,    -1,    -1,   384,
+      -1,   386,   387,   388,   389,   390,   391,   392,   393,   394,
+     395,   396,   397,    -1,    -1,   400,   401,   402,    -1,   404,
+      -1,   406,   407,   408,   409,   410,    -1,   412,   413,   414,
+      -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,
+     425,    -1,    -1,   428,   429,   430,   431,   432,    -1,   434,
+     435,    -1,   437,   438,   439,    -1,    -1,   442,    -1,   444,
+      -1,   446,   447,    -1,   449,   450,    -1,    -1,    -1,   454,
+     455,   456,   457,   458,   459,   460,   461,   462,   463,    -1,
+     465,   466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,
+      -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,
+     485,   486,    -1,   488,   489,   490,   491,   492,   493,    -1,
+      -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,
+      -1,   506,    -1,    -1,   509,   510,   511,    -1,    -1,   514,
+     515,    -1,   517,   518,   519,   520,   521,   522,    -1,    -1,
+     525,   526,   527,   528,    -1,   530,   531,    -1,   533,    -1,
+     535,   536,   537,   538,    -1,   540,   541,   542,    -1,   544,
+     545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,
+     555,    -1,    -1,   558,   559,   560,   561,   562,   563,   564,
+     565,   566,   567,   568,    -1,   570,   571,    -1,    -1,   574,
+      -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,
+      -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,
+      -1,    -1,   597,   598,   599,   600,   601,   602,    -1,    -1,
+      -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,
+      -1,    -1,   617,    -1,    -1,    -1,    -1,     5,    -1,     7,
+       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
+      18,   636,   637,    21,    -1,    23,    24,    25,    26,    27,
+      28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
+      -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,
+      48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,
+      58,    59,    -1,    61,    62,    -1,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
+      88,    -1,    90,    91,    92,    93,    94,    95,    96,    97,
+      -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,
+      -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,
+     118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,
+      -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
+     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
+     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
+     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
+     168,   169,   170,   171,    -1,    -1,   174,   175,   176,    -1,
+      -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,   187,
+      -1,    -1,    -1,   191,    -1,   193,   194,   195,    -1,   197,
+     198,   199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,
+     208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
+      -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,
+     228,   229,   230,   231,    -1,   233,    -1,    -1,    -1,    -1,
+     238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,
+     248,   249,    -1,    -1,    -1,   253,   254,    -1,   256,   257,
+     258,    -1,    -1,   261,    -1,    -1,   264,   265,    -1,   267,
+      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
+     278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,    -1,   301,   302,   303,    -1,   305,   306,   307,
+     308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
+     318,   319,   320,   321,    -1,    -1,   324,   325,    -1,   327,
+      -1,   329,    -1,   331,   332,   333,   334,   335,   336,   337,
+     338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,
+     348,   349,   350,    -1,    -1,    -1,   354,   355,    -1,    -1,
+      -1,    -1,   360,   361,   362,    -1,   364,   365,   366,   367,
+      -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   379,   380,   381,    -1,    -1,   384,    -1,   386,   387,
+     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
+      -1,    -1,   400,   401,   402,    -1,   404,    -1,   406,   407,
+     408,   409,   410,    -1,   412,   413,   414,    -1,    -1,   417,
+      -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,
+     428,   429,   430,   431,   432,    -1,   434,   435,    -1,   437,
+     438,   439,    -1,    -1,   442,    -1,   444,    -1,   446,   447,
+      -1,   449,   450,    -1,    -1,    -1,   454,   455,   456,   457,
+     458,   459,   460,   461,   462,   463,    -1,   465,   466,   467,
+      -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,
+      -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,
+     488,   489,   490,   491,   492,   493,   494,    -1,    -1,    -1,
+      -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,
+      -1,   509,   510,   511,    -1,    -1,   514,   515,    -1,   517,
+     518,   519,   520,   521,   522,    -1,    -1,   525,   526,   527,
+     528,    -1,   530,   531,    -1,   533,    -1,   535,   536,   537,
+     538,    -1,    -1,   541,   542,    -1,   544,   545,   546,   547,
+      -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,
+      -1,   559,   560,   561,   562,    -1,   564,   565,    -1,   567,
+     568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,
+      -1,   579,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,
+      -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,
+     598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,
+      -1,   609,   610,    -1,   612,   613,   614,    -1,    -1,   617,
+      -1,    -1,     5,    -1,     7,     8,     9,    10,    11,    -1,
+      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,   637,
+      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
+      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
+      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
+      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
+      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
+      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
+      83,    84,    85,    86,    87,    88,    -1,    90,    91,    92,
+      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
+      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
+     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
+     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
+      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
+      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
+     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
+     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
+      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
+     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
+     193,   194,   195,    -1,   197,   198,   199,   200,   201,   202,
+      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
+      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
+     223,   224,    -1,    -1,   227,   228,   229,   230,   231,    -1,
+     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
+     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
+     253,   254,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
+      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
+      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
+     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
+      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
+      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
+     333,   334,   335,   336,   337,   338,   339,   340,    -1,    -1,
+     343,   344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,
+      -1,   354,   355,    -1,    -1,    -1,    -1,   360,   361,   362,
+      -1,   364,   365,   366,   367,    -1,   369,   370,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,
+      -1,   384,    -1,   386,   387,   388,   389,   390,   391,   392,
+     393,   394,   395,   396,   397,    -1,    -1,   400,   401,   402,
+      -1,   404,    -1,   406,   407,   408,   409,   410,    -1,   412,
+     413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,
+     423,   424,   425,    -1,    -1,   428,   429,   430,   431,   432,
+      -1,   434,   435,    -1,   437,   438,   439,    -1,    -1,   442,
+      -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,
+      -1,   454,   455,   456,   457,   458,   459,   460,   461,   462,
+     463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,
+     473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,
+     483,   484,   485,   486,    -1,   488,   489,   490,   491,   492,
+     493,   494,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,
+     503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,    -1,
+      -1,   514,   515,    -1,   517,   518,   519,   520,   521,   522,
+      -1,    -1,   525,   526,   527,   528,    -1,   530,   531,    -1,
+     533,    -1,   535,   536,   537,   538,    -1,    -1,   541,   542,
+      -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,
+     553,   554,   555,    -1,    -1,    -1,   559,   560,   561,   562,
+      -1,   564,   565,    -1,   567,   568,    -1,   570,   571,    -1,
+      -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,
+     583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,
+     593,    -1,    -1,    -1,   597,   598,   599,   600,   601,   602,
+      -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,
+     613,   614,    -1,    -1,   617,    -1,    -1,     5,    -1,     7,
+       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
+      18,    -1,    -1,    21,   637,    23,    24,    25,    26,    27,
+      28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
+      -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,
+      48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,
+      58,    59,    -1,    61,    62,    -1,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
+      88,    -1,    90,    91,    -1,    93,    94,    95,    96,    97,
+      -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,
+      -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,
+     118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,
+      -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
+     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
+     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
+     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
+     168,   169,   170,   171,    -1,    -1,   174,   175,   176,    -1,
+      -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,   187,
+      -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,
+     198,   199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,
+     208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
+      -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,
+     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,
+     238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,
+     248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
+     258,    -1,    -1,   261,    -1,    -1,   264,   265,    -1,    -1,
+      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
+     278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,    -1,   301,   302,   303,    -1,   305,   306,   307,
+     308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
+     318,   319,   320,   321,    -1,    -1,   324,   325,    -1,   327,
+      -1,   329,    -1,   331,   332,   333,   334,   335,   336,   337,
+     338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,
+     348,   349,   350,    -1,    -1,    -1,   354,   355,    -1,    -1,
+      -1,    -1,   360,   361,   362,    -1,   364,   365,   366,   367,
+      -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   379,   380,   381,    -1,    -1,   384,    -1,   386,   387,
+     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
+      -1,    -1,   400,   401,   402,    -1,   404,    -1,   406,   407,
+     408,   409,   410,    -1,   412,   413,   414,    -1,    -1,   417,
+      -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,
+     428,   429,   430,   431,   432,    -1,   434,   435,    -1,   437,
+     438,   439,    -1,    -1,   442,    -1,   444,    -1,   446,   447,
+      -1,   449,   450,    -1,    -1,    -1,   454,   455,   456,   457,
+     458,   459,   460,   461,   462,   463,    -1,   465,   466,   467,
+      -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,
+      -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,
+     488,   489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
+      -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,
+      -1,   509,   510,   511,    -1,    -1,   514,   515,    -1,   517,
+     518,   519,   520,   521,   522,    -1,    -1,   525,   526,   527,
+     528,    -1,   530,   531,    -1,   533,    -1,   535,   536,   537,
+     538,    -1,    -1,   541,   542,    -1,   544,   545,   546,   547,
+      -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,
+      -1,   559,   560,   561,   562,    -1,   564,   565,    -1,   567,
+     568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,
+      -1,   579,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,
+      -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,
+     598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,
+      -1,   609,   610,    -1,   612,   613,   614,    -1,    -1,   617,
+      -1,    -1,     5,    -1,     7,     8,     9,    10,    11,    -1,
+      -1,    14,   630,    -1,    -1,    18,    -1,    -1,    21,   637,
+      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
+      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
+      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
+      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
+      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
+      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
+      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
+      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
+      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
+     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
+     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
+      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
+      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
+     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
+     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
+      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
+     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
+     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
+      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
+      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
+     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
+     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
+     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
+     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
+      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
+      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
+     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
+      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
+      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
+     333,   334,   335,   336,   337,   338,   339,   340,    -1,    -1,
+     343,   344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,
+      -1,   354,   355,    -1,    -1,    -1,    -1,   360,   361,   362,
+      -1,   364,   365,   366,   367,    -1,   369,   370,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,
+      -1,   384,    -1,   386,   387,   388,   389,   390,   391,   392,
+     393,   394,   395,   396,   397,    -1,    -1,   400,   401,   402,
+      -1,   404,    -1,   406,   407,   408,   409,   410,    -1,   412,
+     413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,
+     423,   424,   425,    -1,    -1,   428,   429,   430,   431,   432,
+      -1,   434,   435,    -1,   437,   438,   439,    -1,    -1,   442,
+      -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,
+      -1,   454,   455,   456,   457,   458,   459,   460,   461,   462,
+     463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,
+     473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,
+     483,   484,   485,   486,    -1,   488,   489,   490,   491,   492,
+     493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,
+     503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,    -1,
+      -1,   514,   515,    -1,   517,   518,   519,   520,   521,   522,
+      -1,    -1,   525,   526,   527,   528,    -1,   530,   531,    -1,
+     533,    -1,   535,   536,   537,   538,    -1,    -1,   541,   542,
+      -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,
+     553,   554,   555,    -1,    -1,    -1,   559,   560,   561,   562,
+      -1,   564,   565,    -1,   567,   568,    -1,   570,   571,    -1,
+      -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,
+     583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,
+     593,    -1,    -1,    -1,   597,   598,   599,   600,   601,   602,
+      -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,
+     613,   614,    -1,    -1,   617,    -1,    -1,    -1,    -1,     5,
+      -1,     7,     8,     9,    10,    11,    -1,   630,    14,    -1,
+      -1,    -1,    18,   636,   637,    21,    -1,    23,    24,    25,
+      26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
+      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,
+      46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,
+      56,    -1,    58,    59,    -1,    61,    62,    -1,    64,    65,
+      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
+      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
+      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
+      96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
+      -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,
+      -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,
+      -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,
+      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
+      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
+     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
+     166,   167,   168,   169,   170,   171,    -1,    -1,   174,   175,
+     176,    -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,
+      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
+      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
+      -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,
+     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,
+      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
+      -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,
+     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
+     256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,
+      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
+     276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,    -1,   301,   302,   303,    -1,   305,
+     306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,
+     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
+      -1,   327,    -1,   329,    -1,   331,   332,   333,   334,   335,
+     336,   337,   338,   339,   340,    -1,    -1,   343,   344,    -1,
+      -1,   347,   348,   349,   350,    -1,    -1,    -1,   354,   355,
+      -1,    -1,    -1,    -1,   360,   361,   362,    -1,   364,   365,
+     366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   379,   380,   381,    -1,    -1,   384,    -1,
+     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
+     396,   397,    -1,    -1,   400,   401,   402,    -1,   404,    -1,
+     406,   407,   408,   409,   410,    -1,   412,   413,   414,    -1,
+      -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,   425,
+      -1,    -1,   428,   429,   430,   431,   432,    -1,   434,   435,
+      -1,   437,   438,   439,    -1,    -1,   442,    -1,   444,    -1,
+     446,   447,    -1,   449,   450,    -1,    -1,    -1,   454,   455,
+     456,   457,   458,   459,   460,   461,   462,   463,    -1,   465,
+     466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,
+      -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,
+     486,    -1,   488,   489,   490,   491,   492,   493,    -1,    -1,
+      -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,
+     506,    -1,    -1,   509,   510,   511,    -1,    -1,   514,   515,
+      -1,   517,   518,   519,   520,   521,   522,    -1,    -1,   525,
+     526,   527,   528,    -1,   530,   531,    -1,   533,    -1,   535,
+     536,   537,   538,    -1,    -1,   541,   542,    -1,   544,   545,
+     546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,
+      -1,    -1,    -1,   559,   560,   561,   562,    -1,   564,   565,
+      -1,   567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,
+      -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,
+      -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,
+      -1,   597,   598,   599,   600,   601,   602,    -1,    -1,    -1,
+      -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,
+      -1,   617,    -1,    -1,    -1,    -1,     5,    -1,     7,     8,
+       9,    10,    11,   629,    -1,    14,    -1,    -1,    -1,    18,
+      -1,   637,    21,    -1,    23,    24,    25,    26,    27,    28,
+      29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
+      39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,
+      49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,
+      59,    -1,    61,    62,    -1,    64,    65,    66,    67,    68,
+      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
+      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
+      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
+      99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,
+     109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,
+      -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,
+     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
+     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
+     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
+     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
+     169,   170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,
+     179,   180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,
+      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
+     199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,
+     209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
+      -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,   228,
+     229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,
+     239,    -1,   241,    -1,   243,    -1,   245,   246,    -1,   248,
+     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
+      -1,    -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,
+      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
+     279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,
+     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,    -1,   301,   302,   303,    -1,   305,   306,   307,   308,
+      -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
+     319,   320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,
+     329,    -1,   331,   332,   333,   334,   335,   336,   337,   338,
+     339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,   348,
+     349,   350,    -1,    -1,    -1,   354,   355,    -1,    -1,    -1,
+      -1,   360,   361,   362,    -1,   364,   365,   366,   367,    -1,
+     369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     379,   380,   381,    -1,    -1,   384,    -1,   386,   387,   388,
+     389,   390,   391,   392,   393,   394,   395,   396,   397,    -1,
+      -1,   400,   401,   402,    -1,   404,    -1,   406,   407,   408,
+     409,   410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,
+      -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,   428,
+     429,   430,   431,   432,    -1,   434,   435,    -1,   437,   438,
+     439,    -1,    -1,   442,    -1,   444,    -1,   446,   447,    -1,
+     449,   450,    -1,    -1,    -1,   454,   455,   456,   457,   458,
+     459,   460,   461,   462,   463,    -1,   465,   466,    -1,    -1,
+      -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,    -1,
+      -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,   488,
+     489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
+      -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,
+     509,   510,   511,    -1,    -1,   514,   515,    -1,   517,   518,
+     519,   520,   521,   522,    -1,    -1,   525,   526,   527,   528,
+      -1,   530,   531,    -1,   533,    -1,   535,   536,   537,   538,
+      -1,    -1,   541,   542,    -1,   544,   545,   546,   547,    -1,
+      -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,    -1,
+     559,   560,   561,   562,    -1,   564,   565,    -1,   567,   568,
+      -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,    -1,
+     579,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,    -1,
+      -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,   598,
+     599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,    -1,
+     609,   610,    -1,   612,   613,   614,    -1,    -1,   617,    -1,
+      -1,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
+      14,    -1,    -1,    -1,    18,    -1,    -1,    21,   637,    23,
       24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
       44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
@@ -16186,36 +13824,529 @@ static const yytype_int16 yycheck[] =
       -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
       -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
      324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,   402,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
+     334,   335,   336,   337,   338,   339,   340,    -1,    -1,   343,
+     344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,
+     354,   355,    -1,    -1,    -1,    -1,   360,   361,   362,    -1,
+     364,   365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,    -1,
+     384,    -1,   386,   387,   388,   389,   390,   391,   392,   393,
+     394,   395,   396,   397,    -1,    -1,   400,   401,   402,    -1,
+     404,    -1,   406,   407,   408,   409,   410,    -1,   412,   413,
+     414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,
+     424,   425,    -1,    -1,   428,   429,   430,   431,   432,    -1,
+     434,   435,    -1,   437,   438,   439,    -1,    -1,   442,    -1,
+     444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,    -1,
+     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
+      -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,   473,
+      -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,
+     484,   485,   486,    -1,   488,   489,   490,   491,   492,   493,
+      -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,
+      -1,    -1,   506,    -1,    -1,   509,   510,   511,    -1,    -1,
+     514,   515,    -1,   517,   518,   519,   520,   521,   522,    -1,
+      -1,   525,   526,   527,   528,    -1,   530,   531,    -1,   533,
+      -1,   535,   536,   537,   538,    -1,    -1,   541,   542,    -1,
+     544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,
+     554,   555,    -1,    -1,    -1,   559,   560,   561,   562,    -1,
+     564,   565,    -1,   567,   568,    -1,   570,   571,    -1,    -1,
+     574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,
+      -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,
+      -1,    -1,    -1,   597,   598,   599,   600,   601,   602,    -1,
+      -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,
+     614,    -1,    -1,   617,    -1,    -1,    -1,    -1,    -1,     5,
+     624,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
+      -1,    -1,    18,   637,    -1,    21,    -1,    23,    24,    25,
+      26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
+      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,
+      46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,
+      56,    -1,    58,    59,    -1,    61,    62,    -1,    64,    65,
+      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
+      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
+      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
+      96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
+      -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,
+      -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,
+      -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,
+      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
+      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
+     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
+     166,   167,   168,   169,   170,   171,    -1,    -1,   174,   175,
+     176,    -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,
+      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
+      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
+      -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,
+     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,
+      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
+      -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,
+     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
+     256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,
+      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
+     276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,    -1,   301,   302,   303,    -1,   305,
+     306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,
+     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
+      -1,   327,    -1,   329,    -1,   331,   332,   333,   334,   335,
+     336,   337,   338,   339,   340,    -1,    -1,   343,   344,    -1,
+      -1,   347,   348,   349,   350,    -1,    -1,    -1,   354,   355,
+      -1,    -1,    -1,    -1,   360,   361,   362,    -1,   364,   365,
+     366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   379,   380,   381,    -1,    -1,   384,    -1,
+     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
+     396,   397,    -1,    -1,   400,   401,   402,    -1,   404,    -1,
+     406,   407,   408,   409,   410,    -1,   412,   413,   414,    -1,
+      -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,   425,
+      -1,    -1,   428,   429,   430,   431,   432,    -1,   434,   435,
+      -1,   437,   438,   439,    -1,    -1,   442,    -1,   444,    -1,
+     446,   447,    -1,   449,   450,    -1,    -1,    -1,   454,   455,
+     456,   457,   458,   459,   460,   461,   462,   463,    -1,   465,
+     466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,
+      -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,
+     486,    -1,   488,   489,   490,   491,   492,   493,    -1,    -1,
+      -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,
+     506,    -1,    -1,   509,   510,   511,    -1,    -1,   514,   515,
+      -1,   517,   518,   519,   520,   521,   522,    -1,    -1,   525,
+     526,   527,   528,    -1,   530,   531,    -1,   533,    -1,   535,
+     536,   537,   538,    -1,    -1,   541,   542,    -1,   544,   545,
+     546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,
+      -1,    -1,    -1,   559,   560,   561,   562,    -1,   564,   565,
+      -1,   567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,
+      -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,
+      -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,
+      -1,   597,   598,   599,   600,   601,   602,    -1,    -1,    -1,
+      -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,
+      -1,   617,    -1,    -1,    -1,    -1,     5,    -1,     7,     8,
+       9,    10,    11,   629,    -1,    14,    -1,    -1,    -1,    18,
+      -1,   637,    21,    -1,    23,    24,    25,    26,    27,    28,
+      29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
+      39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,
+      49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,
+      59,    -1,    61,    62,    -1,    64,    65,    66,    67,    68,
+      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
+      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
+      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
+      99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,
+     109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,
+      -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,
+     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
+     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
+     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
+     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
+     169,   170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,
+     179,   180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,
+      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
+     199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,
+     209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
+      -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,   228,
+     229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,
+     239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
+     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
+      -1,    -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,
+      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
+     279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,
+     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,    -1,   301,   302,   303,    -1,   305,   306,   307,   308,
+      -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
+     319,   320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,
+     329,    -1,   331,   332,   333,   334,   335,   336,   337,   338,
+     339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,   348,
+     349,   350,    -1,    -1,    -1,   354,   355,    -1,    -1,    -1,
+      -1,   360,   361,   362,    -1,   364,   365,   366,   367,    -1,
+     369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     379,   380,   381,    -1,    -1,   384,    -1,   386,   387,   388,
+     389,   390,   391,   392,   393,   394,   395,   396,   397,    -1,
+      -1,   400,   401,   402,    -1,   404,    -1,   406,   407,   408,
+     409,   410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,
+      -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,   428,
+     429,   430,   431,   432,    -1,   434,   435,    -1,   437,   438,
+     439,    -1,    -1,   442,    -1,   444,    -1,   446,   447,    -1,
+     449,   450,    -1,    -1,    -1,   454,   455,   456,   457,   458,
+     459,   460,   461,   462,   463,    -1,   465,   466,    -1,    -1,
+      -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,    -1,
+      -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,   488,
+     489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
+      -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,
+     509,   510,   511,    -1,    -1,   514,   515,    -1,   517,   518,
+     519,   520,   521,   522,    -1,    -1,   525,   526,   527,   528,
+      -1,   530,   531,    -1,   533,    -1,   535,   536,   537,   538,
+      -1,    -1,   541,   542,    -1,   544,   545,   546,   547,    -1,
+      -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,    -1,
+     559,   560,   561,   562,    -1,   564,   565,    -1,   567,   568,
+      -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,    -1,
+     579,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,    -1,
+      -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,   598,
+     599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,    -1,
+     609,   610,    -1,   612,   613,   614,    -1,    -1,   617,    -1,
+      -1,    -1,    -1,     5,    -1,     7,     8,     9,    10,    11,
+      -1,    -1,    14,    -1,    -1,    -1,    18,   636,   637,    21,
+      -1,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
+      -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
+      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
+      52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,
+      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
+      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
+      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
+      -1,    93,    94,    95,    96,    97,    -1,    99,    -1,    -1,
+     102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,
+      -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,
+      -1,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,
+      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
+      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
+      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
+      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
+      -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,
+     182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,
+      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
+     202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,
+     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
+     222,   223,   224,    -1,    -1,   227,   228,   229,    -1,   231,
+      -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,
+      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
+      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
+      -1,    -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,
+     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
+     302,   303,    -1,   305,   306,   307,   308,    -1,   310,   311,
+      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
+      -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,
+     332,   333,   334,   335,   336,   337,   338,   339,   340,    -1,
+      -1,   343,   344,    -1,    -1,   347,   348,   349,   350,    -1,
+      -1,    -1,   354,   355,    -1,    -1,    -1,    -1,   360,   361,
+     362,    -1,   364,   365,   366,   367,    -1,   369,   370,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,
+      -1,    -1,   384,    -1,   386,   387,   388,   389,   390,   391,
+     392,   393,   394,   395,   396,   397,    -1,    -1,   400,   401,
+     402,    -1,   404,    -1,   406,   407,   408,   409,   410,    -1,
+     412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,
+     422,   423,   424,   425,    -1,    -1,   428,   429,   430,   431,
+     432,    -1,   434,   435,    -1,   437,   438,   439,    -1,    -1,
+     442,    -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,
+      -1,    -1,   454,   455,   456,   457,   458,   459,   460,   461,
+     462,   463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,
+     472,   473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,
+      -1,   483,   484,   485,   486,    -1,   488,   489,   490,   491,
+     492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,
+      -1,   503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,
+      -1,    -1,   514,   515,    -1,   517,   518,   519,   520,   521,
+     522,    -1,    -1,   525,   526,   527,   528,    -1,   530,   531,
+      -1,   533,    -1,   535,   536,   537,   538,    -1,    -1,   541,
+     542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,
+      -1,   553,   554,   555,    -1,    -1,    -1,   559,   560,   561,
+     562,    -1,   564,   565,    -1,   567,   568,    -1,   570,   571,
+      -1,    -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,
+     582,   583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,
+      -1,   593,    -1,    -1,    -1,   597,   598,   599,   600,   601,
+     602,    -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,
+     612,   613,   614,    -1,    -1,   617,    -1,    -1,     5,    -1,
+       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
+      -1,    18,    -1,    -1,    21,   637,    23,    24,    25,    26,
+      27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,
+      -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,
+      -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,
+      -1,    58,    59,    -1,    61,    62,    -1,    64,    65,    66,
+      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
+      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
+      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    96,
+      97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,
+      -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,
+      -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,
+      -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
+     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
+     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
+      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
+     167,   168,   169,   170,   171,    -1,    -1,   174,   175,   176,
+      -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,
+     187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,
+     197,   198,   199,   200,   201,   202,    -1,   204,    -1,    -1,
+      -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,
+     217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,
+     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
+      -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,
+      -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,
+     257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,    -1,
+      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
+      -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,    -1,   301,   302,   303,    -1,   305,   306,
+     307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,
+     317,   318,   319,   320,   321,    -1,    -1,   324,   325,    -1,
+     327,    -1,   329,    -1,   331,   332,   333,   334,   335,   336,
+     337,   338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,
+     347,   348,   349,   350,    -1,    -1,    -1,   354,   355,    -1,
+      -1,    -1,    -1,   360,   361,   362,    -1,   364,   365,   366,
+     367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   379,   380,   381,    -1,    -1,   384,    -1,   386,
+     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
+     397,    -1,    -1,   400,   401,   402,    -1,   404,    -1,   406,
+     407,   408,   409,   410,    -1,   412,   413,   414,    -1,    -1,
+     417,    -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,
+      -1,   428,   429,   430,   431,   432,    -1,   434,   435,    -1,
+     437,   438,   439,    -1,    -1,   442,    -1,   444,    -1,   446,
+     447,    -1,   449,   450,    -1,    -1,    -1,   454,   455,   456,
+     457,   458,   459,   460,   461,   462,   463,    -1,   465,   466,
+      -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,
+     477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,
+      -1,   488,   489,   490,   491,   492,   493,    -1,    -1,    -1,
+      -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,
+      -1,    -1,   509,   510,   511,    -1,    -1,   514,   515,    -1,
+     517,   518,   519,   520,   521,   522,    -1,    -1,   525,   526,
+     527,   528,    -1,   530,   531,    -1,   533,    -1,   535,   536,
+     537,   538,    -1,    -1,   541,   542,    -1,   544,   545,   546,
+     547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,
+      -1,    -1,   559,   560,   561,   562,    -1,   564,   565,    -1,
+     567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,
+     577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,    -1,
+      -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,
+     597,   598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,
+      -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,    -1,
+     617,    -1,    -1,     5,    -1,     7,     8,     9,    10,    11,
+      -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,
+     637,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
+      -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
+      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
+      52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,
+      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
+      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
+      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
+      -1,    93,    94,    95,    96,    97,    -1,    99,    -1,    -1,
+     102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,
+      -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,
+      -1,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,
+      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
+      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
+      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
+      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
+      -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,
+     182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,
+      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
+     202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,
+     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
+     222,   223,   224,    -1,    -1,   227,   228,   229,    -1,   231,
+      -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,
+      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
+      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
+      -1,    -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,
+     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
+     302,   303,    -1,   305,   306,   307,   308,    -1,   310,   311,
+      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
+      -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,
+     332,   333,   334,   335,   336,   337,   338,   339,   340,    -1,
+      -1,   343,   344,    -1,    -1,   347,   348,   349,   350,    -1,
+      -1,    -1,   354,   355,    -1,    -1,    -1,    -1,   360,   361,
+     362,    -1,   364,   365,   366,   367,    -1,   369,   370,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,
+      -1,    -1,   384,    -1,   386,   387,   388,   389,   390,   391,
+     392,   393,   394,   395,   396,   397,    -1,    -1,   400,   401,
+     402,    -1,   404,    -1,   406,   407,   408,   409,   410,    -1,
+     412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,
+     422,   423,   424,   425,    -1,    -1,   428,   429,   430,   431,
+     432,    -1,   434,   435,    -1,   437,   438,   439,    -1,    -1,
+     442,    -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,
+      -1,    -1,   454,   455,   456,   457,   458,   459,   460,   461,
+     462,   463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,
+     472,   473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,
+      -1,   483,   484,   485,   486,    -1,   488,   489,   490,   491,
+     492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,
+      -1,   503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,
+      -1,    -1,   514,   515,    -1,   517,   518,   519,   520,   521,
+     522,    -1,    -1,   525,   526,   527,   528,    -1,   530,   531,
+      -1,   533,    -1,   535,   536,   537,   538,    -1,    -1,   541,
+     542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,
+      -1,   553,   554,   555,    -1,    -1,    -1,   559,   560,   561,
+     562,    -1,   564,   565,    -1,   567,   568,    -1,   570,   571,
+      -1,    -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,
+     582,   583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,
+      -1,   593,    -1,    -1,    -1,   597,   598,   599,   600,   601,
+     602,    -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,
+     612,   613,   614,    -1,    -1,   617,    -1,    -1,     5,    -1,
+       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
+      -1,    18,    -1,    -1,    21,   637,    23,    24,    25,    26,
+      27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,
+      -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,
+      -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,
+      -1,    58,    59,    -1,    61,    62,    -1,    64,    65,    66,
+      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
+      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
+      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    96,
+      97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,
+      -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,
+      -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,
+      -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
+     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
+     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
+      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
+     167,   168,   169,   170,   171,    -1,    -1,   174,   175,   176,
+      -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,
+     187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,
+     197,   198,   199,   200,   201,   202,    -1,   204,    -1,    -1,
+      -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,
+     217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,
+     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
+      -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,
+      -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,
+     257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,    -1,
+      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
+      -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,    -1,   301,   302,   303,    -1,   305,   306,
+     307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,
+     317,   318,   319,   320,   321,    -1,    -1,   324,   325,    -1,
+     327,    -1,   329,    -1,   331,   332,   333,   334,   335,   336,
+     337,   338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,
+     347,   348,   349,   350,    -1,    -1,    -1,   354,   355,    -1,
+      -1,    -1,    -1,   360,   361,   362,    -1,   364,   365,   366,
+     367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   379,   380,   381,    -1,    -1,   384,    -1,   386,
+     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
+     397,    -1,    -1,   400,   401,   402,    -1,   404,    -1,   406,
+     407,   408,   409,   410,    -1,   412,   413,   414,    -1,    -1,
+     417,    -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,
+      -1,   428,   429,   430,   431,   432,    -1,   434,   435,    -1,
+     437,   438,   439,    -1,    -1,   442,    -1,   444,    -1,   446,
+     447,    -1,   449,   450,    -1,    -1,    -1,   454,   455,   456,
+     457,   458,   459,   460,   461,   462,   463,    -1,   465,   466,
+      -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,
+     477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,
+      -1,   488,   489,   490,   491,   492,   493,    -1,    -1,    -1,
+      -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,
+      -1,    -1,   509,   510,   511,    -1,    -1,   514,   515,    -1,
+     517,   518,   519,   520,   521,   522,    -1,    -1,   525,   526,
+     527,   528,    -1,   530,   531,    -1,   533,    -1,   535,   536,
+     537,   538,    -1,    -1,   541,   542,    -1,   544,   545,   546,
+     547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,
+      -1,    -1,   559,   560,   561,   562,    -1,   564,   565,    -1,
+     567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,
+     577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,    -1,
+      -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,
+     597,   598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,
+      -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,    -1,
+     617,    -1,    -1,     5,    -1,     7,     8,     9,    10,    11,
+      -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,
+     637,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
+      -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
+      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
+      52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,
+      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
+      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
+      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
+      -1,    93,    94,    95,    96,    97,    -1,    99,    -1,    -1,
+     102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,
+      -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,
+      -1,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,
+      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
+      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
+      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
+      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
+      -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,
+     182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,
+      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
+     202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,
+     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
+     222,   223,   224,    -1,    -1,   227,   228,   229,    -1,   231,
+      -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,
+      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
+      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
+      -1,    -1,   264,   265,   266,    -1,    -1,    -1,    -1,   271,
+     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
+     302,   303,    -1,   305,   306,   307,   308,    -1,   310,   311,
+      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
+      -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,
+     332,   333,   334,   335,   336,   337,   338,   339,   340,    -1,
+      -1,   343,   344,    -1,    -1,   347,   348,   349,   350,    -1,
+      -1,    -1,   354,   355,    -1,    -1,    -1,    -1,   360,   361,
+     362,    -1,   364,   365,   366,   367,    -1,   369,   370,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,
+      -1,    -1,   384,    -1,   386,   387,   388,   389,   390,   391,
+     392,   393,   394,   395,   396,   397,    -1,    -1,   400,   401,
+     402,    -1,   404,    -1,   406,   407,   408,   409,   410,    -1,
+     412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,
+     422,   423,   424,   425,    -1,    -1,   428,   429,   430,   431,
+     432,    -1,   434,   435,    -1,   437,   438,   439,    -1,    -1,
+     442,    -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,
+      -1,    -1,   454,   455,   456,   457,   458,   459,   460,   461,
+     462,   463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,
+     472,   473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,
+      -1,   483,   484,   485,   486,    -1,   488,   489,   490,   491,
+     492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,
+      -1,   503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,
+      -1,    -1,   514,   515,    -1,   517,   518,   519,   520,   521,
+     522,    -1,    -1,   525,   526,   527,   528,    -1,   530,   531,
+      -1,   533,    -1,   535,   536,   537,   538,    -1,   540,   541,
+     542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,
+      -1,   553,   554,   555,    -1,    -1,    -1,   559,   560,   561,
+     562,    -1,   564,   565,    -1,   567,   568,    -1,   570,   571,
+      -1,    -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,
+     582,   583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,
+      -1,   593,    -1,    -1,    -1,   597,   598,   599,   600,   601,
+     602,    -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,
+     612,   613,   614,    -1,    -1,   617,    -1,     5,    -1,     7,
+       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
+      18,    -1,    -1,    21,   636,    23,    24,    25,    26,    27,
+      28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
+      -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,
+      48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,
+      58,    59,    -1,    61,    62,    -1,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
+      88,    -1,    90,    91,    -1,    93,    94,    95,    96,    97,
+      -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,
+      -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,
+     118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,
+      -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
+     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
+     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
+     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
+     168,   169,   170,   171,    -1,    -1,   174,   175,   176,    -1,
+      -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,   187,
+      -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,
+     198,   199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,
+     208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
+      -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,
+     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,
+     238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,
+     248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
+     258,    -1,    -1,   261,    -1,    -1,   264,   265,   266,    -1,
+      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
+     278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,    -1,   301,   302,   303,    -1,   305,   306,   307,
+     308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
+     318,   319,   320,   321,    -1,    -1,   324,   325,    -1,   327,
+      -1,   329,    -1,   331,   332,   333,   334,   335,   336,   337,
+     338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,
+     348,   349,   350,    -1,    -1,    -1,   354,   355,    -1,    -1,
+      -1,    -1,   360,   361,   362,    -1,   364,   365,   366,   367,
+      -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   379,   380,   381,    -1,    -1,   384,    -1,   386,   387,
+     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
+      -1,    -1,   400,   401,   402,    -1,   404,    -1,   406,   407,
+     408,   409,   410,    -1,   412,   413,   414,    -1,    -1,   417,
+      -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,
+     428,   429,   430,   431,   432,    -1,   434,   435,    -1,   437,
+     438,   439,    -1,    -1,   442,    -1,   444,    -1,   446,   447,
+      -1,   449,   450,    -1,    -1,    -1,   454,   455,   456,   457,
+     458,   459,   460,   461,   462,   463,    -1,   465,   466,    -1,
+      -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,
+      -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,
+     488,   489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
+      -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,
+      -1,   509,   510,   511,    -1,    -1,   514,   515,    -1,   517,
+     518,   519,   520,   521,   522,    -1,    -1,   525,   526,   527,
+     528,    -1,   530,   531,    -1,   533,    -1,   535,   536,   537,
+     538,    -1,   540,   541,   542,    -1,   544,   545,   546,   547,
+      -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,
+      -1,   559,   560,   561,   562,    -1,   564,   565,    -1,   567,
+     568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,
+      -1,   579,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,
+      -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,
+     598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,
+      -1,   609,   610,    -1,   612,   613,   614,    -1,    -1,   617,
+      -1,     5,    -1,     7,     8,     9,    10,    11,    -1,    -1,
+      14,    -1,    -1,    -1,    18,    -1,    -1,    21,   636,    23,
       24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
       44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
@@ -16240,103 +14371,287 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
       -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
       -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,   539,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
+     264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,
      274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
      294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
       -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
       -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
      324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
+     334,   335,   336,   337,   338,   339,   340,    -1,    -1,   343,
+     344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,
+     354,   355,    -1,    -1,    -1,    -1,   360,   361,   362,    -1,
+     364,   365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,    -1,
+     384,    -1,   386,   387,   388,   389,   390,   391,   392,   393,
+     394,   395,   396,   397,    -1,    -1,   400,   401,   402,    -1,
+     404,    -1,   406,   407,   408,   409,   410,    -1,   412,   413,
+     414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,
+     424,   425,    -1,    -1,   428,   429,   430,   431,   432,    -1,
+     434,   435,    -1,   437,   438,   439,    -1,    -1,   442,    -1,
+     444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,    -1,
+     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
+      -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,   473,
+      -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,
+     484,   485,   486,    -1,   488,   489,   490,   491,   492,   493,
+      -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,
+      -1,    -1,   506,    -1,    -1,   509,   510,   511,    -1,    -1,
+     514,   515,    -1,   517,   518,   519,   520,   521,   522,    -1,
+      -1,   525,   526,   527,   528,    -1,   530,   531,    -1,   533,
+      -1,   535,   536,   537,   538,    -1,   540,   541,   542,    -1,
+     544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,
+     554,   555,    -1,    -1,    -1,   559,   560,   561,   562,    -1,
+     564,   565,    -1,   567,   568,    -1,   570,   571,    -1,    -1,
+     574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,
+      -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,
+      -1,    -1,    -1,   597,   598,   599,   600,   601,   602,    -1,
+      -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,
+     614,    -1,    -1,   617,    -1,     5,    -1,     7,     8,     9,
+      10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,
+      -1,    -1,   636,    23,    24,    25,    26,    27,    28,    -1,
+      -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,
+      -1,    -1,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
+      -1,    -1,    52,    53,    -1,    55,    56,    -1,    58,    -1,
+      -1,    -1,    -1,    -1,    64,    65,    66,    67,    68,    69,
+      70,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    81,    -1,    83,    -1,    85,    86,    87,    88,    -1,
+      90,    91,    -1,    93,    94,    95,    -1,    97,    -1,    99,
+      -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,
+      -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,
+      -1,    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,   129,
+      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
+     140,    -1,    -1,    -1,    -1,    -1,    -1,   147,   148,   149,
+      -1,    -1,    -1,   153,    -1,    -1,   156,    -1,   158,   159,
+     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
+      -1,    -1,    -1,    -1,   174,   175,   176,    -1,    -1,   179,
+     180,   181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,
+      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
+     200,   201,   202,    -1,   204,    -1,    -1,    -1,    -1,   209,
+     210,    -1,    -1,    -1,    -1,    -1,    -1,   217,    -1,    -1,
+      -1,   221,   222,   223,   224,   225,    -1,   227,   228,   229,
+      -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,    -1,
+      -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
+     250,    -1,    -1,   253,    -1,    -1,    -1,   257,   258,    -1,
+      -1,   261,   262,    -1,   264,   265,    -1,    -1,    -1,    -1,
+      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
+      -1,    -1,    -1,    -1,   284,    -1,    -1,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+      -1,   301,   302,   303,    -1,   305,   306,   307,   308,    -1,
+     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
+     320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,
+      -1,   331,   332,   333,   334,   335,   336,   337,   338,   339,
+     340,    -1,    -1,   343,   344,    -1,    -1,   347,   348,   349,
+     350,    -1,    -1,    -1,    -1,   355,    -1,    -1,    -1,    -1,
+     360,   361,   362,    -1,   364,   365,   366,   367,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     380,   381,    -1,    -1,    -1,    -1,   386,   387,   388,    -1,
+     390,   391,   392,   393,   394,   395,   396,    -1,    -1,    -1,
+      -1,   401,   402,    -1,   404,    -1,   406,   407,   408,   409,
+     410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,
+      -1,   421,   422,   423,   424,   425,    -1,    -1,   428,   429,
+     430,   431,   432,    -1,   434,    -1,    -1,   437,    -1,   439,
+     440,    -1,   442,    -1,    -1,    -1,   446,    -1,    -1,   449,
+     450,   451,    -1,    -1,    -1,   455,   456,   457,   458,   459,
+     460,    -1,   462,   463,    -1,   465,    -1,    -1,    -1,    -1,
+     470,   471,   472,    -1,    -1,    -1,    -1,   477,    -1,    -1,
+      -1,   481,    -1,    -1,   484,    -1,   486,    -1,   488,    -1,
+     490,    -1,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,
+     500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,
+      -1,   511,    -1,    -1,    -1,   515,    -1,   517,   518,   519,
+     520,   521,   522,    -1,    -1,   525,   526,   527,   528,    -1,
+     530,   531,    -1,   533,    -1,   535,   536,   537,   538,    -1,
+      -1,   541,   542,    -1,   544,   545,   546,   547,    -1,    -1,
+      -1,    -1,    -1,   553,   554,   555,    -1,    -1,    -1,    -1,
+     560,   561,   562,    -1,   564,   565,    -1,   567,   568,    -1,
+      -1,    -1,    -1,    -1,   574,    -1,    -1,   577,    -1,    -1,
+      -1,   581,   582,   583,    -1,    -1,    -1,    -1,    -1,    -1,
+     590,    -1,    -1,   593,    -1,    -1,    -1,   597,   598,   599,
+     600,   601,   602,    -1,    -1,   605,    -1,    -1,    -1,   609,
+      -1,    -1,   612,    -1,   614,    -1,     5,   617,     7,     8,
+       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
+      -1,   631,    21,    -1,    23,    24,    25,    26,    27,    28,
+      29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
+      39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,
+      49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,
+      59,    -1,    61,    62,    -1,    64,    65,    66,    67,    68,
+      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
+      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
+      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
+      99,    -1,    -1,   102,    -1,    -1,   105,    -1,   107,    -1,
+     109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,
+      -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,
+     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
+     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
+     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
+     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
+     169,   170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,
+     179,   180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,
+      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
+     199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,
+     209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
+      -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,   228,
+     229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,
+     239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
+     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
+      -1,    -1,   261,    -1,    -1,   264,   265,   266,    -1,    -1,
+      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
+     279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,
+     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,    -1,   301,   302,   303,    -1,   305,   306,   307,   308,
+      -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
+     319,   320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,
+     329,    -1,   331,   332,   333,   334,   335,   336,   337,   338,
+     339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,   348,
+     349,   350,    -1,    -1,    -1,   354,   355,    -1,    -1,    -1,
+      -1,   360,   361,   362,    -1,   364,   365,   366,   367,    -1,
+     369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     379,   380,   381,    -1,    -1,   384,    -1,   386,   387,   388,
+     389,   390,   391,   392,   393,   394,   395,   396,   397,    -1,
+      -1,   400,   401,   402,    -1,   404,    -1,   406,   407,   408,
+     409,   410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,
+      -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,   428,
+     429,   430,   431,   432,    -1,   434,   435,    -1,   437,   438,
+     439,    -1,    -1,   442,    -1,   444,    -1,   446,   447,    -1,
+     449,   450,    -1,    -1,    -1,   454,   455,   456,   457,   458,
+     459,   460,   461,   462,   463,    -1,   465,   466,    -1,    -1,
+      -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,    -1,
+      -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,   488,
+     489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
+      -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,
+     509,   510,   511,    -1,    -1,   514,   515,    -1,   517,   518,
+     519,   520,   521,   522,    -1,    -1,   525,   526,   527,   528,
+      -1,   530,   531,    -1,   533,    -1,   535,   536,   537,   538,
+      -1,   540,   541,   542,    -1,   544,   545,   546,   547,    -1,
+      -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,    -1,
+     559,   560,   561,   562,    -1,   564,   565,    -1,   567,   568,
+      -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,    -1,
+     579,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,    -1,
+      -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,   598,
+     599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,    -1,
+     609,   610,    -1,   612,   613,   614,    -1,    -1,   617,     5,
+      -1,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
+     629,    -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,
+      26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
+      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,
+      46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,
+      56,    -1,    58,    59,    -1,    61,    62,    -1,    64,    65,
+      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
+      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
+      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
+      96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
+      -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,
+      -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,
+      -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,
+      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
+      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
+     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
+     166,   167,   168,   169,   170,   171,    -1,    -1,   174,   175,
+     176,    -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,
+      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
+      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
+      -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,
+     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,
+      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
+      -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,
+     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
+     256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,
+      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
+     276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,    -1,   301,   302,   303,    -1,   305,
+     306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,
+     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
+      -1,   327,    -1,   329,    -1,   331,   332,   333,   334,   335,
+     336,   337,   338,   339,   340,    -1,    -1,   343,   344,    -1,
+      -1,   347,   348,   349,   350,    -1,    -1,    -1,   354,   355,
+      -1,    -1,    -1,    -1,   360,   361,   362,    -1,   364,   365,
+     366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   379,   380,   381,    -1,    -1,   384,    -1,
+     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
+     396,   397,    -1,    -1,   400,   401,   402,    -1,   404,    -1,
+     406,   407,   408,   409,   410,    -1,   412,   413,   414,    -1,
+      -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,   425,
+      -1,    -1,   428,   429,   430,   431,   432,    -1,   434,   435,
+      -1,   437,   438,   439,    -1,    -1,   442,    -1,   444,    -1,
+     446,   447,    -1,   449,   450,    -1,    -1,    -1,   454,   455,
+     456,   457,   458,   459,   460,   461,   462,   463,    -1,   465,
+     466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,
+      -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,
+     486,    -1,   488,   489,   490,   491,   492,   493,    -1,    -1,
+      -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,
+     506,    -1,    -1,   509,   510,   511,    -1,    -1,   514,   515,
+      -1,   517,   518,   519,   520,   521,   522,    -1,    -1,   525,
+     526,   527,   528,    -1,   530,   531,    -1,   533,    -1,   535,
+     536,   537,   538,    -1,    -1,   541,   542,    -1,   544,   545,
+     546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,
+      -1,    -1,    -1,   559,   560,   561,   562,    -1,   564,   565,
+      -1,   567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,
+      -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,
+      -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,
+      -1,   597,   598,   599,   600,   601,   602,    -1,    -1,    -1,
+      -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,
+       5,   617,     7,     8,     9,    10,    11,    -1,   624,    14,
+      -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,
+      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,
+      35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,
+      -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,
+      55,    56,    -1,    58,    59,    -1,    61,    62,    -1,    64,
+      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
+      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
+      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
+      95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,
+     105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,
+     115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,
+      -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,
+     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
+      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
+     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
+      -1,   166,   167,   168,   169,   170,   171,    -1,    -1,   174,
+     175,   176,    -1,    -1,   179,   180,    -1,   182,   183,   184,
+      -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
+     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
+      -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,
+      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
+      -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
+      -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,
+     245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,
+      -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,
+     265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
+      -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,    -1,   301,   302,   303,    -1,
+     305,   306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,
+      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
+     325,    -1,   327,    -1,   329,    -1,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,    -1,    -1,   343,   344,
+      -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,   354,
+     355,    -1,    -1,    -1,    -1,   360,   361,   362,    -1,   364,
+     365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   379,   380,   381,    -1,    -1,   384,
+      -1,   386,   387,   388,   389,   390,   391,   392,   393,   394,
+     395,   396,   397,    -1,    -1,   400,   401,   402,    -1,   404,
+      -1,   406,   407,   408,   409,   410,    -1,   412,   413,   414,
+      -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,
+     425,    -1,    -1,   428,   429,   430,   431,   432,    -1,   434,
+     435,    -1,   437,   438,   439,    -1,    -1,   442,    -1,   444,
+      -1,   446,   447,    -1,   449,   450,    -1,    -1,    -1,   454,
+     455,   456,   457,   458,   459,   460,   461,   462,   463,    -1,
+     465,   466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,
+      -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,
+     485,   486,    -1,   488,   489,   490,   491,   492,   493,    -1,
+      -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,
+      -1,   506,    -1,    -1,   509,   510,   511,    -1,    -1,   514,
+     515,    -1,   517,   518,   519,   520,   521,   522,    -1,    -1,
+     525,   526,   527,   528,    -1,   530,   531,    -1,   533,    -1,
+     535,   536,   537,   538,    -1,    -1,   541,   542,    -1,   544,
+     545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,
+     555,    -1,    -1,    -1,   559,   560,   561,   562,    -1,   564,
+     565,    -1,   567,   568,    -1,   570,   571,    -1,    -1,   574,
+      -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,
+      -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,
+      -1,    -1,   597,   598,   599,   600,   601,   602,    -1,    -1,
+      -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,
+      -1,     5,   617,     7,     8,     9,    10,    11,    -1,   624,
       14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
       24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
@@ -16369,523 +14684,1807 @@ static const yytype_int16 yycheck[] =
       -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
       -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
      324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
+     334,   335,   336,   337,   338,   339,   340,    -1,    -1,   343,
+     344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,
+     354,   355,    -1,    -1,    -1,    -1,   360,   361,   362,    -1,
+     364,   365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,    -1,
+     384,    -1,   386,   387,   388,   389,   390,   391,   392,   393,
+     394,   395,   396,   397,    -1,    -1,   400,   401,   402,    -1,
+     404,    -1,   406,   407,   408,   409,   410,    -1,   412,   413,
+     414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,
+     424,   425,    -1,    -1,   428,   429,   430,   431,   432,    -1,
+     434,   435,    -1,   437,   438,   439,    -1,    -1,   442,    -1,
+     444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,    -1,
+     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
+      -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,   473,
+      -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,
+     484,   485,   486,    -1,   488,   489,   490,   491,   492,   493,
+      -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,
+      -1,    -1,   506,    -1,    -1,   509,   510,   511,    -1,    -1,
+     514,   515,    -1,   517,   518,   519,   520,   521,   522,    -1,
+      -1,   525,   526,   527,   528,    -1,   530,   531,    -1,   533,
+      -1,   535,   536,   537,   538,    -1,    -1,   541,   542,    -1,
+     544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,
+     554,   555,    -1,    -1,    -1,   559,   560,   561,   562,    -1,
+     564,   565,    -1,   567,   568,    -1,   570,   571,    -1,    -1,
+     574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,
+      -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,
+      -1,    -1,    -1,   597,   598,   599,   600,   601,   602,    -1,
+      -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,
+     614,    -1,     5,   617,     7,     8,     9,    10,    11,    -1,
+     624,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
+      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
+      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
+      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
+      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
+      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
+      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
+      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
+      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
+      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
+     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
+     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
+      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
+      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
+     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
+     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
+      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
+     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
+     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
+      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
+      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
+     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
+     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
+     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
+     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
+      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
+      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
+     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
+      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
+      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
+     333,   334,   335,   336,   337,   338,   339,   340,    -1,    -1,
+     343,   344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,
+      -1,   354,   355,    -1,    -1,    -1,    -1,   360,   361,   362,
+      -1,   364,   365,   366,   367,    -1,   369,   370,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,
+      -1,   384,    -1,   386,   387,   388,   389,   390,   391,   392,
+     393,   394,   395,   396,   397,    -1,    -1,   400,   401,   402,
+      -1,   404,    -1,   406,   407,   408,   409,   410,    -1,   412,
+     413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,
+     423,   424,   425,    -1,    -1,   428,   429,   430,   431,   432,
+      -1,   434,   435,    -1,   437,   438,   439,    -1,    -1,   442,
+      -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,
+      -1,   454,   455,   456,   457,   458,   459,   460,   461,   462,
+     463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,
+     473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,
+     483,   484,   485,   486,    -1,   488,   489,   490,   491,   492,
+     493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,
+     503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,    -1,
+      -1,   514,   515,    -1,   517,   518,   519,   520,   521,   522,
+      -1,    -1,   525,   526,   527,   528,    -1,   530,   531,    -1,
+     533,    -1,   535,   536,   537,   538,    -1,    -1,   541,   542,
+      -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,
+     553,   554,   555,    -1,    -1,    -1,   559,   560,   561,   562,
+      -1,   564,   565,    -1,   567,   568,    -1,   570,   571,    -1,
+      -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,
+     583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,
+     593,    -1,    -1,    -1,   597,   598,   599,   600,   601,   602,
+      -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,
+     613,   614,    -1,     5,   617,     7,     8,     9,    10,    11,
+      -1,   624,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,
+      -1,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
+      -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
+      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
+      52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,
+      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
+      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
+      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
+      -1,    93,    94,    95,    96,    97,    -1,    99,    -1,    -1,
+     102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,
+      -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,
+      -1,   123,   124,   125,    -1,    -1,    -1,   129,    -1,   131,
+      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
+      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
+      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
+      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
+      -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,
+     182,   183,   184,   185,    -1,   187,    -1,    -1,    -1,   191,
+      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
+     202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,
+     212,   213,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
+     222,   223,   224,    -1,    -1,   227,   228,   229,    -1,   231,
+      -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,
+      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
+      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
+      -1,    -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,
+     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
+     282,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
+     302,   303,    -1,   305,   306,   307,   308,    -1,   310,   311,
+      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
+      -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,
+     332,   333,   334,   335,   336,   337,   338,   339,   340,    -1,
+      -1,   343,   344,    -1,    -1,   347,   348,   349,   350,   351,
+     352,    -1,   354,   355,    -1,    -1,   358,    -1,   360,   361,
+     362,    -1,   364,   365,   366,   367,    -1,   369,   370,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,
+      -1,    -1,   384,    -1,   386,   387,   388,   389,   390,   391,
+     392,   393,   394,   395,   396,   397,    -1,    -1,   400,   401,
+     402,    -1,   404,    -1,   406,   407,   408,   409,   410,    -1,
+     412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,
+     422,   423,   424,   425,    -1,    -1,   428,   429,   430,   431,
+     432,    -1,   434,   435,    -1,   437,   438,   439,    -1,    -1,
+     442,    -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,
+      -1,    -1,   454,   455,   456,   457,   458,   459,   460,   461,
+     462,   463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,
+     472,   473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,
+      -1,   483,   484,   485,   486,    -1,   488,   489,   490,   491,
+     492,   493,    -1,    -1,   496,   497,   498,    -1,   500,   501,
+      -1,   503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,
+      -1,    -1,   514,   515,    -1,   517,   518,   519,   520,   521,
+     522,    -1,    -1,   525,   526,   527,   528,    -1,   530,   531,
+      -1,   533,    -1,   535,   536,   537,   538,    -1,    -1,   541,
+     542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,
+      -1,   553,   554,   555,    -1,    -1,    -1,   559,   560,   561,
+     562,   563,   564,   565,    -1,   567,   568,    -1,   570,   571,
+      -1,    -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,
+     582,   583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,
+      -1,   593,    -1,    -1,    -1,   597,   598,   599,   600,   601,
+     602,    -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,
+     612,   613,   614,    -1,     5,   617,     7,     8,     9,    10,
+      11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,
+      21,    -1,    23,    24,    25,    26,    27,    28,    29,    -1,
+      31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,
+      -1,    42,    43,    44,    -1,    46,    -1,    48,    49,    -1,
+      -1,    52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,
+      61,    62,    -1,    64,    65,    66,    67,    68,    69,    70,
+      -1,    72,    73,    74,    75,    76,    77,    78,    79,    -1,
+      81,    82,    83,    84,    85,    86,    87,    88,    -1,    90,
+      91,    -1,    93,    94,    95,    96,    97,    -1,    99,    -1,
+      -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,
+      -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,
+      -1,    -1,   123,   124,   125,    -1,    -1,   128,   129,    -1,
+     131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
+      -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,
+      -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,   160,
+      -1,    -1,   163,   164,    -1,   166,   167,   168,   169,   170,
+     171,    -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,
+      -1,   182,   183,   184,   185,    -1,   187,    -1,    -1,    -1,
+     191,    -1,   193,    -1,   195,    -1,   197,   198,   199,   200,
+     201,   202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,
+      -1,   212,   213,    -1,    -1,   216,   217,    -1,    -1,    -1,
+     221,   222,   223,   224,    -1,    -1,   227,   228,   229,    -1,
+     231,    -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,
+      -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,
+      -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,
+     261,    -1,    -1,   264,   265,    -1,    -1,    -1,    -1,    -1,
+     271,   272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,
+      -1,   282,    -1,    -1,    -1,    -1,   287,   288,   289,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
+     301,   302,   303,    -1,   305,   306,   307,   308,    -1,   310,
+     311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,
+     321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,
+     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
+      -1,    -1,   343,   344,    -1,    -1,   347,   348,   349,   350,
+      -1,    -1,    -1,   354,   355,    -1,    -1,   358,    -1,   360,
+     361,   362,    -1,   364,   365,   366,   367,    -1,   369,   370,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,
+     381,    -1,    -1,   384,    -1,   386,   387,   388,   389,   390,
+     391,   392,   393,   394,   395,   396,   397,    -1,    -1,   400,
+     401,   402,    -1,   404,    -1,   406,   407,   408,   409,   410,
+      -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,
+     421,   422,   423,   424,   425,    -1,    -1,   428,   429,   430,
+     431,   432,    -1,   434,   435,    -1,   437,   438,   439,    -1,
+      -1,   442,    -1,   444,    -1,   446,   447,    -1,   449,   450,
+      -1,    -1,    -1,   454,   455,   456,   457,   458,   459,   460,
+     461,   462,   463,    -1,   465,   466,    -1,    -1,    -1,   470,
+     471,   472,   473,    -1,    -1,    -1,   477,    -1,    -1,    -1,
+     481,    -1,   483,   484,   485,   486,    -1,   488,   489,   490,
+     491,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,
+     501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,   510,
+     511,    -1,    -1,   514,   515,    -1,   517,   518,   519,   520,
+     521,   522,    -1,    -1,   525,   526,   527,   528,    -1,   530,
+     531,    -1,   533,    -1,   535,   536,   537,   538,    -1,   540,
+     541,   542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,
+      -1,    -1,   553,   554,   555,    -1,    -1,    -1,   559,   560,
+     561,   562,   563,   564,   565,    -1,   567,   568,    -1,   570,
+     571,    -1,    -1,   574,    -1,    -1,   577,    -1,   579,    -1,
+     581,   582,   583,    -1,    -1,    -1,    -1,    -1,    -1,   590,
+      -1,    -1,   593,    -1,    -1,    -1,   597,   598,   599,   600,
+     601,   602,    -1,    -1,    -1,    -1,    -1,    -1,   609,   610,
+      -1,   612,   613,   614,    -1,     5,   617,     7,     8,     9,
+      10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,
+      -1,    21,    -1,    23,    24,    25,    26,    27,    28,    29,
+      -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,
+      -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,    49,
+      -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,    59,
+      -1,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
+      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
+      -1,    81,    82,    83,    84,    85,    86,    87,    88,    -1,
+      90,    91,    -1,    93,    94,    95,    96,    97,    -1,    99,
+      -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,
+      -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,
+      -1,    -1,    -1,   123,   124,   125,    -1,    -1,   128,   129,
+      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
+     140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
+      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
+     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
+     170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,   179,
+     180,    -1,   182,   183,   184,   185,    -1,   187,    -1,    -1,
+      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
+     200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,   209,
+     210,    -1,   212,   213,    -1,    -1,   216,   217,    -1,    -1,
+      -1,   221,   222,   223,   224,    -1,    -1,   227,   228,   229,
+      -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,   239,
+      -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
+      -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,
+      -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,    -1,
+      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
+      -1,    -1,   282,    -1,    -1,    -1,    -1,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+      -1,   301,   302,   303,    -1,   305,   306,   307,   308,    -1,
+     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
+     320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,
+      -1,   331,   332,   333,   334,   335,   336,   337,   338,   339,
+     340,    -1,    -1,   343,   344,    -1,    -1,   347,   348,   349,
+     350,    -1,    -1,    -1,   354,   355,    -1,    -1,   358,    -1,
+     360,   361,   362,    -1,   364,   365,   366,   367,    -1,   369,
+     370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,
+     380,   381,    -1,    -1,   384,    -1,   386,   387,   388,   389,
+     390,   391,   392,   393,   394,   395,   396,   397,    -1,    -1,
+     400,   401,   402,    -1,   404,    -1,   406,   407,   408,   409,
+     410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,
+      -1,   421,   422,   423,   424,   425,    -1,    -1,   428,   429,
+     430,   431,   432,    -1,   434,   435,    -1,   437,   438,   439,
+      -1,    -1,   442,    -1,   444,    -1,   446,   447,    -1,   449,
+     450,    -1,    -1,    -1,   454,   455,   456,   457,   458,   459,
+     460,   461,   462,   463,    -1,   465,   466,    -1,    -1,    -1,
+     470,   471,   472,   473,    -1,    -1,    -1,   477,    -1,    -1,
+      -1,   481,    -1,   483,   484,   485,   486,    -1,   488,   489,
+     490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,
+     500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,
+     510,   511,    -1,    -1,   514,   515,    -1,   517,   518,   519,
+     520,   521,   522,    -1,    -1,   525,   526,   527,   528,    -1,
+     530,   531,    -1,   533,    -1,   535,   536,   537,   538,    -1,
+     540,   541,   542,    -1,   544,   545,   546,   547,    -1,    -1,
+      -1,    -1,    -1,   553,   554,   555,    -1,    -1,    -1,   559,
+     560,   561,   562,   563,   564,   565,    -1,   567,   568,    -1,
+     570,   571,    -1,    -1,   574,    -1,    -1,   577,    -1,   579,
+      -1,   581,   582,   583,    -1,    -1,    -1,    -1,    -1,    -1,
+     590,    -1,    -1,   593,    -1,    -1,    -1,   597,   598,   599,
+     600,   601,   602,    -1,    -1,    -1,    -1,    -1,    -1,   609,
+     610,    -1,   612,   613,   614,    -1,     5,   617,     7,     8,
+       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
+      -1,    -1,    21,    -1,    23,    24,    25,    26,    27,    28,
+      29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
+      39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,
+      49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,
+      59,    -1,    61,    62,    -1,    64,    65,    66,    67,    68,
+      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
+      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
+      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
+      99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,
+     109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,
+      -1,    -1,    -1,    -1,   123,   124,   125,    -1,    -1,   128,
+     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
+     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
+     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
+     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
+     169,   170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,
+     179,   180,    -1,   182,   183,   184,   185,    -1,   187,    -1,
+      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
+     199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,
+     209,   210,    -1,   212,   213,    -1,    -1,   216,   217,    -1,
+      -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,   228,
+     229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,
+     239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
+     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
+      -1,    -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,
+      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
+     279,    -1,    -1,   282,    -1,    -1,    -1,    -1,   287,   288,
+     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,    -1,   301,   302,   303,    -1,   305,   306,   307,   308,
+      -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
+     319,   320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,
+     329,    -1,   331,   332,   333,   334,   335,   336,   337,   338,
+     339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,   348,
+     349,   350,    -1,    -1,    -1,   354,   355,    -1,    -1,   358,
+      -1,   360,   361,   362,    -1,   364,   365,   366,   367,    -1,
+     369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     379,   380,   381,    -1,    -1,   384,    -1,   386,   387,   388,
+     389,   390,   391,   392,   393,   394,   395,   396,   397,    -1,
+      -1,   400,   401,   402,    -1,   404,    -1,   406,   407,   408,
+     409,   410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,
+      -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,   428,
+     429,   430,   431,   432,    -1,   434,   435,    -1,   437,   438,
+     439,    -1,    -1,   442,    -1,   444,    -1,   446,   447,    -1,
+     449,   450,    -1,    -1,    -1,   454,   455,   456,   457,   458,
+     459,   460,   461,   462,   463,    -1,   465,   466,    -1,    -1,
+      -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,    -1,
+      -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,   488,
+     489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
+      -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,
+     509,   510,   511,    -1,    -1,   514,   515,    -1,   517,   518,
+     519,   520,   521,   522,    -1,    -1,   525,   526,   527,   528,
+      -1,   530,   531,    -1,   533,    -1,   535,   536,   537,   538,
+      -1,   540,   541,   542,    -1,   544,   545,   546,   547,    -1,
+      -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,    -1,
+     559,   560,   561,   562,   563,   564,   565,    -1,   567,   568,
+      -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,    -1,
+     579,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,    -1,
+      -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,   598,
+     599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,    -1,
+     609,   610,    -1,   612,   613,   614,    -1,     5,   617,     7,
+       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
+      18,    -1,    -1,    21,    -1,    23,    24,    25,    26,    27,
+      28,    29,    -1,    31,    -1,    -1,    34,    35,    -1,    -1,
+      -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,
+      48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,
+      58,    59,    -1,    61,    62,    -1,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
+      88,    -1,    90,    91,    -1,    93,    94,    95,    96,    97,
+      -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,
+      -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,
+     118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,
+     128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
+     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
+     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
+     158,   159,   160,   161,    -1,   163,   164,    -1,   166,   167,
+     168,   169,   170,   171,    -1,    -1,   174,   175,   176,    -1,
+      -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,   187,
+      -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,
+     198,   199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,
+     208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
+      -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,
+     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,
+     238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,
+     248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
+     258,    -1,    -1,   261,    -1,    -1,   264,   265,   266,    -1,
+      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
+     278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,    -1,   301,   302,   303,    -1,   305,   306,   307,
+     308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
+     318,   319,   320,   321,    -1,    -1,   324,   325,    -1,   327,
+      -1,   329,    -1,   331,   332,   333,   334,   335,   336,   337,
+     338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,
+     348,   349,   350,    -1,    -1,    -1,   354,   355,    -1,    -1,
+      -1,    -1,   360,   361,   362,    -1,   364,   365,   366,   367,
+      -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   379,   380,   381,    -1,    -1,   384,    -1,   386,   387,
+     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
+      -1,    -1,   400,   401,   402,    -1,   404,    -1,   406,   407,
+     408,   409,   410,    -1,   412,   413,   414,    -1,    -1,   417,
+      -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,
+     428,   429,   430,   431,   432,    -1,   434,   435,    -1,   437,
+     438,   439,    -1,    -1,   442,    -1,   444,    -1,   446,   447,
+      -1,   449,   450,    -1,    -1,    -1,   454,   455,   456,   457,
+     458,   459,   460,   461,   462,   463,    -1,   465,   466,    -1,
+      -1,    -1,   470,   471,   472,   473,    -1,    -1,   476,   477,
+      -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,
+     488,   489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
+      -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,
+      -1,   509,   510,   511,    -1,    -1,   514,   515,    -1,   517,
+     518,   519,   520,   521,   522,    -1,    -1,   525,   526,   527,
+     528,    -1,   530,   531,    -1,   533,    -1,   535,   536,   537,
+     538,    -1,   540,   541,   542,    -1,   544,   545,   546,   547,
+      -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,
+      -1,   559,   560,   561,   562,    -1,   564,   565,    -1,   567,
+     568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,
+      -1,   579,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,
+      -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,
+     598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,
+      -1,   609,   610,    -1,   612,   613,   614,    -1,     5,   617,
+       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
+      -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,    26,
+      27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,    36,
+      -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,
+      -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,
+      -1,    58,    59,    -1,    61,    62,    -1,    64,    65,    66,
+      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
+      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
+      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    96,
+      97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,
+      -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,
+      -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,
+      -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
+     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
+     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
+      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
+     167,   168,   169,   170,   171,    -1,    -1,   174,   175,   176,
+      -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,
+     187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,
+     197,   198,   199,   200,   201,   202,    -1,   204,    -1,    -1,
+      -1,   208,   209,   210,    -1,   212,   213,   214,    -1,   216,
+     217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,
+     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
+      -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,
+      -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,
+     257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,    -1,
+      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
+      -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,    -1,   301,   302,   303,    -1,   305,   306,
+     307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,
+     317,   318,   319,   320,   321,    -1,    -1,   324,   325,    -1,
+     327,    -1,   329,    -1,   331,   332,   333,   334,   335,   336,
+     337,   338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,
+     347,   348,   349,   350,    -1,    -1,    -1,   354,   355,    -1,
+      -1,    -1,    -1,   360,   361,   362,    -1,   364,   365,   366,
+     367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   379,   380,   381,    -1,    -1,   384,    -1,   386,
+     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
+     397,    -1,    -1,   400,   401,   402,    -1,   404,    -1,   406,
+     407,   408,   409,   410,    -1,   412,   413,   414,    -1,    -1,
+     417,    -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,
+      -1,   428,   429,   430,   431,   432,    -1,   434,   435,    -1,
+     437,   438,   439,    -1,    -1,   442,    -1,   444,    -1,   446,
+     447,    -1,   449,   450,    -1,    -1,    -1,   454,   455,   456,
+     457,   458,   459,   460,   461,   462,   463,    -1,   465,   466,
+      -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,
+     477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,
+      -1,   488,   489,   490,   491,   492,   493,    -1,    -1,    -1,
+      -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,
+      -1,    -1,   509,   510,   511,    -1,    -1,   514,   515,    -1,
+     517,   518,   519,   520,   521,   522,    -1,    -1,   525,   526,
+     527,   528,    -1,   530,   531,    -1,   533,    -1,   535,   536,
+     537,   538,    -1,   540,   541,   542,    -1,   544,   545,   546,
+     547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,
+      -1,    -1,   559,   560,   561,   562,    -1,   564,   565,    -1,
+     567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,
+     577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,    -1,
+      -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,
+     597,   598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,
+      -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,     5,
+     617,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
+      -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,
+      26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
+      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,
+      46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,
+      56,    -1,    58,    59,    -1,    61,    62,    -1,    64,    65,
+      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
+      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
+      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
+      96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
+      -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,
+      -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,
+      -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,
+      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
+      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
+     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
+     166,   167,   168,   169,   170,   171,    -1,    -1,   174,   175,
+     176,    -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,
+      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
+      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
+      -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,
+     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,
+      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
+      -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,
+     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
+     256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,
+      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
+     276,    -1,   278,   279,    -1,    -1,   282,    -1,    -1,    -1,
+      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,    -1,   301,   302,   303,    -1,   305,
+     306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,
+     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
+      -1,   327,    -1,   329,    -1,   331,   332,   333,   334,   335,
+     336,   337,   338,   339,   340,    -1,    -1,   343,   344,    -1,
+      -1,   347,   348,   349,   350,    -1,    -1,    -1,   354,   355,
+      -1,    -1,   358,    -1,   360,   361,   362,    -1,   364,   365,
+     366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   379,   380,   381,    -1,   383,   384,    -1,
+     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
+     396,   397,    -1,    -1,   400,   401,   402,    -1,   404,    -1,
+     406,   407,   408,   409,   410,    -1,   412,   413,   414,    -1,
+      -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,   425,
+      -1,    -1,   428,   429,   430,   431,   432,    -1,   434,   435,
+      -1,   437,   438,   439,    -1,    -1,   442,    -1,   444,    -1,
+     446,   447,    -1,   449,   450,    -1,    -1,    -1,   454,   455,
+     456,   457,   458,   459,   460,   461,   462,   463,    -1,   465,
+     466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,
+      -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,
+     486,    -1,   488,   489,   490,   491,   492,   493,    -1,    -1,
+      -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,
+     506,    -1,    -1,   509,   510,   511,    -1,    -1,   514,   515,
+      -1,   517,   518,   519,   520,   521,   522,    -1,    -1,   525,
+     526,   527,   528,    -1,   530,   531,    -1,   533,    -1,   535,
+     536,   537,   538,    -1,    -1,   541,   542,    -1,   544,   545,
+     546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,
+      -1,    -1,    -1,   559,   560,   561,   562,   563,   564,   565,
+      -1,   567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,
+      -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,
+      -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,
+      -1,   597,   598,   599,   600,   601,   602,    -1,    -1,    -1,
+      -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,
+       5,   617,     7,     8,     9,    10,    11,    -1,    -1,    14,
+      -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,
+      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    34,
+      35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,
+      -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,
+      55,    56,    -1,    58,    59,    -1,    61,    62,    -1,    64,
+      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
+      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
+      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
+      95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,
+     105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,
+     115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,
+      -1,    -1,    -1,   128,   129,    -1,   131,    -1,    -1,    -1,
+     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
+      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
+     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
+      -1,   166,   167,   168,   169,   170,   171,    -1,    -1,   174,
+     175,   176,    -1,    -1,   179,   180,    -1,   182,   183,   184,
+      -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
+     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
+      -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,
+      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
+      -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
+      -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,
+     245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,
+      -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,
+     265,   266,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
+      -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,    -1,   301,   302,   303,    -1,
+     305,   306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,
+      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
+     325,    -1,   327,    -1,   329,    -1,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,    -1,    -1,   343,   344,
+      -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,   354,
+     355,    -1,    -1,    -1,    -1,   360,   361,   362,    -1,   364,
+     365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   379,   380,   381,    -1,    -1,   384,
+      -1,   386,   387,   388,   389,   390,   391,   392,   393,   394,
+     395,   396,   397,    -1,    -1,   400,   401,   402,    -1,   404,
+      -1,   406,   407,   408,   409,   410,    -1,   412,   413,   414,
+      -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,
+     425,    -1,    -1,   428,   429,   430,   431,   432,    -1,   434,
+     435,    -1,   437,   438,   439,    -1,    -1,   442,    -1,   444,
+      -1,   446,   447,    -1,   449,   450,    -1,    -1,    -1,   454,
+     455,   456,   457,   458,   459,   460,   461,   462,   463,    -1,
+     465,   466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,
+      -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,
+     485,   486,    -1,   488,   489,   490,   491,   492,   493,    -1,
+      -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,
+      -1,   506,    -1,    -1,   509,   510,   511,    -1,    -1,   514,
+     515,    -1,   517,   518,   519,   520,   521,   522,    -1,    -1,
+     525,   526,   527,   528,    -1,   530,   531,    -1,   533,    -1,
+     535,   536,   537,   538,    -1,   540,   541,   542,    -1,   544,
+     545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,
+     555,    -1,    -1,    -1,   559,   560,   561,   562,    -1,   564,
+     565,    -1,   567,   568,    -1,   570,   571,    -1,    -1,   574,
+      -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,
+      -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,
+      -1,    -1,   597,   598,   599,   600,   601,   602,    -1,    -1,
+      -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,
+      -1,     5,   617,     7,     8,     9,    10,    11,    -1,    -1,
       14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
-      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
-      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
-      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
-     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
-      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
-      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,   353,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,   368,   369,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,   378,   379,   380,    -1,    -1,   383,
-      -1,   385,   386,   387,   388,   389,   390,   391,   392,   393,
-     394,   395,   396,    -1,    -1,   399,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-     434,    -1,   436,   437,   438,    -1,    -1,   441,    -1,   443,
-      -1,   445,   446,    -1,   448,   449,    -1,    -1,    -1,   453,
-     454,   455,   456,   457,   458,   459,   460,   461,   462,    -1,
-     464,   465,    -1,    -1,    -1,   469,   470,   471,   472,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,   482,   483,
-     484,   485,    -1,   487,   488,   489,   490,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,   509,   510,    -1,    -1,   513,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,   558,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,   569,   570,    -1,    -1,   573,
-      -1,    -1,   576,    -1,   578,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,   609,    -1,   611,   612,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    23,
-      24,    25,    26,    27,    28,    -1,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,    53,
-      -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    83,
-      -1,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-      -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-      -1,    -1,    -1,   147,   148,   149,    -1,   151,   152,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,   181,   182,   183,
-     184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,    -1,
-      -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,   253,
-      -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-     284,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,    -1,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,
-      -1,   385,   386,   387,    -1,   389,   390,   391,   392,   393,
-     394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-      -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,    -1,
-      -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,    -1,
-     454,   455,   456,   457,   458,   459,    -1,   461,   462,    -1,
-     464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,   483,
-      -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,    -1,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,   573,
-      -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-     604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    23,
-      24,    25,    26,    27,    28,    -1,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,    53,
-      -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    83,
-      -1,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-      -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-      -1,    -1,    -1,   147,   148,   149,    -1,   151,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,   181,   182,   183,
-     184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,    -1,
-      -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,   253,
-      -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-     284,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,    -1,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,
-      -1,   385,   386,   387,    -1,   389,   390,   391,   392,   393,
-     394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-      -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,    -1,
-      -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,    -1,
-     454,   455,   456,   457,   458,   459,    -1,   461,   462,    -1,
-     464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,   483,
-      -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,    -1,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,   573,
-      -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,   602,    -1,
-     604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    23,
-      24,    25,    26,    27,    28,    -1,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,    53,
-      -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    83,
-      -1,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-      -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-      -1,    -1,    -1,   147,   148,   149,    -1,   151,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,   181,   182,   183,
-     184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,    -1,
-      -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,   253,
-      -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-     284,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,    -1,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,
-      -1,   385,   386,   387,    -1,   389,   390,   391,   392,   393,
-     394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-      -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,    -1,
-      -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,    -1,
-     454,   455,   456,   457,   458,   459,    -1,   461,   462,    -1,
-     464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,   483,
-      -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,    -1,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,   573,
-      -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,   602,    -1,
-     604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    23,
-      24,    25,    26,    27,    28,    -1,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,    53,
-      -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    83,
-      -1,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-      -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-      -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,   181,   182,   183,
-     184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,    -1,
-      -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,   253,
-      -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-     284,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,    -1,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,
-      -1,   385,   386,   387,    -1,   389,   390,   391,   392,   393,
-     394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-      -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,    -1,
-      -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,    -1,
-     454,   455,   456,   457,   458,   459,    -1,   461,   462,    -1,
-     464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,   483,
-      -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,    -1,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,   573,
-      -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-     604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    23,
-      24,    25,    26,    27,    28,    -1,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,    53,
-      -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    83,
-      -1,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-      -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-      -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,   181,   182,   183,
-     184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,    -1,
-      -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,   253,
-      -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-     284,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,    -1,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,
-      -1,   385,   386,   387,    -1,   389,   390,   391,   392,   393,
-     394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-      -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,    -1,
-      -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,    -1,
-     454,   455,   456,   457,   458,   459,    -1,   461,   462,    -1,
-     464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,   483,
-      -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,    -1,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,   573,
-      -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-     604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    23,
-      24,    25,    26,    27,    28,    -1,    -1,    31,    -1,    -1,
+      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,    53,
-      -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,
+      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
+      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
       64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    83,
-      -1,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,    -1,
+      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
+      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
+      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
       -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
      114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-      -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
+     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
       -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-      -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
+     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
       -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,   181,   182,   183,
-     184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,   193,
+     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
+     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
+     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
       -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,    -1,
-      -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,   253,
-      -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,    -1,
+     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
+      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
+     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
+      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
+      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
+      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
      264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-     284,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
+     274,    -1,   276,    -1,   278,   279,    -1,    -1,   282,    -1,
+      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
      294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
       -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
       -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
      324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,    -1,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,
-      -1,   385,   386,   387,    -1,   389,   390,   391,   392,   393,
-     394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-      -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,    -1,
-      -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,    -1,
-     454,   455,   456,   457,   458,   459,    -1,   461,   462,    -1,
-     464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,   483,
-      -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,    -1,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,   573,
-      -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-     604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    23,
-      24,    25,    26,    27,    28,    -1,    -1,    31,    -1,    -1,
+     334,   335,   336,   337,   338,   339,   340,    -1,    -1,   343,
+     344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,
+     354,   355,    -1,    -1,   358,    -1,   360,   361,   362,    -1,
+     364,   365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,   383,
+     384,    -1,   386,   387,   388,   389,   390,   391,   392,   393,
+     394,   395,   396,   397,    -1,    -1,   400,   401,   402,    -1,
+     404,    -1,   406,   407,   408,   409,   410,    -1,   412,   413,
+     414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,
+     424,   425,    -1,    -1,   428,   429,   430,   431,   432,    -1,
+     434,   435,    -1,   437,   438,   439,    -1,    -1,   442,    -1,
+     444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,    -1,
+     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
+      -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,   473,
+      -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,
+     484,   485,   486,    -1,   488,   489,   490,   491,   492,   493,
+      -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,
+      -1,    -1,   506,    -1,    -1,   509,   510,   511,    -1,    -1,
+     514,   515,    -1,   517,   518,   519,   520,   521,   522,    -1,
+      -1,   525,   526,   527,   528,    -1,   530,   531,    -1,   533,
+      -1,   535,   536,   537,   538,    -1,    -1,   541,   542,    -1,
+     544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,
+     554,   555,    -1,    -1,    -1,   559,   560,   561,   562,   563,
+     564,   565,    -1,   567,   568,    -1,   570,   571,    -1,    -1,
+     574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,
+      -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,
+      -1,    -1,    -1,   597,   598,   599,   600,   601,   602,    -1,
+      -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,
+     614,    -1,     5,   617,     7,     8,     9,    10,    11,    -1,
+      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
+      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
+      -1,    34,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
+      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
+      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
+      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
+      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
+      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
+      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
+      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
+     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
+     123,   124,    -1,    -1,    -1,   128,   129,    -1,   131,    -1,
+      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
+      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
+     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
+     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
+      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
+     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,
+     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
+      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
+      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
+     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
+     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
+     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
+     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
+      -1,   264,   265,   266,    -1,    -1,    -1,    -1,   271,   272,
+      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
+     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
+      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
+      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
+     333,   334,   335,   336,   337,   338,   339,   340,    -1,    -1,
+     343,   344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,
+      -1,   354,   355,    -1,    -1,    -1,    -1,   360,   361,   362,
+      -1,   364,   365,   366,   367,    -1,   369,   370,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,
+      -1,   384,    -1,   386,   387,   388,   389,   390,   391,   392,
+     393,   394,   395,   396,   397,    -1,    -1,   400,   401,   402,
+      -1,   404,    -1,   406,   407,   408,   409,   410,    -1,   412,
+     413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,
+     423,   424,   425,    -1,    -1,   428,   429,   430,   431,   432,
+      -1,   434,   435,    -1,   437,   438,   439,    -1,    -1,   442,
+      -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,
+      -1,   454,   455,   456,   457,   458,   459,   460,   461,   462,
+     463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,
+     473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,
+     483,   484,   485,   486,    -1,   488,   489,   490,   491,   492,
+     493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,
+     503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,    -1,
+      -1,   514,   515,    -1,   517,   518,   519,   520,   521,   522,
+      -1,    -1,   525,   526,   527,   528,    -1,   530,   531,    -1,
+     533,    -1,   535,   536,   537,   538,    -1,   540,   541,   542,
+      -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,
+     553,   554,   555,    -1,    -1,    -1,   559,   560,   561,   562,
+      -1,   564,   565,    -1,   567,   568,    -1,   570,   571,    -1,
+      -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,
+     583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,
+     593,    -1,    -1,    -1,   597,   598,   599,   600,   601,   602,
+      -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,
+     613,   614,    -1,     5,   617,     7,     8,     9,    10,    11,
+      -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,
+      -1,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
+      -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
+      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
+      52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,
+      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
+      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
+      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
+      -1,    93,    94,    95,    96,    97,    -1,    99,    -1,    -1,
+     102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,
+      -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,
+      -1,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,
+      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
+      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
+      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
+      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
+      -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,
+     182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,
+      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
+     202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,
+     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
+     222,   223,   224,    -1,    -1,   227,   228,   229,    -1,   231,
+      -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,
+      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
+      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
+      -1,    -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,
+     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
+     282,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
+     302,   303,    -1,   305,   306,   307,   308,    -1,   310,   311,
+      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
+      -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,
+     332,   333,   334,   335,   336,   337,   338,   339,   340,    -1,
+      -1,   343,   344,    -1,    -1,   347,   348,   349,   350,    -1,
+      -1,    -1,   354,   355,    -1,    -1,   358,    -1,   360,   361,
+     362,    -1,   364,   365,   366,   367,    -1,   369,   370,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,
+      -1,   383,   384,    -1,   386,   387,   388,   389,   390,   391,
+     392,   393,   394,   395,   396,   397,    -1,    -1,   400,   401,
+     402,    -1,   404,    -1,   406,   407,   408,   409,   410,    -1,
+     412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,
+     422,   423,   424,   425,    -1,    -1,   428,   429,   430,   431,
+     432,    -1,   434,   435,    -1,   437,   438,   439,    -1,    -1,
+     442,    -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,
+      -1,    -1,   454,   455,   456,   457,   458,   459,   460,   461,
+     462,   463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,
+     472,   473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,
+      -1,   483,   484,   485,   486,    -1,   488,   489,   490,   491,
+     492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,
+      -1,   503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,
+      -1,    -1,   514,   515,    -1,   517,   518,   519,   520,   521,
+     522,    -1,    -1,   525,   526,   527,   528,    -1,   530,   531,
+      -1,   533,    -1,   535,   536,   537,   538,    -1,    -1,   541,
+     542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,
+      -1,   553,   554,   555,    -1,    -1,    -1,   559,   560,   561,
+     562,   563,   564,   565,    -1,   567,   568,    -1,   570,   571,
+      -1,    -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,
+     582,   583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,
+      -1,   593,    -1,    -1,    -1,   597,   598,   599,   600,   601,
+     602,    -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,
+     612,   613,   614,    -1,     5,   617,     7,     8,     9,    10,
+      11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,
+      21,    -1,    23,    24,    25,    26,    27,    28,    29,    -1,
+      31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,
+      -1,    42,    43,    44,    -1,    46,    -1,    48,    49,    -1,
+      -1,    52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,
+      61,    62,    -1,    64,    65,    66,    67,    68,    69,    70,
+      -1,    72,    73,    74,    75,    76,    77,    78,    79,    -1,
+      81,    82,    83,    84,    85,    86,    87,    88,    -1,    90,
+      91,    -1,    93,    94,    95,    96,    97,    -1,    99,    -1,
+      -1,   102,    -1,    -1,   105,    -1,   107,    -1,   109,    -1,
+      -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,
+      -1,    -1,   123,   124,    -1,    -1,    -1,    -1,   129,    -1,
+     131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
+      -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,
+      -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,   160,
+      -1,    -1,   163,   164,    -1,   166,   167,   168,   169,   170,
+     171,    -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,
+      -1,   182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,
+     191,    -1,   193,    -1,   195,    -1,   197,   198,   199,   200,
+     201,   202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,
+      -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,
+     221,   222,   223,   224,    -1,    -1,   227,   228,   229,    -1,
+     231,    -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,
+      -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,
+      -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,
+     261,    -1,    -1,   264,   265,   266,    -1,    -1,    -1,    -1,
+     271,   272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   287,   288,   289,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
+     301,   302,   303,    -1,   305,   306,   307,   308,    -1,   310,
+     311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,
+     321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,
+     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
+      -1,    -1,   343,   344,    -1,    -1,   347,   348,   349,   350,
+      -1,    -1,    -1,   354,   355,    -1,    -1,    -1,    -1,   360,
+     361,   362,    -1,   364,   365,   366,   367,    -1,   369,   370,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,
+     381,    -1,    -1,   384,    -1,   386,   387,   388,   389,   390,
+     391,   392,   393,   394,   395,   396,   397,    -1,    -1,   400,
+     401,   402,    -1,   404,    -1,   406,   407,   408,   409,   410,
+      -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,
+     421,   422,   423,   424,   425,    -1,    -1,   428,   429,   430,
+     431,   432,    -1,   434,   435,    -1,   437,   438,   439,    -1,
+      -1,   442,    -1,   444,    -1,   446,   447,    -1,   449,   450,
+      -1,    -1,    -1,   454,   455,   456,   457,   458,   459,   460,
+     461,   462,   463,    -1,   465,   466,    -1,    -1,    -1,   470,
+     471,   472,   473,    -1,    -1,    -1,   477,    -1,    -1,    -1,
+     481,    -1,   483,   484,   485,   486,    -1,   488,   489,   490,
+     491,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,
+     501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,   510,
+     511,    -1,    -1,   514,   515,    -1,   517,   518,   519,   520,
+     521,   522,    -1,    -1,   525,   526,   527,   528,    -1,   530,
+     531,    -1,   533,    -1,   535,   536,   537,   538,    -1,   540,
+     541,   542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,
+      -1,    -1,   553,   554,   555,    -1,    -1,    -1,   559,   560,
+     561,   562,    -1,   564,   565,    -1,   567,   568,    -1,   570,
+     571,    -1,    -1,   574,    -1,    -1,   577,    -1,   579,    -1,
+     581,   582,   583,    -1,    -1,    -1,    -1,    -1,    -1,   590,
+      -1,    -1,   593,    -1,    -1,    -1,   597,   598,   599,   600,
+     601,   602,    -1,    -1,    -1,    -1,    -1,    -1,   609,   610,
+      -1,   612,   613,   614,    -1,     5,   617,     7,     8,     9,
+      10,    11,    12,    -1,    14,    -1,    -1,    -1,    18,    -1,
+      -1,    21,    -1,    23,    24,    25,    26,    27,    28,    29,
+      -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,
+      -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,    49,
+      -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,    59,
+      -1,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
+      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
+      -1,    81,    82,    83,    84,    85,    86,    87,    88,    -1,
+      90,    91,    -1,    93,    94,    95,    96,    97,    -1,    99,
+      -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,
+      -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,
+      -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,   129,
+      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
+     140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
+      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
+     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
+     170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,   179,
+     180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,    -1,
+      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
+     200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,   209,
+     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
+      -1,   221,   222,   223,   224,    -1,    -1,   227,   228,   229,
+      -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,   239,
+      -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
+      -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,
+      -1,   261,    -1,    -1,   264,   265,   266,    -1,    -1,    -1,
+      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+      -1,   301,   302,   303,    -1,   305,   306,   307,   308,    -1,
+     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
+     320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,
+      -1,   331,   332,   333,   334,   335,   336,   337,   338,   339,
+     340,    -1,    -1,   343,   344,    -1,    -1,   347,   348,   349,
+     350,    -1,    -1,    -1,   354,   355,    -1,    -1,    -1,    -1,
+     360,   361,   362,    -1,   364,   365,   366,   367,    -1,   369,
+     370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,
+     380,   381,    -1,    -1,   384,    -1,   386,   387,   388,   389,
+     390,   391,   392,   393,   394,   395,   396,   397,    -1,    -1,
+     400,   401,   402,    -1,   404,    -1,   406,   407,   408,   409,
+     410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,
+      -1,   421,   422,   423,   424,   425,    -1,    -1,   428,   429,
+     430,   431,   432,    -1,   434,   435,    -1,   437,   438,   439,
+      -1,    -1,   442,    -1,   444,    -1,   446,   447,    -1,   449,
+     450,    -1,    -1,    -1,   454,   455,   456,   457,   458,   459,
+     460,   461,   462,   463,    -1,   465,   466,    -1,    -1,    -1,
+     470,   471,   472,   473,    -1,    -1,    -1,   477,    -1,    -1,
+      -1,   481,    -1,   483,   484,   485,   486,    -1,   488,   489,
+     490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,
+     500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,
+     510,   511,    -1,    -1,   514,   515,    -1,   517,   518,   519,
+     520,   521,   522,    -1,    -1,   525,   526,   527,   528,    -1,
+     530,   531,    -1,   533,    -1,   535,   536,   537,   538,    -1,
+     540,   541,   542,    -1,   544,   545,   546,   547,    -1,    -1,
+      -1,    -1,    -1,   553,   554,   555,    -1,    -1,    -1,   559,
+     560,   561,   562,    -1,   564,   565,    -1,   567,   568,    -1,
+     570,   571,    -1,    -1,   574,    -1,    -1,   577,    -1,   579,
+      -1,   581,   582,   583,    -1,    -1,    -1,    -1,    -1,    -1,
+     590,    -1,    -1,   593,    -1,    -1,    -1,   597,   598,   599,
+     600,   601,   602,    -1,    -1,    -1,    -1,    -1,    -1,   609,
+     610,    -1,   612,   613,   614,    -1,     5,   617,     7,     8,
+       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
+      -1,    -1,    21,    -1,    23,    24,    25,    26,    27,    28,
+      29,    -1,    31,    -1,    -1,    34,    35,    -1,    -1,    -1,
+      39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,
+      49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,
+      59,    -1,    61,    62,    -1,    64,    65,    66,    67,    68,
+      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
+      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
+      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
+      99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,
+     109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,
+      -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,
+     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
+     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
+     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
+     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
+     169,   170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,
+     179,   180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,
+      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
+     199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,
+     209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
+      -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,   228,
+     229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,
+     239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
+     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
+      -1,    -1,   261,    -1,    -1,   264,   265,   266,    -1,    -1,
+      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
+     279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,
+     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,    -1,   301,   302,   303,    -1,   305,   306,   307,   308,
+      -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
+     319,   320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,
+     329,    -1,   331,   332,   333,   334,   335,   336,   337,   338,
+     339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,   348,
+     349,   350,    -1,    -1,    -1,   354,   355,    -1,    -1,    -1,
+      -1,   360,   361,   362,    -1,   364,   365,   366,   367,    -1,
+     369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     379,   380,   381,    -1,    -1,   384,    -1,   386,   387,   388,
+     389,   390,   391,   392,   393,   394,   395,   396,   397,    -1,
+      -1,   400,   401,   402,    -1,   404,    -1,   406,   407,   408,
+     409,   410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,
+      -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,   428,
+     429,   430,   431,   432,    -1,   434,   435,    -1,   437,   438,
+     439,    -1,    -1,   442,    -1,   444,    -1,   446,   447,    -1,
+     449,   450,    -1,    -1,    -1,   454,   455,   456,   457,   458,
+     459,   460,   461,   462,   463,    -1,   465,   466,    -1,    -1,
+      -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,    -1,
+      -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,   488,
+     489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
+      -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,
+     509,   510,   511,    -1,    -1,   514,   515,    -1,   517,   518,
+     519,   520,   521,   522,    -1,    -1,   525,   526,   527,   528,
+      -1,   530,   531,    -1,   533,    -1,   535,   536,   537,   538,
+      -1,   540,   541,   542,    -1,   544,   545,   546,   547,    -1,
+      -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,    -1,
+     559,   560,   561,   562,    -1,   564,   565,    -1,   567,   568,
+      -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,    -1,
+     579,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,    -1,
+      -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,   598,
+     599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,    -1,
+     609,   610,    -1,   612,   613,   614,    -1,     5,   617,     7,
+       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
+      18,    -1,    -1,    21,    -1,    23,    24,    25,    26,    27,
+      28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
+      -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,
+      48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,
+      58,    59,    -1,    61,    62,    -1,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
+      88,    -1,    90,    91,    -1,    93,    94,    95,    96,    97,
+      -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,
+      -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,
+     118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,
+     128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
+     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
+     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
+     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
+     168,   169,   170,   171,    -1,    -1,   174,   175,   176,    -1,
+      -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,   187,
+      -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,
+     198,   199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,
+     208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
+      -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,
+     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,
+     238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,
+     248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
+     258,    -1,    -1,   261,    -1,    -1,   264,   265,   266,    -1,
+      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
+     278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,    -1,   301,   302,   303,    -1,   305,   306,   307,
+     308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
+     318,   319,   320,   321,    -1,    -1,   324,   325,    -1,   327,
+      -1,   329,    -1,   331,   332,   333,   334,   335,   336,   337,
+     338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,
+     348,   349,   350,    -1,    -1,    -1,   354,   355,    -1,    -1,
+      -1,    -1,   360,   361,   362,    -1,   364,   365,   366,   367,
+      -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   379,   380,   381,    -1,    -1,   384,    -1,   386,   387,
+     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
+      -1,    -1,   400,   401,   402,    -1,   404,    -1,   406,   407,
+     408,   409,   410,    -1,   412,   413,   414,    -1,    -1,   417,
+      -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,
+     428,   429,   430,   431,   432,    -1,   434,   435,    -1,   437,
+     438,   439,    -1,    -1,   442,    -1,   444,    -1,   446,   447,
+      -1,   449,   450,    -1,    -1,    -1,   454,   455,   456,   457,
+     458,   459,   460,   461,   462,   463,    -1,   465,   466,    -1,
+      -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,
+      -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,
+     488,   489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
+      -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,
+      -1,   509,   510,   511,    -1,    -1,   514,   515,    -1,   517,
+     518,   519,   520,   521,   522,    -1,    -1,   525,   526,   527,
+     528,    -1,   530,   531,    -1,   533,    -1,   535,   536,   537,
+     538,    -1,   540,   541,   542,    -1,   544,   545,   546,   547,
+      -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,
+      -1,   559,   560,   561,   562,    -1,   564,   565,    -1,   567,
+     568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,
+      -1,   579,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,
+      -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,
+     598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,
+      -1,   609,   610,    -1,   612,   613,   614,    -1,     5,   617,
+       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
+      -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,    26,
+      27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,
+      -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,
+      -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,
+      -1,    58,    59,    -1,    61,    62,    -1,    64,    65,    66,
+      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
+      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
+      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    96,
+      97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,
+      -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,
+      -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,
+      -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
+     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
+     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
+      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
+     167,   168,   169,   170,   171,    -1,    -1,   174,   175,   176,
+      -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,
+     187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,
+     197,   198,   199,   200,   201,   202,    -1,   204,    -1,    -1,
+      -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,
+     217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,
+     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
+      -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,
+      -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,
+     257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,   266,
+      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
+      -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,    -1,   301,   302,   303,    -1,   305,   306,
+     307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,
+     317,   318,   319,   320,   321,    -1,    -1,   324,   325,    -1,
+     327,    -1,   329,    -1,   331,   332,   333,   334,   335,   336,
+     337,   338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,
+     347,   348,   349,   350,    -1,    -1,    -1,   354,   355,    -1,
+      -1,    -1,    -1,   360,   361,   362,    -1,   364,   365,   366,
+     367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   379,   380,   381,    -1,    -1,   384,    -1,   386,
+     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
+     397,    -1,    -1,   400,   401,   402,    -1,   404,    -1,   406,
+     407,   408,   409,   410,    -1,   412,   413,   414,    -1,    -1,
+     417,    -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,
+      -1,   428,   429,   430,   431,   432,    -1,   434,   435,    -1,
+     437,   438,   439,    -1,    -1,   442,    -1,   444,    -1,   446,
+     447,    -1,   449,   450,    -1,    -1,    -1,   454,   455,   456,
+     457,   458,   459,   460,   461,   462,   463,    -1,   465,   466,
+      -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,
+     477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,
+      -1,   488,   489,   490,   491,   492,   493,    -1,    -1,    -1,
+      -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,
+      -1,    -1,   509,   510,   511,    -1,    -1,   514,   515,    -1,
+     517,   518,   519,   520,   521,   522,    -1,    -1,   525,   526,
+     527,   528,    -1,   530,   531,    -1,   533,    -1,   535,   536,
+     537,   538,    -1,   540,   541,   542,    -1,   544,   545,   546,
+     547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,
+      -1,    -1,   559,   560,   561,   562,    -1,   564,   565,    -1,
+     567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,
+     577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,    -1,
+      -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,
+     597,   598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,
+      -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,     5,
+     617,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
+      -1,    -1,    18,    19,    -1,    21,    -1,    23,    24,    25,
+      26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
+      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,
+      46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,
+      56,    -1,    58,    59,    -1,    61,    62,    -1,    64,    65,
+      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
+      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
+      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
+      96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
+      -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,
+      -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,
+      -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,
+      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
+      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
+     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
+     166,   167,   168,   169,   170,   171,    -1,    -1,   174,   175,
+     176,    -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,
+      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
+      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
+      -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,
+     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,
+      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
+      -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,
+     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
+     256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,
+      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
+     276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,    -1,   301,   302,   303,    -1,   305,
+     306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,
+     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
+      -1,   327,    -1,   329,    -1,   331,   332,   333,   334,   335,
+     336,   337,   338,   339,   340,    -1,    -1,   343,   344,    -1,
+      -1,   347,   348,   349,   350,    -1,    -1,    -1,   354,   355,
+      -1,    -1,    -1,    -1,   360,   361,   362,    -1,   364,   365,
+     366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   379,   380,   381,    -1,    -1,   384,    -1,
+     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
+     396,   397,    -1,    -1,   400,   401,   402,    -1,   404,    -1,
+     406,   407,   408,   409,   410,    -1,   412,   413,   414,    -1,
+      -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,   425,
+      -1,    -1,   428,   429,   430,   431,   432,    -1,   434,   435,
+      -1,   437,   438,   439,    -1,    -1,   442,    -1,   444,    -1,
+     446,   447,    -1,   449,   450,    -1,    -1,    -1,   454,   455,
+     456,   457,   458,   459,   460,   461,   462,   463,    -1,   465,
+     466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,
+      -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,
+     486,    -1,   488,   489,   490,   491,   492,   493,    -1,    -1,
+      -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,
+     506,    -1,    -1,   509,   510,   511,    -1,    -1,   514,   515,
+      -1,   517,   518,   519,   520,   521,   522,    -1,    -1,   525,
+     526,   527,   528,    -1,   530,   531,    -1,   533,    -1,   535,
+     536,   537,   538,    -1,   540,   541,   542,    -1,   544,   545,
+     546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,
+      -1,    -1,    -1,   559,   560,   561,   562,    -1,   564,   565,
+      -1,   567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,
+      -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,
+      -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,
+      -1,   597,   598,   599,   600,   601,   602,    -1,    -1,    -1,
+      -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,
+       5,   617,     7,     8,     9,    10,    11,    -1,    -1,    14,
+      -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,
+      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,
+      35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,
+      -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,
+      55,    56,    -1,    58,    59,    -1,    61,    62,    -1,    64,
+      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
+      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
+      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
+      95,    96,    97,    98,    99,    -1,    -1,   102,    -1,    -1,
+     105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,
+     115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,
+      -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,
+     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
+      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
+     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
+      -1,   166,   167,   168,   169,   170,   171,    -1,   173,   174,
+     175,   176,    -1,    -1,   179,   180,    -1,   182,   183,   184,
+      -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
+     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
+      -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,
+      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
+      -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
+      -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,
+     245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,
+      -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,
+     265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
+      -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,    -1,   301,   302,   303,    -1,
+     305,   306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,
+      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
+     325,    -1,   327,    -1,   329,    -1,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,    -1,    -1,   343,   344,
+      -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,   354,
+     355,    -1,    -1,    -1,    -1,   360,   361,   362,    -1,   364,
+     365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   379,   380,   381,    -1,    -1,   384,
+      -1,   386,   387,   388,   389,   390,   391,   392,   393,   394,
+     395,   396,   397,    -1,    -1,   400,   401,   402,    -1,   404,
+      -1,   406,   407,   408,   409,   410,    -1,   412,   413,   414,
+      -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,
+     425,    -1,    -1,   428,   429,   430,   431,   432,    -1,   434,
+     435,    -1,   437,   438,   439,    -1,    -1,   442,    -1,   444,
+      -1,   446,   447,    -1,   449,   450,    -1,    -1,    -1,   454,
+     455,   456,   457,   458,   459,   460,   461,   462,   463,    -1,
+     465,   466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,
+      -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,
+     485,   486,    -1,   488,   489,   490,   491,   492,   493,    -1,
+      -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,
+      -1,   506,    -1,    -1,   509,   510,   511,    -1,    -1,   514,
+     515,    -1,   517,   518,   519,   520,   521,   522,    -1,    -1,
+     525,   526,   527,   528,    -1,   530,   531,    -1,   533,    -1,
+     535,   536,   537,   538,    -1,    -1,   541,   542,    -1,   544,
+     545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,
+     555,    -1,    -1,    -1,   559,   560,   561,   562,    -1,   564,
+     565,    -1,   567,   568,    -1,   570,   571,    -1,    -1,   574,
+      -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,
+      -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,
+      -1,    -1,   597,   598,   599,   600,   601,   602,    -1,    -1,
+      -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,
+      -1,     5,   617,     7,     8,     9,    10,    11,    -1,    -1,
+      14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,
+      24,    25,    26,    27,    28,    29,    -1,    31,    -1,    -1,
       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,    53,
-      -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,
+      44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,
+      -1,    55,    56,    -1,    58,    59,    -1,    61,    62,    -1,
       64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    83,
-      -1,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,    -1,
+      74,    75,    76,    77,    78,    79,    -1,    81,    82,    83,
+      84,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
+      94,    95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,
       -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
      114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-      -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
+     124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
       -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-      -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
+     144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
       -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,   181,   182,   183,
-     184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,   193,
+     164,    -1,   166,   167,   168,   169,   170,   171,    -1,    -1,
+     174,   175,   176,    -1,    -1,   179,   180,    -1,   182,   183,
+     184,    -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,
       -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,    -1,
-      -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,   253,
-      -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,    -1,
+     204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,
+      -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,
+     224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,
+      -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,
+      -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,
+      -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,
      264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
      274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-     284,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
+      -1,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
      294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
       -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
       -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
      324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,    -1,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,
-      -1,   385,   386,   387,    -1,   389,   390,   391,   392,   393,
-     394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-      -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,    -1,
-      -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,    -1,
-     454,   455,   456,   457,   458,   459,    -1,   461,   462,    -1,
-     464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,   483,
-      -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,    -1,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,   573,
-      -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-     604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
+     334,   335,   336,   337,   338,   339,   340,    -1,    -1,   343,
+     344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,
+     354,   355,    -1,    -1,    -1,    -1,   360,   361,   362,    -1,
+     364,   365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,    -1,
+     384,    -1,   386,   387,   388,   389,   390,   391,   392,   393,
+     394,   395,   396,   397,    -1,    -1,   400,   401,   402,    -1,
+     404,    -1,   406,   407,   408,   409,   410,    -1,   412,   413,
+     414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,
+     424,   425,    -1,    -1,   428,   429,   430,   431,   432,    -1,
+     434,   435,    -1,   437,   438,   439,    -1,    -1,   442,    -1,
+     444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,    -1,
+     454,   455,   456,   457,   458,   459,   460,   461,   462,   463,
+      -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,   473,
+      -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,
+     484,   485,   486,    -1,   488,   489,   490,   491,   492,   493,
+      -1,    -1,    -1,   497,    -1,    -1,   500,   501,    -1,   503,
+      -1,    -1,   506,    -1,    -1,   509,   510,   511,    -1,    -1,
+     514,   515,    -1,   517,   518,   519,   520,   521,   522,    -1,
+      -1,   525,   526,   527,   528,    -1,   530,   531,    -1,   533,
+      -1,   535,   536,   537,   538,    -1,    -1,   541,   542,    -1,
+     544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,
+     554,   555,    -1,    -1,    -1,   559,   560,   561,   562,    -1,
+     564,   565,    -1,   567,   568,    -1,   570,   571,    -1,    -1,
+     574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,
+      -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,
+      -1,    -1,    -1,   597,   598,   599,   600,   601,   602,    -1,
+      -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,
+     614,    -1,     5,   617,     7,     8,     9,    10,    11,    -1,
+      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,    -1,
+      23,    24,    25,    26,    27,    28,    29,    -1,    31,    -1,
+      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
+      43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,    52,
+      -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,    62,
+      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
+      73,    74,    75,    76,    77,    78,    79,    -1,    81,    82,
+      83,    84,    85,    86,    87,    88,    -1,    90,    91,    -1,
+      93,    94,    95,    96,    97,    -1,    99,    -1,    -1,   102,
+      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
+     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
+     123,   124,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
+      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
+      -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,
+     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
+     163,   164,    -1,   166,   167,   168,   169,   170,   171,    -1,
+      -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,   182,
+     183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,   192,
+     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
+      -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,   212,
+      -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,   222,
+     223,   224,    -1,    -1,   227,   228,   229,    -1,   231,    -1,
+     233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,    -1,
+     243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,    -1,
+     253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,    -1,
+      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
+      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
+     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
+      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
+      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
+     333,   334,   335,   336,   337,   338,   339,   340,    -1,    -1,
+     343,   344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,
+      -1,   354,   355,    -1,    -1,    -1,    -1,   360,   361,   362,
+      -1,   364,   365,   366,   367,    -1,   369,   370,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,    -1,
+      -1,   384,    -1,   386,   387,   388,   389,   390,   391,   392,
+     393,   394,   395,   396,   397,    -1,    -1,   400,   401,   402,
+      -1,   404,    -1,   406,   407,   408,   409,   410,    -1,   412,
+     413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,
+     423,   424,   425,    -1,    -1,   428,   429,   430,   431,   432,
+      -1,   434,   435,    -1,   437,   438,   439,    -1,    -1,   442,
+      -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,    -1,
+      -1,   454,   455,   456,   457,   458,   459,   460,   461,   462,
+     463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,   472,
+     473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,
+     483,   484,   485,   486,    -1,   488,   489,   490,   491,   492,
+     493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,
+     503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,    -1,
+      -1,   514,   515,    -1,   517,   518,   519,   520,   521,   522,
+      -1,    -1,   525,   526,   527,   528,    -1,   530,   531,    -1,
+     533,    -1,   535,   536,   537,   538,    -1,    -1,   541,   542,
+      -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,
+     553,   554,   555,    -1,    -1,    -1,   559,   560,   561,   562,
+      -1,   564,   565,    -1,   567,   568,    -1,   570,   571,    -1,
+      -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,   582,
+     583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,
+     593,    -1,    -1,    -1,   597,   598,   599,   600,   601,   602,
+      -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,   612,
+     613,   614,    -1,     5,   617,     7,     8,     9,    10,    11,
+      -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    21,
+      -1,    23,    24,    25,    26,    27,    28,    29,    -1,    31,
+      -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
+      42,    43,    44,    -1,    46,    -1,    48,    49,    -1,    -1,
+      52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,    61,
+      62,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
+      72,    73,    74,    75,    76,    77,    78,    79,    -1,    81,
+      82,    83,    84,    85,    86,    87,    88,    -1,    90,    91,
+      -1,    93,    94,    95,    96,    97,    -1,    99,    -1,    -1,
+     102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,
+      -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,
+      -1,   123,   124,    -1,    -1,    -1,   128,   129,    -1,   131,
+      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
+      -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,    -1,
+      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
+      -1,   163,   164,    -1,   166,   167,   168,   169,   170,   171,
+      -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,    -1,
+     182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,   191,
+      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
+     202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,    -1,
+     212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,   221,
+     222,   223,   224,    -1,    -1,   227,   228,   229,    -1,   231,
+      -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,    -1,
+      -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,    -1,
+      -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,   261,
+      -1,    -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,
+     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   287,   288,   289,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
+     302,   303,    -1,   305,   306,   307,   308,    -1,   310,   311,
+      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
+      -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,
+     332,   333,   334,   335,   336,   337,   338,   339,   340,    -1,
+      -1,   343,   344,    -1,    -1,   347,   348,   349,   350,    -1,
+      -1,    -1,   354,   355,    -1,    -1,    -1,    -1,   360,   361,
+     362,    -1,   364,   365,   366,   367,    -1,   369,   370,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,   381,
+      -1,    -1,   384,    -1,   386,   387,   388,   389,   390,   391,
+     392,   393,   394,   395,   396,   397,    -1,    -1,   400,   401,
+     402,    -1,   404,    -1,   406,   407,   408,   409,   410,    -1,
+     412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,
+     422,   423,   424,   425,    -1,    -1,   428,   429,   430,   431,
+     432,    -1,   434,   435,    -1,   437,   438,   439,    -1,    -1,
+     442,    -1,   444,    -1,   446,   447,    -1,   449,   450,    -1,
+      -1,    -1,   454,   455,   456,   457,   458,   459,   460,   461,
+     462,   463,    -1,   465,   466,    -1,    -1,    -1,   470,   471,
+     472,   473,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,
+      -1,   483,   484,   485,   486,    -1,   488,   489,   490,   491,
+     492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,
+      -1,   503,    -1,    -1,   506,    -1,    -1,   509,   510,   511,
+      -1,    -1,   514,   515,    -1,   517,   518,   519,   520,   521,
+     522,    -1,    -1,   525,   526,   527,   528,    -1,   530,   531,
+      -1,   533,    -1,   535,   536,   537,   538,    -1,    -1,   541,
+     542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,
+      -1,   553,   554,   555,    -1,    -1,    -1,   559,   560,   561,
+     562,    -1,   564,   565,    -1,   567,   568,    -1,   570,   571,
+      -1,    -1,   574,    -1,    -1,   577,    -1,   579,    -1,   581,
+     582,   583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,
+      -1,   593,    -1,    -1,    -1,   597,   598,   599,   600,   601,
+     602,    -1,    -1,    -1,    -1,    -1,    -1,   609,   610,    -1,
+     612,   613,   614,    -1,     5,   617,     7,     8,     9,    10,
+      11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,
+      21,    -1,    23,    24,    25,    26,    27,    28,    29,    -1,
+      31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,
+      -1,    42,    43,    44,    -1,    46,    -1,    48,    49,    -1,
+      -1,    52,    -1,    -1,    55,    56,    -1,    58,    59,    -1,
+      61,    62,    -1,    64,    65,    66,    67,    68,    69,    70,
+      -1,    72,    73,    74,    75,    76,    77,    78,    79,    -1,
+      81,    82,    83,    84,    85,    86,    87,    88,    -1,    90,
+      91,    -1,    93,    94,    95,    96,    97,    -1,    99,    -1,
+      -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,
+      -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,
+      -1,    -1,   123,   124,    -1,    -1,    -1,   128,   129,    -1,
+     131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
+      -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,    -1,
+      -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,   160,
+      -1,    -1,   163,   164,    -1,   166,   167,   168,   169,   170,
+     171,    -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,
+      -1,   182,   183,   184,    -1,    -1,   187,    -1,    -1,    -1,
+     191,    -1,   193,    -1,   195,    -1,   197,   198,   199,   200,
+     201,   202,    -1,   204,    -1,    -1,    -1,   208,   209,   210,
+      -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,    -1,
+     221,   222,   223,   224,    -1,    -1,   227,   228,   229,    -1,
+     231,    -1,   233,    -1,    -1,    -1,    -1,   238,   239,    -1,
+      -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,    -1,
+      -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,    -1,
+     261,    -1,    -1,   264,   265,    -1,    -1,    -1,    -1,    -1,
+     271,   272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   287,   288,   289,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
+     301,   302,   303,    -1,   305,   306,   307,   308,    -1,   310,
+     311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,
+     321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,
+     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
+      -1,    -1,   343,   344,    -1,    -1,   347,   348,   349,   350,
+      -1,    -1,    -1,   354,   355,    -1,    -1,    -1,    -1,   360,
+     361,   362,    -1,   364,   365,   366,   367,    -1,   369,   370,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,   380,
+     381,    -1,    -1,   384,    -1,   386,   387,   388,   389,   390,
+     391,   392,   393,   394,   395,   396,   397,    -1,    -1,   400,
+     401,   402,    -1,   404,    -1,   406,   407,   408,   409,   410,
+      -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,
+     421,   422,   423,   424,   425,    -1,    -1,   428,   429,   430,
+     431,   432,    -1,   434,   435,    -1,   437,   438,   439,    -1,
+      -1,   442,    -1,   444,    -1,   446,   447,    -1,   449,   450,
+      -1,    -1,    -1,   454,   455,   456,   457,   458,   459,   460,
+     461,   462,   463,    -1,   465,   466,    -1,    -1,    -1,   470,
+     471,   472,   473,    -1,    -1,    -1,   477,    -1,    -1,    -1,
+     481,    -1,   483,   484,   485,   486,    -1,   488,   489,   490,
+     491,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,
+     501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,   510,
+     511,    -1,    -1,   514,   515,    -1,   517,   518,   519,   520,
+     521,   522,    -1,    -1,   525,   526,   527,   528,    -1,   530,
+     531,    -1,   533,    -1,   535,   536,   537,   538,    -1,    -1,
+     541,   542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,
+      -1,    -1,   553,   554,   555,    -1,    -1,    -1,   559,   560,
+     561,   562,    -1,   564,   565,    -1,   567,   568,    -1,   570,
+     571,    -1,    -1,   574,    -1,    -1,   577,    -1,   579,    -1,
+     581,   582,   583,    -1,    -1,    -1,    -1,    -1,    -1,   590,
+      -1,    -1,   593,    -1,    -1,    -1,   597,   598,   599,   600,
+     601,   602,    -1,    -1,    -1,    -1,    -1,    -1,   609,   610,
+      -1,   612,   613,   614,    -1,     5,   617,     7,     8,     9,
+      10,    11,    12,    -1,    14,    -1,    -1,    -1,    18,    -1,
+      -1,    21,    -1,    23,    24,    25,    26,    27,    28,    29,
+      -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,
+      -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,    49,
+      -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,    59,
+      -1,    61,    62,    -1,    64,    65,    66,    67,    68,    69,
+      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
+      -1,    81,    82,    83,    84,    85,    86,    87,    88,    -1,
+      90,    91,    -1,    93,    94,    95,    96,    97,    -1,    99,
+      -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,
+      -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,
+      -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,   129,
+      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
+     140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,   149,
+      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
+     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
+     170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,   179,
+     180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,    -1,
+      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
+     200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,   209,
+     210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,    -1,
+      -1,   221,   222,   223,   224,    -1,    -1,   227,   228,   229,
+      -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,   239,
+      -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
+      -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,    -1,
+      -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,    -1,
+      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+      -1,   301,   302,   303,    -1,   305,   306,   307,   308,    -1,
+     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
+     320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,
+      -1,   331,   332,   333,   334,   335,   336,   337,   338,   339,
+     340,    -1,    -1,   343,   344,    -1,    -1,   347,   348,   349,
+     350,    -1,    -1,    -1,   354,   355,    -1,    -1,    -1,    -1,
+     360,   361,   362,    -1,   364,   365,   366,   367,    -1,   369,
+     370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   379,
+     380,   381,    -1,    -1,   384,    -1,   386,   387,   388,   389,
+     390,   391,   392,   393,   394,   395,   396,   397,    -1,    -1,
+     400,   401,   402,    -1,   404,    -1,   406,   407,   408,   409,
+     410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,
+      -1,   421,   422,   423,   424,   425,    -1,    -1,   428,   429,
+     430,   431,   432,    -1,   434,   435,    -1,   437,   438,   439,
+      -1,    -1,   442,    -1,   444,    -1,   446,   447,    -1,   449,
+     450,    -1,    -1,    -1,   454,   455,   456,   457,   458,   459,
+     460,   461,   462,   463,    -1,   465,   466,    -1,    -1,    -1,
+     470,   471,   472,   473,    -1,    -1,    -1,   477,    -1,    -1,
+      -1,   481,    -1,   483,   484,   485,   486,    -1,   488,   489,
+     490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,
+     500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,
+     510,   511,    -1,    -1,   514,   515,    -1,   517,   518,   519,
+     520,   521,   522,    -1,    -1,   525,   526,   527,   528,    -1,
+     530,   531,    -1,   533,    -1,   535,   536,   537,   538,    -1,
+      -1,   541,   542,    -1,   544,   545,   546,   547,    -1,    -1,
+      -1,    -1,    -1,   553,   554,   555,    -1,    -1,    -1,   559,
+     560,   561,   562,    -1,   564,   565,    -1,   567,   568,    -1,
+     570,   571,    -1,    -1,   574,    -1,    -1,   577,    -1,   579,
+      -1,   581,   582,   583,    -1,    -1,    -1,    -1,    -1,    -1,
+     590,    -1,    -1,   593,    -1,    -1,    -1,   597,   598,   599,
+     600,   601,   602,    -1,    -1,    -1,    -1,    -1,    -1,   609,
+     610,    -1,   612,   613,   614,    -1,     5,   617,     7,     8,
+       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
+      -1,    -1,    21,    -1,    23,    24,    25,    26,    27,    28,
+      29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
+      39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,    48,
+      49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,    58,
+      59,    -1,    61,    62,    -1,    64,    65,    66,    67,    68,
+      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
+      79,    -1,    81,    82,    83,    84,    85,    86,    87,    88,
+      -1,    90,    91,    -1,    93,    94,    95,    96,    97,    -1,
+      99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,
+     109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,
+      -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,    -1,
+     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
+     139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,   148,
+     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
+     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
+     169,   170,   171,    -1,    -1,   174,   175,   176,    -1,    -1,
+     179,   180,    -1,   182,   183,   184,    -1,    -1,   187,    -1,
+      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
+     199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,   208,
+     209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,    -1,
+      -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,   228,
+     229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,
+     239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
+     249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,   258,
+      -1,    -1,   261,    -1,    -1,   264,   265,    -1,    -1,    -1,
+      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
+     279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,   288,
+     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,    -1,   301,   302,   303,    -1,   305,   306,   307,   308,
+      -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
+     319,   320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,
+     329,    -1,   331,   332,   333,   334,   335,   336,   337,   338,
+     339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,   348,
+     349,   350,    -1,    -1,    -1,   354,   355,    -1,    -1,    -1,
+      -1,   360,   361,   362,    -1,   364,   365,   366,   367,    -1,
+     369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     379,   380,   381,    -1,    -1,   384,    -1,   386,   387,   388,
+     389,   390,   391,   392,   393,   394,   395,   396,   397,    -1,
+      -1,   400,   401,   402,   403,   404,    -1,   406,   407,   408,
+     409,   410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,
+      -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,   428,
+     429,   430,   431,   432,    -1,   434,   435,    -1,   437,   438,
+     439,    -1,    -1,   442,    -1,   444,    -1,   446,   447,    -1,
+     449,   450,    -1,    -1,    -1,   454,   455,   456,   457,   458,
+     459,   460,   461,   462,   463,    -1,   465,   466,    -1,    -1,
+      -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,    -1,
+      -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,   488,
+     489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,    -1,
+      -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,
+     509,   510,   511,    -1,    -1,   514,   515,    -1,   517,   518,
+     519,   520,   521,   522,    -1,    -1,   525,   526,   527,   528,
+      -1,   530,   531,    -1,   533,    -1,   535,   536,   537,   538,
+      -1,    -1,   541,   542,    -1,   544,   545,   546,   547,    -1,
+      -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,    -1,
+     559,   560,   561,   562,    -1,   564,   565,    -1,   567,   568,
+      -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,    -1,
+     579,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,    -1,
+      -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,   598,
+     599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,    -1,
+     609,   610,    -1,   612,   613,   614,    -1,     5,   617,     7,
+       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
+      18,    -1,    -1,    21,    -1,    23,    24,    25,    26,    27,
+      28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
+      -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,
+      48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,    -1,
+      58,    59,    -1,    61,    62,    -1,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    74,    75,    76,    77,
+      78,    79,    -1,    81,    82,    83,    84,    85,    86,    87,
+      88,    -1,    90,    91,    -1,    93,    94,    95,    96,    97,
+      -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,
+      -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,
+     118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,    -1,
+      -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
+     138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,   147,
+     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
+     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
+     168,   169,   170,   171,    -1,    -1,   174,   175,   176,    -1,
+      -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,   187,
+      -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,
+     198,   199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,
+     208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,   217,
+      -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,   227,
+     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,
+     238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,
+     248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,   257,
+     258,    -1,    -1,   261,    -1,    -1,   264,   265,    -1,    -1,
+      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
+     278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,    -1,   301,   302,   303,    -1,   305,   306,   307,
+     308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
+     318,   319,   320,   321,    -1,    -1,   324,   325,    -1,   327,
+      -1,   329,    -1,   331,   332,   333,   334,   335,   336,   337,
+     338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,
+     348,   349,   350,    -1,    -1,    -1,   354,   355,    -1,    -1,
+      -1,    -1,   360,   361,   362,    -1,   364,   365,   366,   367,
+      -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   379,   380,   381,    -1,    -1,   384,    -1,   386,   387,
+     388,   389,   390,   391,   392,   393,   394,   395,   396,   397,
+      -1,    -1,   400,   401,   402,    -1,   404,    -1,   406,   407,
+     408,   409,   410,    -1,   412,   413,   414,    -1,    -1,   417,
+      -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,
+     428,   429,   430,   431,   432,    -1,   434,   435,    -1,   437,
+     438,   439,    -1,    -1,   442,    -1,   444,    -1,   446,   447,
+      -1,   449,   450,    -1,    -1,    -1,   454,   455,   456,   457,
+     458,   459,   460,   461,   462,   463,    -1,   465,   466,    -1,
+      -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,   477,
+      -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,    -1,
+     488,   489,   490,   491,   492,   493,    -1,    -1,    -1,    -1,
+      -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,
+      -1,   509,   510,   511,    -1,    -1,   514,   515,    -1,   517,
+     518,   519,   520,   521,   522,    -1,    -1,   525,   526,   527,
+     528,    -1,   530,   531,    -1,   533,    -1,   535,   536,   537,
+     538,    -1,   540,   541,   542,    -1,   544,   545,   546,   547,
+      -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,
+      -1,   559,   560,   561,   562,    -1,   564,   565,    -1,   567,
+     568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,   577,
+      -1,   579,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,
+      -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,
+     598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,    -1,
+      -1,   609,   610,    -1,   612,   613,   614,    -1,     5,   617,
+       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
+      -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,    26,
+      27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,    -1,
+      -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,
+      -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,    56,
+      -1,    58,    59,    -1,    61,    62,    -1,    64,    65,    66,
+      67,    68,    69,    70,    -1,    72,    73,    74,    75,    76,
+      77,    78,    79,    -1,    81,    82,    83,    84,    85,    86,
+      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    96,
+      97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,
+      -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,
+      -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,    -1,
+      -1,   128,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
+     137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,    -1,
+     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
+      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
+     167,   168,   169,   170,   171,    -1,    -1,   174,   175,   176,
+      -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,    -1,
+     187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,
+     197,   198,   199,   200,   201,   202,    -1,   204,    -1,    -1,
+      -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,   216,
+     217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,    -1,
+     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
+      -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,   246,
+      -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,   256,
+     257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,    -1,
+      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
+      -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,    -1,   301,   302,   303,    -1,   305,   306,
+     307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,
+     317,   318,   319,   320,   321,    -1,    -1,   324,   325,    -1,
+     327,    -1,   329,    -1,   331,   332,   333,   334,   335,   336,
+     337,   338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,
+     347,   348,   349,   350,    -1,    -1,    -1,   354,   355,    -1,
+      -1,    -1,    -1,   360,   361,   362,    -1,   364,   365,   366,
+     367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   379,   380,   381,    -1,    -1,   384,    -1,   386,
+     387,   388,   389,   390,   391,   392,   393,   394,   395,   396,
+     397,    -1,    -1,   400,   401,   402,    -1,   404,    -1,   406,
+     407,   408,   409,   410,    -1,   412,   413,   414,    -1,    -1,
+     417,    -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,
+      -1,   428,   429,   430,   431,   432,    -1,   434,   435,    -1,
+     437,   438,   439,    -1,    -1,   442,    -1,   444,    -1,   446,
+     447,    -1,   449,   450,    -1,    -1,    -1,   454,   455,   456,
+     457,   458,   459,   460,   461,   462,   463,    -1,   465,   466,
+      -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,    -1,
+     477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,   486,
+      -1,   488,   489,   490,   491,   492,   493,    -1,    -1,    -1,
+      -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,
+      -1,    -1,   509,   510,   511,    -1,    -1,   514,   515,    -1,
+     517,   518,   519,   520,   521,   522,    -1,    -1,   525,   526,
+     527,   528,    -1,   530,   531,    -1,   533,    -1,   535,   536,
+     537,   538,    -1,    -1,   541,   542,    -1,   544,   545,   546,
+     547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,
+      -1,    -1,   559,   560,   561,   562,    -1,   564,   565,    -1,
+     567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,    -1,
+     577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,    -1,
+      -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,
+     597,   598,   599,   600,   601,   602,    -1,    -1,    -1,    -1,
+      -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,     5,
+     617,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
+      -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,    25,
+      26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,    35,
+      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,
+      46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,    55,
+      56,    -1,    58,    59,    -1,    61,    62,    -1,    64,    65,
+      66,    67,    68,    69,    70,    -1,    72,    73,    74,    75,
+      76,    77,    78,    79,    -1,    81,    82,    83,    84,    85,
+      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
+      96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
+      -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,
+      -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,    -1,
+      -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,
+      -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,    -1,
+      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,
+     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
+     166,   167,   168,   169,   170,   171,    -1,    -1,   174,   175,
+     176,    -1,    -1,   179,   180,    -1,   182,   183,   184,    -1,
+      -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
+      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
+      -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,    -1,
+     216,   217,    -1,    -1,    -1,   221,   222,   223,   224,    -1,
+      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
+      -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,   245,
+     246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,    -1,
+     256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,   265,
+      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
+     276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,    -1,   301,   302,   303,    -1,   305,
+     306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,
+     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
+      -1,   327,    -1,   329,    -1,   331,   332,   333,   334,   335,
+     336,   337,   338,   339,   340,    -1,    -1,   343,   344,    -1,
+      -1,   347,   348,   349,   350,    -1,    -1,    -1,   354,   355,
+      -1,    -1,    -1,    -1,   360,   361,   362,    -1,   364,   365,
+     366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   379,   380,   381,    -1,    -1,   384,    -1,
+     386,   387,   388,   389,   390,   391,   392,   393,   394,   395,
+     396,   397,    -1,    -1,   400,   401,   402,    -1,   404,    -1,
+     406,   407,   408,   409,   410,    -1,   412,   413,   414,    -1,
+      -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,   425,
+      -1,    -1,   428,   429,   430,   431,   432,    -1,   434,   435,
+      -1,   437,   438,   439,    -1,    -1,   442,    -1,   444,    -1,
+     446,   447,    -1,   449,   450,    -1,    -1,    -1,   454,   455,
+     456,   457,   458,   459,   460,   461,   462,   463,    -1,   465,
+     466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,    -1,
+      -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,   485,
+     486,    -1,   488,   489,   490,   491,   492,   493,    -1,    -1,
+      -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,
+     506,    -1,    -1,   509,   510,   511,    -1,    -1,   514,   515,
+      -1,   517,   518,   519,   520,   521,   522,    -1,    -1,   525,
+     526,   527,   528,    -1,   530,   531,    -1,   533,    -1,   535,
+     536,   537,   538,    -1,    -1,   541,   542,    -1,   544,   545,
+     546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,
+      -1,    -1,    -1,   559,   560,   561,   562,    -1,   564,   565,
+      -1,   567,   568,    -1,   570,   571,    -1,    -1,   574,    -1,
+      -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,    -1,
+      -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,
+      -1,   597,   598,   599,   600,   601,   602,    -1,    -1,    -1,
+      -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,    -1,
+       5,   617,     7,     8,     9,    10,    11,    -1,    -1,    14,
+      -1,    -1,    -1,    18,    -1,    -1,    21,    -1,    23,    24,
+      25,    26,    27,    28,    29,    -1,    31,    -1,    -1,    -1,
+      35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,
+      -1,    46,    -1,    48,    49,    -1,    -1,    52,    -1,    -1,
+      55,    56,    -1,    58,    59,    -1,    61,    62,    -1,    64,
+      65,    66,    67,    68,    69,    70,    -1,    72,    73,    74,
+      75,    76,    77,    78,    79,    -1,    81,    82,    83,    84,
+      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
+      95,    96,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,
+     105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,
+     115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,   124,
+      -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,
+     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,   144,
+      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
+     155,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
+      -1,   166,   167,   168,   169,   170,   171,    -1,    -1,   174,
+     175,   176,    -1,    -1,   179,   180,    -1,   182,   183,   184,
+      -1,    -1,   187,    -1,    -1,    -1,   191,    -1,   193,    -1,
+     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
+      -1,    -1,    -1,   208,   209,   210,    -1,   212,    -1,    -1,
+      -1,   216,   217,    -1,    -1,    -1,   221,   222,   223,   224,
+      -1,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
+      -1,    -1,    -1,   238,   239,    -1,    -1,    -1,   243,    -1,
+     245,   246,    -1,   248,   249,    -1,    -1,    -1,   253,    -1,
+      -1,   256,   257,   258,    -1,    -1,   261,    -1,    -1,   264,
+     265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
+      -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,    -1,   301,   302,   303,    -1,
+     305,   306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,
+      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
+     325,    -1,   327,    -1,   329,    -1,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,    -1,    -1,   343,   344,
+      -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,   354,
+     355,    -1,    -1,    -1,    -1,   360,   361,   362,    -1,   364,
+     365,   366,   367,    -1,   369,   370,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   379,   380,   381,    -1,    -1,   384,
+      -1,   386,   387,   388,   389,   390,   391,   392,   393,   394,
+     395,   396,   397,    -1,    -1,   400,   401,   402,    -1,   404,
+      -1,   406,   407,   408,   409,   410,    -1,   412,   413,   414,
+      -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,
+     425,    -1,    -1,   428,   429,   430,   431,   432,    -1,   434,
+     435,    -1,   437,   438,   439,    -1,    -1,   442,    -1,   444,
+      -1,   446,   447,    -1,   449,   450,    -1,    -1,    -1,   454,
+     455,   456,   457,   458,   459,   460,   461,   462,   463,    -1,
+     465,   466,    -1,    -1,    -1,   470,   471,   472,   473,    -1,
+      -1,    -1,   477,    -1,    -1,    -1,   481,    -1,   483,   484,
+     485,   486,    -1,   488,   489,   490,   491,   492,   493,    -1,
+      -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,
+      -1,   506,    -1,    -1,   509,   510,   511,    -1,    -1,   514,
+     515,    -1,   517,   518,   519,   520,   521,   522,    -1,    -1,
+     525,   526,   527,   528,    -1,   530,   531,    -1,   533,    -1,
+     535,   536,   537,   538,    -1,    -1,   541,   542,    -1,   544,
+     545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,
+     555,    -1,    -1,    -1,   559,   560,   561,   562,    -1,   564,
+     565,    -1,   567,   568,    -1,   570,   571,    -1,    -1,   574,
+      -1,    -1,   577,    -1,   579,    -1,   581,   582,   583,    -1,
+      -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,
+      -1,    -1,   597,   598,   599,   600,   601,   602,    -1,    -1,
+      -1,    -1,    -1,    -1,   609,   610,    -1,   612,   613,   614,
+      -1,     5,   617,     7,     8,     9,    10,    11,    -1,    -1,
       14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    23,
       24,    25,    26,    27,    28,    -1,    -1,    31,    -1,    -1,
       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
@@ -16899,7 +16498,7 @@ static const yytype_int16 yycheck[] =
      114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
       -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
       -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-      -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
+      -1,    -1,    -1,   147,   148,   149,    -1,   151,   152,   153,
       -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,   163,
      164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,
      174,   175,   176,    -1,    -1,   179,   180,   181,   182,   183,
@@ -16918,157 +16517,585 @@ static const yytype_int16 yycheck[] =
       -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
       -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
      324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,    -1,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,
-      -1,   385,   386,   387,    -1,   389,   390,   391,   392,   393,
-     394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-      -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,    -1,
-      -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,    -1,
-     454,   455,   456,   457,   458,   459,    -1,   461,   462,    -1,
-     464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,   483,
-      -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,    -1,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,   573,
-      -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-     604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    23,
-      24,    25,    26,    27,    28,    -1,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,    53,
-      -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    83,
-      -1,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-      -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-      -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,    -1,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,   181,   182,   183,
-     184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,    -1,
-      -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,   253,
-      -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-     284,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,    -1,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,
-      -1,   385,   386,   387,    -1,   389,   390,   391,   392,   393,
-     394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-      -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,    -1,
-      -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,    -1,
-     454,   455,   456,   457,   458,   459,    -1,   461,   462,    -1,
-     464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,   483,
-      -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,    -1,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,   573,
-      -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-     604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
-      14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    23,
-      24,    25,    26,    27,    28,    -1,    -1,    31,    -1,    -1,
-      -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
-      44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,    53,
-      -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,
-      64,    65,    66,    67,    68,    69,    70,    -1,    72,    73,
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    83,
-      -1,    85,    86,    87,    88,    -1,    90,    91,    -1,    93,
-      94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,    -1,
-      -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,
-     114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,
-      -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,
-      -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,
-      -1,    -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,
-      -1,    -1,   156,    -1,   158,   159,   160,    -1,    -1,   163,
-     164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,
-     174,   175,   176,    -1,    -1,   179,   180,   181,   182,   183,
-     184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,   193,
-      -1,   195,    -1,   197,   198,   199,   200,   201,   202,    -1,
-     204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,    -1,
-      -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,   223,
-     224,   225,    -1,   227,   228,   229,    -1,   231,    -1,   233,
-      -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,   243,
-      -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,   253,
-      -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,    -1,
-     264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,
-     274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,
-     284,    -1,    -1,   287,   288,   289,   290,   291,   292,   293,
-     294,   295,   296,   297,   298,   299,    -1,   301,   302,   303,
-      -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
-      -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
-     324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,    -1,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,
-      -1,   385,   386,   387,    -1,   389,   390,   391,   392,   393,
-     394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-      -1,    -1,   436,    -1,   438,   439,    -1,   441,    -1,    -1,
-      -1,   445,    -1,    -1,   448,   449,   450,    -1,    -1,    -1,
-     454,   455,   456,   457,   458,   459,    -1,   461,   462,    -1,
-     464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,   483,
-      -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,    -1,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,   573,
-      -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-     604,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,   613,
-      -1,     5,   616,     7,     8,     9,    10,    11,    -1,    -1,
+     334,   335,   336,   337,   338,   339,   340,    -1,    -1,   343,
+     344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,
+      -1,   355,    -1,    -1,    -1,    -1,   360,   361,   362,    -1,
+     364,   365,   366,   367,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   380,   381,    -1,    -1,
+      -1,    -1,   386,   387,   388,    -1,   390,   391,   392,   393,
+     394,   395,   396,    -1,    -1,    -1,    -1,   401,   402,    -1,
+     404,    -1,   406,   407,   408,   409,   410,    -1,   412,   413,
+     414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,
+     424,   425,    -1,    -1,   428,   429,   430,   431,   432,    -1,
+     434,    -1,    -1,   437,    -1,   439,   440,    -1,   442,    -1,
+      -1,    -1,   446,    -1,    -1,   449,   450,   451,    -1,    -1,
+      -1,   455,   456,   457,   458,   459,   460,    -1,   462,   463,
+      -1,   465,    -1,    -1,    -1,    -1,   470,   471,   472,    -1,
+      -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,    -1,
+     484,    -1,   486,    -1,   488,    -1,   490,    -1,   492,   493,
+      -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,
+      -1,    -1,   506,    -1,    -1,   509,    -1,   511,    -1,    -1,
+      -1,   515,    -1,   517,   518,   519,   520,   521,   522,    -1,
+      -1,   525,   526,   527,   528,    -1,   530,   531,    -1,   533,
+      -1,   535,   536,   537,   538,    -1,    -1,   541,   542,    -1,
+     544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,
+     554,   555,    -1,    -1,    -1,    -1,   560,   561,   562,    -1,
+     564,   565,    -1,   567,   568,    -1,    -1,    -1,    -1,    -1,
+     574,    -1,    -1,   577,    -1,    -1,    -1,   581,   582,   583,
+      -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,
+      -1,    -1,    -1,   597,   598,   599,   600,   601,   602,    -1,
+      -1,   605,    -1,    -1,    -1,   609,    -1,    -1,   612,    -1,
+     614,    -1,     5,   617,     7,     8,     9,    10,    11,    -1,
+      -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,
+      23,    24,    25,    26,    27,    28,    -1,    -1,    31,    -1,
+      -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,
+      43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,    52,
+      53,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,    -1,
+      -1,    64,    65,    66,    67,    68,    69,    70,    -1,    72,
+      73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,
+      83,    -1,    85,    86,    87,    88,    -1,    90,    91,    -1,
+      93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,   102,
+      -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,    -1,
+     113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,    -1,
+     123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,    -1,
+      -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,    -1,
+      -1,    -1,    -1,    -1,   147,   148,   149,    -1,   151,    -1,
+     153,    -1,   155,   156,    -1,   158,   159,   160,    -1,    -1,
+     163,   164,    -1,   166,   167,   168,   169,    -1,    -1,    -1,
+      -1,   174,   175,   176,    -1,    -1,   179,   180,   181,   182,
+     183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,
+     193,    -1,   195,    -1,   197,   198,   199,   200,   201,   202,
+      -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,    -1,
+      -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,   222,
+     223,   224,   225,    -1,   227,   228,   229,    -1,   231,    -1,
+     233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,
+     243,    -1,   245,   246,    -1,   248,   249,   250,    -1,    -1,
+     253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,   262,
+      -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,   272,
+      -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,    -1,
+      -1,   284,    -1,    -1,   287,   288,   289,   290,   291,   292,
+     293,   294,   295,   296,   297,   298,   299,    -1,   301,   302,
+     303,    -1,   305,   306,   307,   308,    -1,   310,   311,    -1,
+      -1,    -1,    -1,   316,   317,   318,   319,   320,   321,    -1,
+      -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,   332,
+     333,   334,   335,   336,   337,   338,   339,   340,    -1,    -1,
+     343,   344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,
+      -1,    -1,   355,    -1,    -1,    -1,    -1,   360,   361,   362,
+      -1,   364,   365,   366,   367,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,   381,    -1,
+      -1,    -1,    -1,   386,   387,   388,    -1,   390,   391,   392,
+     393,   394,   395,   396,    -1,    -1,    -1,    -1,   401,   402,
+      -1,   404,    -1,   406,   407,   408,   409,   410,    -1,   412,
+     413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,
+     423,   424,   425,    -1,    -1,   428,   429,   430,   431,   432,
+      -1,   434,    -1,    -1,   437,    -1,   439,   440,    -1,   442,
+      -1,    -1,    -1,   446,    -1,    -1,   449,   450,   451,    -1,
+      -1,    -1,   455,   456,   457,   458,   459,   460,    -1,   462,
+     463,    -1,   465,    -1,    -1,    -1,    -1,   470,   471,   472,
+      -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,
+      -1,   484,    -1,   486,    -1,   488,    -1,   490,    -1,   492,
+     493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,
+     503,    -1,    -1,   506,    -1,    -1,   509,    -1,   511,    -1,
+      -1,    -1,   515,    -1,   517,   518,   519,   520,   521,   522,
+      -1,    -1,   525,   526,   527,   528,    -1,   530,   531,    -1,
+     533,    -1,   535,   536,   537,   538,    -1,    -1,   541,   542,
+      -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,
+     553,   554,   555,    -1,    -1,    -1,    -1,   560,   561,   562,
+      -1,   564,   565,    -1,   567,   568,    -1,    -1,    -1,    -1,
+      -1,   574,    -1,    -1,   577,    -1,    -1,    -1,   581,   582,
+     583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,
+     593,    -1,    -1,    -1,   597,   598,   599,   600,   601,   602,
+     603,    -1,   605,    -1,    -1,    -1,   609,    -1,    -1,   612,
+      -1,   614,    -1,     5,   617,     7,     8,     9,    10,    11,
+      -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,    -1,
+      -1,    23,    24,    25,    26,    27,    28,    -1,    -1,    31,
+      -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,    -1,
+      42,    43,    44,    -1,    46,    -1,    -1,    -1,    -1,    -1,
+      52,    53,    -1,    55,    56,    -1,    58,    -1,    -1,    -1,
+      -1,    -1,    64,    65,    66,    67,    68,    69,    70,    -1,
+      72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    81,
+      -1,    83,    -1,    85,    86,    87,    88,    -1,    90,    91,
+      -1,    93,    94,    95,    -1,    97,    -1,    99,    -1,    -1,
+     102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,    -1,
+      -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,    -1,
+      -1,   123,    -1,    -1,    -1,    -1,    -1,   129,    -1,   131,
+      -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,    -1,
+      -1,    -1,    -1,    -1,    -1,   147,   148,   149,    -1,   151,
+      -1,   153,    -1,   155,   156,    -1,   158,   159,   160,    -1,
+      -1,   163,   164,    -1,   166,   167,   168,   169,    -1,    -1,
+      -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,   181,
+     182,   183,   184,    -1,    -1,    -1,    -1,    -1,    -1,   191,
+      -1,   193,    -1,   195,    -1,   197,   198,   199,   200,   201,
+     202,    -1,   204,    -1,    -1,    -1,    -1,   209,   210,    -1,
+      -1,    -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,   221,
+     222,   223,   224,   225,    -1,   227,   228,   229,    -1,   231,
+      -1,   233,    -1,    -1,    -1,    -1,   238,    -1,    -1,    -1,
+      -1,   243,    -1,   245,   246,    -1,   248,   249,   250,    -1,
+      -1,   253,    -1,    -1,    -1,   257,   258,    -1,    -1,   261,
+     262,    -1,   264,   265,    -1,    -1,    -1,    -1,    -1,   271,
+     272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,    -1,
+      -1,    -1,   284,    -1,    -1,   287,   288,   289,   290,   291,
+     292,   293,   294,   295,   296,   297,   298,   299,    -1,   301,
+     302,   303,    -1,   305,   306,   307,   308,    -1,   310,   311,
+      -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,   321,
+      -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,   331,
+     332,   333,   334,   335,   336,   337,   338,   339,   340,    -1,
+      -1,   343,   344,    -1,    -1,   347,   348,   349,   350,    -1,
+      -1,    -1,    -1,   355,    -1,    -1,    -1,    -1,   360,   361,
+     362,    -1,   364,   365,   366,   367,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,   381,
+      -1,    -1,    -1,    -1,   386,   387,   388,    -1,   390,   391,
+     392,   393,   394,   395,   396,    -1,    -1,    -1,    -1,   401,
+     402,    -1,   404,    -1,   406,   407,   408,   409,   410,    -1,
+     412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,   421,
+     422,   423,   424,   425,    -1,    -1,   428,   429,   430,   431,
+     432,    -1,   434,    -1,    -1,   437,    -1,   439,   440,    -1,
+     442,    -1,    -1,    -1,   446,    -1,    -1,   449,   450,   451,
+      -1,    -1,    -1,   455,   456,   457,   458,   459,   460,    -1,
+     462,   463,    -1,   465,    -1,    -1,    -1,    -1,   470,   471,
+     472,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,   481,
+      -1,    -1,   484,    -1,   486,    -1,   488,    -1,   490,    -1,
+     492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,   501,
+      -1,   503,    -1,    -1,   506,    -1,    -1,   509,    -1,   511,
+      -1,    -1,    -1,   515,    -1,   517,   518,   519,   520,   521,
+     522,    -1,    -1,   525,   526,   527,   528,    -1,   530,   531,
+      -1,   533,    -1,   535,   536,   537,   538,    -1,    -1,   541,
+     542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,    -1,
+      -1,   553,   554,   555,    -1,    -1,    -1,    -1,   560,   561,
+     562,    -1,   564,   565,    -1,   567,   568,    -1,    -1,    -1,
+      -1,    -1,   574,    -1,    -1,   577,    -1,    -1,    -1,   581,
+     582,   583,    -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,
+      -1,   593,    -1,    -1,    -1,   597,   598,   599,   600,   601,
+     602,   603,    -1,   605,    -1,    -1,    -1,   609,    -1,    -1,
+     612,    -1,   614,    -1,     5,   617,     7,     8,     9,    10,
+      11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,    -1,
+      -1,    -1,    23,    24,    25,    26,    27,    28,    -1,    -1,
+      31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,    -1,
+      -1,    42,    43,    44,    -1,    46,    -1,    -1,    -1,    -1,
+      -1,    52,    53,    -1,    55,    56,    -1,    58,    -1,    -1,
+      -1,    -1,    -1,    64,    65,    66,    67,    68,    69,    70,
+      -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      81,    -1,    83,    -1,    85,    86,    87,    88,    -1,    90,
+      91,    -1,    93,    94,    95,    -1,    97,    -1,    99,    -1,
+      -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,    -1,
+      -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,    -1,
+      -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,   129,    -1,
+     131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,   140,
+      -1,    -1,    -1,    -1,    -1,    -1,   147,   148,   149,    -1,
+      -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,   160,
+      -1,    -1,   163,   164,    -1,   166,   167,   168,   169,    -1,
+      -1,    -1,    -1,   174,   175,   176,    -1,    -1,   179,   180,
+     181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,    -1,
+     191,    -1,   193,    -1,   195,    -1,   197,   198,   199,   200,
+     201,   202,    -1,   204,    -1,    -1,    -1,    -1,   209,   210,
+      -1,    -1,    -1,    -1,    -1,    -1,   217,    -1,    -1,    -1,
+     221,   222,   223,   224,   225,    -1,   227,   228,   229,    -1,
+     231,    -1,   233,    -1,    -1,    -1,    -1,   238,    -1,    -1,
+      -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,   250,
+      -1,    -1,   253,    -1,    -1,    -1,   257,   258,    -1,    -1,
+     261,   262,    -1,   264,   265,    -1,    -1,    -1,    -1,    -1,
+     271,   272,    -1,   274,    -1,   276,    -1,   278,   279,    -1,
+      -1,    -1,    -1,   284,    -1,    -1,   287,   288,   289,   290,
+     291,   292,   293,   294,   295,   296,   297,   298,   299,    -1,
+     301,   302,   303,    -1,   305,   306,   307,   308,    -1,   310,
+     311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,   320,
+     321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,    -1,
+     331,   332,   333,   334,   335,   336,   337,   338,   339,   340,
+      -1,    -1,   343,   344,    -1,    -1,   347,   348,   349,   350,
+      -1,    -1,    -1,    -1,   355,    -1,    -1,    -1,    -1,   360,
+     361,   362,    -1,   364,   365,   366,   367,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   380,
+     381,    -1,    -1,    -1,    -1,   386,   387,   388,    -1,   390,
+     391,   392,   393,   394,   395,   396,    -1,    -1,    -1,    -1,
+     401,   402,    -1,   404,    -1,   406,   407,   408,   409,   410,
+      -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,    -1,
+     421,   422,   423,   424,   425,    -1,    -1,   428,   429,   430,
+     431,   432,    -1,   434,    -1,    -1,   437,    -1,   439,   440,
+      -1,   442,    -1,    -1,    -1,   446,    -1,    -1,   449,   450,
+     451,    -1,    -1,    -1,   455,   456,   457,   458,   459,   460,
+      -1,   462,   463,    -1,   465,    -1,    -1,    -1,    -1,   470,
+     471,   472,    -1,    -1,    -1,    -1,   477,    -1,    -1,    -1,
+     481,    -1,    -1,   484,    -1,   486,    -1,   488,    -1,   490,
+      -1,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,   500,
+     501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,    -1,
+     511,    -1,    -1,    -1,   515,    -1,   517,   518,   519,   520,
+     521,   522,    -1,    -1,   525,   526,   527,   528,    -1,   530,
+     531,    -1,   533,    -1,   535,   536,   537,   538,    -1,    -1,
+     541,   542,    -1,   544,   545,   546,   547,    -1,    -1,    -1,
+      -1,    -1,   553,   554,   555,    -1,    -1,    -1,    -1,   560,
+     561,   562,    -1,   564,   565,    -1,   567,   568,    -1,    -1,
+      -1,    -1,    -1,   574,    -1,    -1,   577,    -1,    -1,    -1,
+     581,   582,   583,    -1,    -1,    -1,    -1,    -1,    -1,   590,
+      -1,    -1,   593,    -1,    -1,    -1,   597,   598,   599,   600,
+     601,   602,    -1,    -1,   605,    -1,    -1,    -1,   609,    -1,
+      -1,   612,    -1,   614,    -1,     5,   617,     7,     8,     9,
+      10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,    -1,
+      -1,    -1,    -1,    23,    24,    25,    26,    27,    28,    -1,
+      -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,    39,
+      -1,    -1,    42,    43,    44,    -1,    46,    -1,    -1,    -1,
+      -1,    -1,    52,    53,    -1,    55,    56,    -1,    58,    -1,
+      -1,    -1,    -1,    -1,    64,    65,    66,    67,    68,    69,
+      70,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    81,    -1,    83,    -1,    85,    86,    87,    88,    -1,
+      90,    91,    -1,    93,    94,    95,    -1,    97,    -1,    99,
+      -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,   109,
+      -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,    -1,
+      -1,    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,   129,
+      -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,   139,
+     140,    -1,    -1,    -1,    -1,    -1,    -1,   147,   148,   149,
+      -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,   159,
+     160,    -1,    -1,   163,   164,    -1,   166,   167,   168,   169,
+      -1,    -1,    -1,    -1,   174,   175,   176,    -1,    -1,   179,
+     180,   181,   182,   183,   184,    -1,    -1,    -1,    -1,    -1,
+      -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,   199,
+     200,   201,   202,    -1,   204,    -1,    -1,    -1,    -1,   209,
+     210,    -1,    -1,    -1,    -1,    -1,    -1,   217,    -1,    -1,
+      -1,   221,   222,   223,   224,   225,    -1,   227,   228,   229,
+      -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,    -1,
+      -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,   249,
+     250,    -1,    -1,   253,    -1,    -1,    -1,   257,   258,    -1,
+      -1,   261,   262,    -1,   264,   265,    -1,    -1,    -1,    -1,
+      -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,   279,
+      -1,    -1,    -1,    -1,   284,    -1,    -1,   287,   288,   289,
+     290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
+      -1,   301,   302,   303,    -1,   305,   306,   307,   308,    -1,
+     310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,   319,
+     320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,   329,
+      -1,   331,   332,   333,   334,   335,   336,   337,   338,   339,
+     340,    -1,    -1,   343,   344,    -1,    -1,   347,   348,   349,
+     350,    -1,    -1,    -1,    -1,   355,    -1,    -1,    -1,    -1,
+     360,   361,   362,    -1,   364,   365,   366,   367,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     380,   381,    -1,    -1,    -1,    -1,   386,   387,   388,    -1,
+     390,   391,   392,   393,   394,   395,   396,    -1,    -1,    -1,
+      -1,   401,   402,    -1,   404,    -1,   406,   407,   408,   409,
+     410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,    -1,
+      -1,   421,   422,   423,   424,   425,    -1,    -1,   428,   429,
+     430,   431,   432,    -1,   434,    -1,    -1,   437,    -1,   439,
+     440,    -1,   442,    -1,    -1,    -1,   446,    -1,    -1,   449,
+     450,   451,    -1,    -1,    -1,   455,   456,   457,   458,   459,
+     460,    -1,   462,   463,    -1,   465,    -1,    -1,    -1,    -1,
+     470,   471,   472,    -1,    -1,    -1,    -1,   477,    -1,    -1,
+      -1,   481,    -1,    -1,   484,    -1,   486,    -1,   488,    -1,
+     490,    -1,   492,   493,    -1,    -1,    -1,    -1,    -1,    -1,
+     500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,   509,
+      -1,   511,    -1,    -1,    -1,   515,    -1,   517,   518,   519,
+     520,   521,   522,    -1,    -1,   525,   526,   527,   528,    -1,
+     530,   531,    -1,   533,    -1,   535,   536,   537,   538,    -1,
+      -1,   541,   542,    -1,   544,   545,   546,   547,    -1,    -1,
+      -1,    -1,    -1,   553,   554,   555,    -1,    -1,    -1,    -1,
+     560,   561,   562,    -1,   564,   565,    -1,   567,   568,    -1,
+      -1,    -1,    -1,    -1,   574,    -1,    -1,   577,    -1,    -1,
+      -1,   581,   582,   583,    -1,    -1,    -1,    -1,    -1,    -1,
+     590,    -1,    -1,   593,    -1,    -1,    -1,   597,   598,   599,
+     600,   601,   602,    -1,    -1,   605,    -1,    -1,    -1,   609,
+      -1,    -1,   612,    -1,   614,    -1,     5,   617,     7,     8,
+       9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,    18,
+      -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,    28,
+      -1,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,    -1,
+      39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,    -1,
+      -1,    -1,    -1,    52,    53,    -1,    55,    56,    -1,    58,
+      -1,    -1,    -1,    -1,    -1,    64,    65,    66,    67,    68,
+      69,    70,    -1,    72,    73,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    81,    -1,    83,    -1,    85,    86,    87,    88,
+      -1,    90,    91,    -1,    93,    94,    95,    -1,    97,    -1,
+      99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,    -1,
+     109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,   118,
+      -1,    -1,    -1,    -1,   123,    -1,    -1,    -1,    -1,    -1,
+     129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,   138,
+     139,   140,    -1,    -1,    -1,    -1,    -1,    -1,   147,   148,
+     149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,   158,
+     159,   160,    -1,    -1,   163,   164,    -1,   166,   167,   168,
+     169,    -1,    -1,    -1,    -1,   174,   175,   176,    -1,    -1,
+     179,   180,   181,   182,   183,   184,    -1,    -1,    -1,    -1,
+      -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,   198,
+     199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,    -1,
+     209,   210,    -1,    -1,    -1,    -1,    -1,    -1,   217,    -1,
+      -1,    -1,   221,   222,   223,   224,   225,    -1,   227,   228,
+     229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,   238,
+      -1,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,   248,
+     249,   250,    -1,    -1,   253,    -1,    -1,    -1,   257,   258,
+      -1,    -1,   261,   262,    -1,   264,   265,    -1,    -1,    -1,
+      -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,   278,
+     279,    -1,    -1,    -1,    -1,   284,    -1,    -1,   287,   288,
+     289,   290,   291,   292,   293,   294,   295,   296,   297,   298,
+     299,    -1,   301,   302,   303,    -1,   305,   306,   307,   308,
+      -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,   318,
+     319,   320,   321,    -1,    -1,   324,   325,    -1,   327,    -1,
+     329,    -1,   331,   332,   333,   334,   335,   336,   337,   338,
+     339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,   348,
+     349,   350,    -1,    -1,    -1,    -1,   355,    -1,    -1,    -1,
+      -1,   360,   361,   362,    -1,   364,   365,   366,   367,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   380,   381,    -1,    -1,    -1,    -1,   386,   387,   388,
+      -1,   390,   391,   392,   393,   394,   395,   396,    -1,    -1,
+      -1,    -1,   401,   402,    -1,   404,    -1,   406,   407,   408,
+     409,   410,    -1,   412,   413,   414,    -1,    -1,   417,    -1,
+      -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,   428,
+     429,   430,   431,   432,    -1,   434,    -1,    -1,   437,    -1,
+     439,   440,    -1,   442,    -1,    -1,    -1,   446,    -1,    -1,
+     449,   450,   451,    -1,    -1,    -1,   455,   456,   457,   458,
+     459,   460,    -1,   462,   463,    -1,   465,    -1,    -1,    -1,
+      -1,   470,   471,   472,    -1,    -1,    -1,    -1,   477,    -1,
+      -1,    -1,   481,    -1,    -1,   484,    -1,   486,    -1,   488,
+      -1,   490,    -1,   492,   493,    -1,    -1,    -1,    -1,    -1,
+      -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,    -1,
+     509,    -1,   511,    -1,    -1,    -1,   515,    -1,   517,   518,
+     519,   520,   521,   522,    -1,    -1,   525,   526,   527,   528,
+      -1,   530,   531,    -1,   533,    -1,   535,   536,   537,   538,
+      -1,    -1,   541,   542,    -1,   544,   545,   546,   547,    -1,
+      -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,    -1,
+      -1,   560,   561,   562,    -1,   564,   565,    -1,   567,   568,
+      -1,    -1,    -1,    -1,    -1,   574,    -1,    -1,   577,    -1,
+      -1,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,    -1,
+      -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,   598,
+     599,   600,   601,   602,    -1,    -1,   605,    -1,    -1,    -1,
+     609,    -1,    -1,   612,    -1,   614,    -1,     5,   617,     7,
+       8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,    -1,
+      18,    -1,    -1,    -1,    -1,    23,    24,    25,    26,    27,
+      28,    -1,    -1,    31,    -1,    -1,    -1,    35,    -1,    -1,
+      -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,    -1,
+      -1,    -1,    -1,    -1,    52,    53,    -1,    55,    56,    -1,
+      58,    -1,    -1,    -1,    -1,    -1,    64,    65,    66,    67,
+      68,    69,    70,    -1,    72,    73,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    81,    -1,    83,    -1,    85,    86,    87,
+      88,    -1,    90,    91,    -1,    93,    94,    95,    -1,    97,
+      -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,    -1,
+      -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,    -1,
+     118,    -1,    -1,    -1,    -1,   123,    -1,    -1,    -1,    -1,
+      -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,   137,
+     138,   139,   140,    -1,    -1,    -1,    -1,    -1,    -1,   147,
+     148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,    -1,
+     158,   159,   160,    -1,    -1,   163,   164,    -1,   166,   167,
+     168,   169,    -1,    -1,    -1,    -1,   174,   175,   176,    -1,
+      -1,   179,   180,   181,   182,   183,   184,    -1,    -1,    -1,
+      -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,   197,
+     198,   199,   200,   201,   202,    -1,   204,    -1,    -1,    -1,
+      -1,   209,   210,    -1,    -1,    -1,    -1,    -1,    -1,   217,
+      -1,    -1,    -1,   221,   222,   223,   224,   225,    -1,   227,
+     228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,    -1,
+     238,    -1,    -1,    -1,    -1,   243,    -1,   245,   246,    -1,
+     248,   249,   250,    -1,    -1,   253,    -1,    -1,    -1,   257,
+     258,    -1,    -1,   261,   262,    -1,   264,   265,    -1,    -1,
+      -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,    -1,
+     278,   279,    -1,    -1,    -1,    -1,   284,    -1,    -1,   287,
+     288,   289,   290,   291,   292,   293,   294,   295,   296,   297,
+     298,   299,    -1,   301,   302,   303,    -1,   305,   306,   307,
+     308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,   317,
+     318,   319,   320,   321,    -1,    -1,   324,   325,    -1,   327,
+      -1,   329,    -1,   331,   332,   333,   334,   335,   336,   337,
+     338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,   347,
+     348,   349,   350,    -1,    -1,    -1,    -1,   355,    -1,    -1,
+      -1,    -1,   360,   361,   362,    -1,   364,   365,   366,   367,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   380,   381,    -1,    -1,    -1,    -1,   386,   387,
+     388,    -1,   390,   391,   392,   393,   394,   395,   396,    -1,
+      -1,    -1,    -1,   401,   402,    -1,   404,    -1,   406,   407,
+     408,   409,   410,    -1,   412,   413,   414,    -1,    -1,   417,
+      -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,    -1,
+     428,   429,   430,   431,   432,    -1,   434,    -1,    -1,   437,
+      -1,   439,   440,    -1,   442,    -1,    -1,    -1,   446,    -1,
+      -1,   449,   450,   451,    -1,    -1,    -1,   455,   456,   457,
+     458,   459,   460,    -1,   462,   463,    -1,   465,    -1,    -1,
+      -1,    -1,   470,   471,   472,    -1,    -1,    -1,    -1,   477,
+      -1,    -1,    -1,   481,    -1,    -1,   484,    -1,   486,    -1,
+     488,    -1,   490,    -1,   492,   493,    -1,    -1,    -1,    -1,
+      -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,    -1,
+      -1,   509,    -1,   511,    -1,    -1,    -1,   515,    -1,   517,
+     518,   519,   520,   521,   522,    -1,    -1,   525,   526,   527,
+     528,    -1,   530,   531,    -1,   533,    -1,   535,   536,   537,
+     538,    -1,    -1,   541,   542,    -1,   544,   545,   546,   547,
+      -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,    -1,
+      -1,    -1,   560,   561,   562,    -1,   564,   565,    -1,   567,
+     568,    -1,    -1,    -1,    -1,    -1,   574,    -1,    -1,   577,
+      -1,    -1,    -1,   581,   582,   583,    -1,    -1,    -1,    -1,
+      -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,   597,
+     598,   599,   600,   601,   602,    -1,    -1,   605,    -1,    -1,
+      -1,   609,    -1,    -1,   612,    -1,   614,    -1,     5,   617,
+       7,     8,     9,    10,    11,    -1,    -1,    14,    -1,    -1,
+      -1,    18,    -1,    -1,    -1,    -1,    23,    24,    25,    26,
+      27,    28,    -1,    -1,    31,    -1,    -1,    -1,    35,    -1,
+      -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,    46,
+      -1,    -1,    -1,    -1,    -1,    52,    53,    -1,    55,    56,
+      -1,    58,    -1,    -1,    -1,    -1,    -1,    64,    65,    66,
+      67,    68,    69,    70,    -1,    72,    73,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    81,    -1,    83,    -1,    85,    86,
+      87,    88,    -1,    90,    91,    -1,    93,    94,    95,    -1,
+      97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,    -1,
+      -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,    -1,
+      -1,   118,    -1,    -1,    -1,    -1,   123,    -1,    -1,    -1,
+      -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,    -1,
+     137,   138,   139,   140,    -1,    -1,    -1,    -1,    -1,    -1,
+     147,   148,   149,    -1,    -1,    -1,   153,    -1,   155,   156,
+      -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,   166,
+     167,   168,   169,    -1,    -1,    -1,    -1,   174,   175,   176,
+      -1,    -1,   179,   180,   181,   182,   183,   184,    -1,    -1,
+      -1,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,    -1,
+     197,   198,   199,   200,   201,   202,    -1,   204,    -1,    -1,
+      -1,    -1,   209,   210,    -1,    -1,    -1,    -1,    -1,    -1,
+     217,    -1,    -1,    -1,   221,   222,   223,   224,   225,    -1,
+     227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,    -1,
+      -1,   238,    -1,    -1,    -1,    -1,   243,    -1,   245,   246,
+      -1,   248,   249,   250,    -1,    -1,   253,    -1,    -1,    -1,
+     257,   258,    -1,    -1,   261,   262,    -1,   264,   265,    -1,
+      -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,   276,
+      -1,   278,   279,    -1,    -1,    -1,    -1,   284,    -1,    -1,
+     287,   288,   289,   290,   291,   292,   293,   294,   295,   296,
+     297,   298,   299,    -1,   301,   302,   303,    -1,   305,   306,
+     307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,   316,
+     317,   318,   319,   320,   321,    -1,    -1,   324,   325,    -1,
+     327,    -1,   329,    -1,   331,   332,   333,   334,   335,   336,
+     337,   338,   339,   340,    -1,    -1,   343,   344,    -1,    -1,
+     347,   348,   349,   350,    -1,    -1,    -1,    -1,   355,    -1,
+      -1,    -1,    -1,   360,   361,   362,    -1,   364,   365,   366,
+     367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,   380,   381,    -1,    -1,    -1,    -1,   386,
+     387,   388,    -1,   390,   391,   392,   393,   394,   395,   396,
+      -1,    -1,    -1,    -1,   401,   402,    -1,   404,    -1,   406,
+     407,   408,   409,   410,    -1,   412,   413,   414,    -1,    -1,
+     417,    -1,    -1,    -1,   421,   422,   423,   424,   425,    -1,
+      -1,   428,   429,   430,   431,   432,    -1,   434,    -1,    -1,
+     437,    -1,   439,   440,    -1,   442,    -1,    -1,    -1,   446,
+      -1,    -1,   449,   450,   451,    -1,    -1,    -1,   455,   456,
+     457,   458,   459,   460,    -1,   462,   463,    -1,   465,    -1,
+      -1,    -1,    -1,   470,   471,   472,    -1,    -1,    -1,    -1,
+     477,    -1,    -1,    -1,   481,    -1,    -1,   484,    -1,   486,
+      -1,   488,    -1,   490,    -1,   492,   493,    -1,    -1,    -1,
+      -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,   506,
+      -1,    -1,   509,    -1,   511,    -1,    -1,    -1,   515,    -1,
+     517,   518,   519,   520,   521,   522,    -1,    -1,   525,   526,
+     527,   528,    -1,   530,   531,    -1,   533,    -1,   535,   536,
+     537,   538,    -1,    -1,   541,   542,    -1,   544,   545,   546,
+     547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,    -1,
+      -1,    -1,    -1,   560,   561,   562,    -1,   564,   565,    -1,
+     567,   568,    -1,    -1,    -1,    -1,    -1,   574,    -1,    -1,
+     577,    -1,    -1,    -1,   581,   582,   583,    -1,    -1,    -1,
+      -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,    -1,
+     597,   598,   599,   600,   601,   602,    -1,    -1,   605,    -1,
+      -1,    -1,   609,    -1,    -1,   612,    -1,   614,    -1,     5,
+     617,     7,     8,     9,    10,    11,    -1,    -1,    14,    -1,
+      -1,    -1,    18,    -1,    -1,    -1,    -1,    23,    24,    25,
+      26,    27,    28,    -1,    -1,    31,    -1,    -1,    -1,    35,
+      -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,    -1,
+      46,    -1,    -1,    -1,    -1,    -1,    52,    53,    -1,    55,
+      56,    -1,    58,    -1,    -1,    -1,    -1,    -1,    64,    65,
+      66,    67,    68,    69,    70,    -1,    72,    73,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    81,    -1,    83,    -1,    85,
+      86,    87,    88,    -1,    90,    91,    -1,    93,    94,    95,
+      -1,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,   105,
+      -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,   115,
+      -1,    -1,   118,    -1,    -1,    -1,    -1,   123,    -1,    -1,
+      -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,   135,
+      -1,   137,   138,   139,   140,    -1,    -1,    -1,    -1,    -1,
+      -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,    -1,
+     156,    -1,   158,   159,   160,    -1,    -1,   163,   164,    -1,
+     166,   167,   168,   169,    -1,    -1,    -1,    -1,   174,   175,
+     176,    -1,    -1,   179,   180,   181,   182,   183,   184,    -1,
+      -1,    -1,    -1,    -1,    -1,   191,    -1,   193,    -1,   195,
+      -1,   197,   198,   199,   200,   201,   202,    -1,   204,    -1,
+      -1,    -1,    -1,   209,   210,    -1,    -1,    -1,    -1,    -1,
+      -1,   217,    -1,    -1,    -1,   221,   222,   223,   224,   225,
+      -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,    -1,
+      -1,    -1,   238,    -1,    -1,    -1,    -1,   243,    -1,   245,
+     246,    -1,   248,   249,   250,    -1,    -1,   253,    -1,    -1,
+      -1,   257,   258,    -1,    -1,   261,   262,    -1,   264,   265,
+      -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,    -1,
+     276,    -1,   278,   279,    -1,    -1,    -1,    -1,   284,    -1,
+      -1,   287,   288,   289,   290,   291,   292,   293,   294,   295,
+     296,   297,   298,   299,    -1,   301,   302,   303,    -1,   305,
+     306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,    -1,
+     316,   317,   318,   319,   320,   321,    -1,    -1,   324,   325,
+      -1,   327,    -1,   329,    -1,   331,   332,   333,   334,   335,
+     336,   337,   338,   339,   340,    -1,    -1,   343,   344,    -1,
+      -1,   347,   348,   349,   350,    -1,    -1,    -1,    -1,   355,
+      -1,    -1,    -1,    -1,   360,   361,   362,    -1,   364,   365,
+     366,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   380,   381,    -1,    -1,    -1,    -1,
+     386,   387,   388,    -1,   390,   391,   392,   393,   394,   395,
+     396,    -1,    -1,    -1,    -1,   401,   402,    -1,   404,    -1,
+     406,   407,   408,   409,   410,    -1,   412,   413,   414,    -1,
+      -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,   425,
+      -1,    -1,   428,   429,   430,   431,   432,    -1,   434,    -1,
+      -1,   437,    -1,   439,   440,    -1,   442,    -1,    -1,    -1,
+     446,    -1,    -1,   449,   450,   451,    -1,    -1,    -1,   455,
+     456,   457,   458,   459,   460,    -1,   462,   463,    -1,   465,
+      -1,    -1,    -1,    -1,   470,   471,   472,    -1,    -1,    -1,
+      -1,   477,    -1,    -1,    -1,   481,    -1,    -1,   484,    -1,
+     486,    -1,   488,    -1,   490,    -1,   492,   493,    -1,    -1,
+      -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,    -1,
+     506,    -1,    -1,   509,    -1,   511,    -1,    -1,    -1,   515,
+      -1,   517,   518,   519,   520,   521,   522,    -1,    -1,   525,
+     526,   527,   528,    -1,   530,   531,    -1,   533,    -1,   535,
+     536,   537,   538,    -1,    -1,   541,   542,    -1,   544,   545,
+     546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,   555,
+      -1,    -1,    -1,    -1,   560,   561,   562,    -1,   564,   565,
+      -1,   567,   568,    -1,    -1,    -1,    -1,    -1,   574,    -1,
+      -1,   577,    -1,    -1,    -1,   581,   582,   583,    -1,    -1,
+      -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,    -1,
+      -1,   597,   598,   599,   600,   601,   602,    -1,    -1,   605,
+      -1,    -1,    -1,   609,    -1,    -1,   612,    -1,   614,    -1,
+       5,   617,     7,     8,     9,    10,    11,    -1,    -1,    14,
+      -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    23,    24,
+      25,    26,    27,    28,    -1,    -1,    31,    -1,    -1,    -1,
+      35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,    44,
+      -1,    46,    -1,    -1,    -1,    -1,    -1,    52,    53,    -1,
+      55,    56,    -1,    58,    -1,    -1,    -1,    -1,    -1,    64,
+      65,    66,    67,    68,    69,    70,    -1,    72,    73,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    81,    -1,    83,    -1,
+      85,    86,    87,    88,    -1,    90,    91,    -1,    93,    94,
+      95,    -1,    97,    -1,    99,    -1,    -1,   102,    -1,    -1,
+     105,    -1,    -1,    -1,   109,    -1,    -1,    -1,   113,   114,
+     115,    -1,    -1,   118,    -1,    -1,    -1,    -1,   123,    -1,
+      -1,    -1,    -1,    -1,   129,    -1,   131,    -1,    -1,    -1,
+     135,    -1,   137,   138,   139,   140,    -1,    -1,    -1,    -1,
+      -1,    -1,   147,   148,   149,    -1,    -1,    -1,   153,    -1,
+      -1,   156,    -1,   158,   159,   160,    -1,    -1,   163,   164,
+      -1,   166,   167,   168,   169,    -1,    -1,    -1,    -1,   174,
+     175,   176,    -1,    -1,   179,   180,   181,   182,   183,   184,
+      -1,    -1,    -1,    -1,    -1,    -1,   191,    -1,   193,    -1,
+     195,    -1,   197,   198,   199,   200,   201,   202,    -1,   204,
+      -1,    -1,    -1,    -1,   209,   210,    -1,    -1,    -1,    -1,
+      -1,    -1,   217,    -1,    -1,    -1,   221,   222,   223,   224,
+     225,    -1,   227,   228,   229,    -1,   231,    -1,   233,    -1,
+      -1,    -1,    -1,   238,    -1,    -1,    -1,    -1,   243,    -1,
+     245,   246,    -1,   248,   249,   250,    -1,    -1,   253,    -1,
+      -1,    -1,   257,   258,    -1,    -1,   261,   262,    -1,   264,
+     265,    -1,    -1,    -1,    -1,    -1,   271,   272,    -1,   274,
+      -1,   276,    -1,   278,   279,    -1,    -1,    -1,    -1,   284,
+      -1,    -1,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,    -1,   301,   302,   303,    -1,
+     305,   306,   307,   308,    -1,   310,   311,    -1,    -1,    -1,
+      -1,   316,   317,   318,   319,   320,   321,    -1,    -1,   324,
+     325,    -1,   327,    -1,   329,    -1,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,    -1,    -1,   343,   344,
+      -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,    -1,
+     355,    -1,    -1,    -1,    -1,   360,   361,   362,    -1,   364,
+     365,   366,   367,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   380,   381,    -1,    -1,    -1,
+      -1,   386,   387,   388,    -1,   390,   391,   392,   393,   394,
+     395,   396,    -1,    -1,    -1,    -1,   401,   402,    -1,   404,
+      -1,   406,   407,   408,   409,   410,    -1,   412,   413,   414,
+      -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,   424,
+     425,    -1,    -1,   428,   429,   430,   431,   432,    -1,   434,
+      -1,    -1,   437,    -1,   439,   440,    -1,   442,    -1,    -1,
+      -1,   446,    -1,    -1,   449,   450,   451,    -1,    -1,    -1,
+     455,   456,   457,   458,   459,   460,    -1,   462,   463,    -1,
+     465,    -1,    -1,    -1,    -1,   470,   471,   472,    -1,    -1,
+      -1,    -1,   477,    -1,    -1,    -1,   481,    -1,    -1,   484,
+      -1,   486,    -1,   488,    -1,   490,    -1,   492,   493,    -1,
+      -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,    -1,
+      -1,   506,    -1,    -1,   509,    -1,   511,    -1,    -1,    -1,
+     515,    -1,   517,   518,   519,   520,   521,   522,    -1,    -1,
+     525,   526,   527,   528,    -1,   530,   531,    -1,   533,    -1,
+     535,   536,   537,   538,    -1,    -1,   541,   542,    -1,   544,
+     545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,   554,
+     555,    -1,    -1,    -1,    -1,   560,   561,   562,    -1,   564,
+     565,    -1,   567,   568,    -1,    -1,    -1,    -1,    -1,   574,
+      -1,    -1,   577,    -1,    -1,    -1,   581,   582,   583,    -1,
+      -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,    -1,
+      -1,    -1,   597,   598,   599,   600,   601,   602,    -1,    -1,
+     605,    -1,    -1,    -1,   609,    -1,    -1,   612,    -1,   614,
+      -1,     5,   617,     7,     8,     9,    10,    11,    -1,    -1,
       14,    -1,    -1,    -1,    18,    -1,    -1,    -1,    -1,    23,
       24,    25,    26,    27,    28,    -1,    -1,    -1,    -1,    -1,
       -1,    35,    -1,    -1,    -1,    39,    -1,    -1,    42,    43,
@@ -17101,35 +17128,35 @@ static const yytype_int16 yycheck[] =
       -1,   305,   306,   307,   308,    -1,   310,   311,    -1,    -1,
       -1,    -1,   316,   317,   318,   319,   320,   321,    -1,    -1,
      324,   325,    -1,   327,    -1,   329,    -1,   331,   332,   333,
-     334,   335,   336,   337,   338,   339,    -1,    -1,   342,   343,
-      -1,    -1,   346,   347,   348,   349,    -1,    -1,    -1,    -1,
-     354,    -1,    -1,    -1,    -1,   359,   360,   361,    -1,   363,
-     364,   365,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    -1,    -1,   379,   380,    -1,    -1,    -1,
-      -1,   385,   386,   387,    -1,   389,   390,   391,   392,   393,
-     394,   395,    -1,    -1,    -1,    -1,   400,   401,    -1,   403,
-      -1,   405,   406,   407,   408,   409,    -1,   411,   412,   413,
-      -1,    -1,   416,    -1,    -1,    -1,   420,   421,   422,   423,
-     424,    -1,    -1,   427,   428,   429,   430,   431,    -1,   433,
-      -1,    -1,   436,    -1,   438,    -1,    -1,   441,    -1,    -1,
-      -1,   445,    -1,    -1,   448,   449,    -1,    -1,    -1,    -1,
-     454,   455,   456,   457,   458,   459,    -1,   461,   462,    -1,
-     464,    -1,    -1,    -1,    -1,   469,   470,   471,    -1,    -1,
-      -1,    -1,   476,    -1,    -1,    -1,   480,    -1,    -1,   483,
-      -1,   485,    -1,   487,    -1,   489,    -1,   491,   492,    -1,
-      -1,    -1,    -1,    -1,    -1,   499,   500,    -1,   502,    -1,
-      -1,   505,    -1,    -1,   508,    -1,   510,    -1,    -1,    -1,
-     514,    -1,   516,   517,   518,   519,   520,   521,    -1,    -1,
-     524,   525,   526,   527,    -1,   529,   530,    -1,   532,    -1,
-     534,   535,   536,   537,    -1,    -1,   540,   541,    -1,   543,
-     544,   545,   546,    -1,    -1,    -1,    -1,    -1,   552,   553,
-     554,    -1,    -1,    -1,    -1,   559,   560,   561,    -1,   563,
-     564,    -1,   566,   567,    -1,    -1,    -1,    -1,    -1,   573,
-      -1,    -1,   576,    -1,    -1,    -1,   580,   581,   582,    -1,
-      -1,    -1,    -1,    -1,    -1,   589,    -1,    -1,   592,    -1,
-      -1,    -1,   596,   597,   598,   599,   600,   601,    -1,    -1,
-      -1,    -1,    -1,    -1,   608,    -1,    -1,   611,    -1,   613,
-      -1,    -1,   616
+     334,   335,   336,   337,   338,   339,   340,    -1,    -1,   343,
+     344,    -1,    -1,   347,   348,   349,   350,    -1,    -1,    -1,
+      -1,   355,    -1,    -1,    -1,    -1,   360,   361,   362,    -1,
+     364,   365,   366,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   380,   381,    -1,    -1,
+      -1,    -1,   386,   387,   388,    -1,   390,   391,   392,   393,
+     394,   395,   396,    -1,    -1,    -1,    -1,   401,   402,    -1,
+     404,    -1,   406,   407,   408,   409,   410,    -1,   412,   413,
+     414,    -1,    -1,   417,    -1,    -1,    -1,   421,   422,   423,
+     424,   425,    -1,    -1,   428,   429,   430,   431,   432,    -1,
+     434,    -1,    -1,   437,    -1,   439,    -1,    -1,   442,    -1,
+      -1,    -1,   446,    -1,    -1,   449,   450,    -1,    -1,    -1,
+      -1,   455,   456,   457,   458,   459,   460,    -1,   462,   463,
+      -1,   465,    -1,    -1,    -1,    -1,   470,   471,   472,    -1,
+      -1,    -1,    -1,   477,    -1,    -1,    -1,   481,    -1,    -1,
+     484,    -1,   486,    -1,   488,    -1,   490,    -1,   492,   493,
+      -1,    -1,    -1,    -1,    -1,    -1,   500,   501,    -1,   503,
+      -1,    -1,   506,    -1,    -1,   509,    -1,   511,    -1,    -1,
+      -1,   515,    -1,   517,   518,   519,   520,   521,   522,    -1,
+      -1,   525,   526,   527,   528,    -1,   530,   531,    -1,   533,
+      -1,   535,   536,   537,   538,    -1,    -1,   541,   542,    -1,
+     544,   545,   546,   547,    -1,    -1,    -1,    -1,    -1,   553,
+     554,   555,    -1,    -1,    -1,    -1,   560,   561,   562,    -1,
+     564,   565,    -1,   567,   568,    -1,    -1,    -1,    -1,    -1,
+     574,    -1,    -1,   577,    -1,    -1,    -1,   581,   582,   583,
+      -1,    -1,    -1,    -1,    -1,    -1,   590,    -1,    -1,   593,
+      -1,    -1,    -1,   597,   598,   599,   600,   601,   602,    -1,
+      -1,    -1,    -1,    -1,    -1,   609,    -1,    -1,   612,    -1,
+     614,    -1,    -1,   617
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -17138,18 +17165,18 @@ static const yytype_uint16 yystos[] =
 {
        0,    13,    15,    31,    35,    49,    50,    57,    62,    63,
       84,   103,   124,   132,   133,   134,   144,   145,   157,   171,
-     187,   203,   208,   212,   237,   239,   255,   273,   277,   367,
-     384,   388,   399,   410,   432,   435,   437,   440,   443,   444,
-     451,   453,   460,   466,   474,   479,   481,   484,   509,   513,
-     558,   570,   574,   577,   583,   612,   618,   628,   639,   642,
-     643,   644,   645,   646,   648,   653,   655,   662,   692,   720,
-     727,   836,   927,  1001,  1044,  1047,  1055,  1058,  1063,  1065,
-    1066,  1071,  1074,  1079,  1086,  1098,  1099,  1265,  1267,  1277,
-    1280,  1305,  1313,  1324,  1331,  1345,  1348,  1351,  1361,  1367,
-    1371,  1376,  1377,  1427,  1444,  1450,  1452,  1459,  1461,  1489,
-    1495,  1496,  1497,  1498,  1551,  1559,  1560,  1561,    11,   111,
-     129,   195,   278,   404,   472,   530,  1036,  1037,  1520,  1521,
-    1522,  1525,   274,   355,  1073,  1490,   539,  1418,   230,     5,
+     187,   203,   208,   212,   237,   239,   255,   273,   277,   368,
+     385,   389,   400,   411,   433,   436,   438,   441,   444,   445,
+     452,   454,   461,   467,   475,   480,   482,   485,   510,   514,
+     559,   571,   575,   578,   584,   613,   619,   629,   640,   643,
+     644,   645,   646,   647,   649,   654,   656,   663,   693,   721,
+     728,   837,   928,  1002,  1045,  1048,  1056,  1059,  1064,  1066,
+    1067,  1072,  1075,  1080,  1087,  1099,  1100,  1266,  1268,  1278,
+    1281,  1306,  1314,  1325,  1332,  1346,  1349,  1352,  1362,  1368,
+    1372,  1377,  1378,  1428,  1445,  1452,  1454,  1461,  1463,  1491,
+    1497,  1498,  1499,  1500,  1553,  1561,  1562,  1563,    11,   111,
+     129,   195,   278,   405,   473,   531,  1037,  1038,  1522,  1523,
+    1524,  1527,   274,   356,  1074,  1492,   540,  1419,   230,     5,
        7,     8,     9,    10,    11,    14,    18,    21,    23,    24,
       25,    26,    27,    28,    29,    31,    35,    39,    42,    43,
       44,    46,    48,    49,    52,    55,    56,    58,    59,    61,
@@ -17169,419 +17196,420 @@ static const yytype_uint16 yystos[] =
      297,   298,   299,   301,   302,   303,   305,   306,   307,   308,
      310,   311,   316,   317,   318,   319,   320,   321,   324,   325,
      327,   329,   331,   332,   333,   334,   335,   336,   337,   338,
-     339,   342,   343,   346,   347,   348,   349,   353,   354,   359,
-     360,   361,   363,   364,   365,   366,   368,   369,   378,   379,
-     380,   383,   385,   386,   387,   388,   389,   390,   391,   392,
-     393,   394,   395,   396,   399,   400,   401,   403,   405,   406,
-     407,   408,   409,   411,   412,   413,   416,   420,   421,   422,
-     423,   424,   427,   428,   429,   430,   431,   433,   434,   436,
-     437,   438,   441,   443,   445,   446,   448,   449,   453,   454,
-     455,   456,   457,   458,   459,   460,   461,   462,   464,   465,
-     469,   470,   471,   472,   476,   480,   482,   483,   484,   485,
-     487,   488,   489,   490,   491,   492,   499,   500,   502,   505,
-     508,   509,   510,   513,   514,   516,   517,   518,   519,   520,
-     521,   524,   525,   526,   527,   529,   530,   532,   534,   535,
-     536,   537,   540,   541,   543,   544,   545,   546,   552,   553,
-     554,   558,   559,   560,   561,   563,   564,   566,   567,   569,
-     570,   573,   576,   578,   580,   581,   582,   589,   592,   596,
-     597,   598,   599,   600,   601,   608,   609,   611,   612,   613,
-     616,   686,  1417,  1421,  1425,  1426,   301,   529,   533,  1446,
-    1446,   608,  1491,   111,   194,   278,   472,   493,   530,   536,
-     572,   580,   668,   669,   888,   889,   890,   979,   980,   981,
-    1314,  1266,   111,   168,   195,   230,   278,   404,   472,   530,
-     536,   555,   580,   597,  1276,  1421,  1073,   685,   636,  1414,
-    1416,  1421,   654,  1278,   393,   490,  1372,   114,   230,   613,
-    1382,  1446,  1073,   628,   837,  1421,  1368,   460,   580,  1446,
-    1073,  1281,  1362,   496,   717,   721,   722,  1421,   685,  1491,
-    1421,  1102,  1104,  1105,   369,  1429,  1332,   721,   509,   513,
-     484,   552,   484,   533,  1326,   393,   490,  1451,  1306,  1421,
-      31,    84,   155,   399,   421,   453,   509,  1553,   466,   628,
-    1100,     0,   157,   640,   399,   175,   387,  1349,  1414,  1421,
-     161,  1012,  1421,   161,   686,   205,   686,   266,  1418,  1421,
-    1423,   782,   783,   786,   809,  1421,   533,   226,   365,  1038,
-    1039,  1040,   168,  1007,  1520,  1446,  1491,  1080,   693,   636,
-     550,  1056,  1067,    17,  1492,   225,   891,   205,  1423,   784,
-     809,   685,   374,  1517,  1521,  1522,  1523,  1524,  1525,   533,
-     889,   230,   230,   230,   226,   285,   413,  1322,  1323,     7,
-      21,    28,    34,    36,    37,    38,    40,    53,    54,    59,
-      60,    69,    72,    74,    75,    76,    77,    78,    79,    96,
-     100,   101,   106,   107,   110,   111,   116,   117,   118,   123,
-     125,   128,   172,   177,   178,   185,   199,   201,   206,   213,
-     214,   221,   225,   237,   240,   258,   263,   271,   282,   304,
-     309,   320,   324,   326,   330,   331,   332,   333,   334,   341,
-     350,   351,   352,   356,   357,   361,   382,   389,   394,   395,
-     397,   411,   439,   440,   452,   458,   464,   511,   512,   518,
-     522,   523,   528,   539,   543,   544,   545,   546,   556,   557,
-     558,   562,   565,   580,   585,   586,   587,   588,   593,   595,
-     601,   616,   621,   622,   627,   628,   631,   632,   635,   636,
-    1120,  1121,  1122,  1123,  1127,  1134,  1135,  1136,  1137,  1138,
-    1139,  1147,  1151,  1164,  1401,  1403,  1405,  1406,  1410,  1412,
-    1417,  1421,   225,  1275,  1275,  1275,  1421,   205,  1275,  1275,
-     809,  1275,   685,  1275,  1446,   649,  1352,    12,    13,   103,
-     132,   145,   168,   171,   182,   203,   230,   237,   277,   405,
-     409,   425,   433,   441,   466,   479,   480,   524,   555,   577,
-     579,  1462,  1464,  1466,  1467,  1421,   366,    68,   417,   636,
-    1423,   130,   215,   285,  1283,  1421,  1418,   209,   489,  1373,
-     241,  1378,  1445,  1446,   928,  1115,    47,   838,   192,    34,
-     301,  1337,  1369,  1421,   685,  1075,  1446,   130,   285,  1284,
-    1312,   301,   412,   484,  1363,  1364,   589,   718,   474,   723,
-      12,   409,  1460,  1464,   550,  1492,  1103,    12,   141,   215,
-     498,   499,   500,   501,   502,   503,   515,  1109,  1110,  1111,
-    1516,  1428,    24,    35,    59,    60,    67,    72,    99,   101,
-     103,   112,   159,   164,   167,   193,   195,   202,   204,   229,
-     230,   231,   252,   274,   301,   366,   392,   403,   404,   407,
-     408,   428,   471,   484,   514,   532,   533,   581,   600,   953,
-     978,  1333,  1337,  1338,  1340,  1435,   723,  1049,  1050,  1049,
-    1049,   605,  1048,  1049,  1325,  1421,  1418,  1446,  1312,    36,
-     213,   214,   539,  1402,  1419,  1552,  1552,  1552,  1552,  1552,
-    1104,  1100,   629,   634,  1421,  1347,  1346,   318,   537,   564,
-    1003,   578,   107,  1423,  1424,  1005,   788,   810,  1421,  1004,
-     368,     6,    57,   145,   351,   416,   418,   811,  1414,  1040,
-     686,   504,  1526,  1527,  1006,  1064,  1081,  1082,  1083,  1084,
-    1414,   628,   694,  1421,   656,  1271,  1272,  1414,  1271,    56,
-     353,   353,   432,  1493,   350,   351,  1126,  1421,   787,   810,
-     189,     6,  1424,  1477,  1480,   440,    10,   404,   555,   672,
-    1115,  1519,  1527,  1535,  1539,  1540,  1546,   672,  1115,  1518,
-    1527,  1535,  1540,  1546,  1520,  1525,   891,  1421,  1421,  1421,
-     192,  1315,  1319,  1320,  1421,  1322,   628,   628,   628,  1134,
-     628,   628,   628,  1120,  1167,   628,   628,   628,   628,   628,
-     628,   628,   628,   628,   628,   628,   628,   628,   628,   628,
-    1119,  1119,   628,  1118,   628,   628,   628,   565,   628,  1401,
-     628,   628,   628,   628,   628,   628,   628,   628,   628,   628,
-     628,  1120,   628,   628,   628,   628,  1165,  1166,  1410,  1421,
-     628,   628,   628,   628,   628,   628,   628,   628,   628,  1120,
-    1118,   628,   628,   628,   628,   628,   628,   628,   628,   628,
-     628,   628,   628,   628,   628,   628,   628,  1118,   628,  1401,
-     628,   628,   628,  1401,   628,   628,    36,   213,   214,   539,
-     952,   628,  1119,  1118,  1118,   628,   628,   628,   628,   628,
-    1134,  1134,  1134,  1120,  1511,  1512,  1421,  1152,  1421,    16,
-      17,   371,   374,   614,  1124,  1125,   161,   162,   196,   207,
-     247,   259,   286,   344,  1128,    32,   142,   244,   267,   330,
-     426,   477,   478,   491,   619,   620,   621,   622,   623,   624,
-     625,   626,  1126,  1134,    71,   373,   630,  1419,   628,   636,
-     172,  1421,   686,  1421,   362,   810,   686,  1423,   820,  1338,
-     686,  1424,  1476,  1270,  1275,   584,   650,    34,    67,   135,
-     159,   163,   197,   217,   231,   279,   301,   403,   412,   427,
-     445,   484,   485,   510,   532,   581,  1353,  1357,  1358,  1446,
-     403,  1465,   455,   455,   530,   536,   580,   597,   369,  1469,
-     529,   362,  1471,    66,   484,  1468,   112,   597,  1470,   362,
-     630,    19,   161,  1217,  1218,  1453,  1421,   226,  1035,   490,
-      90,   412,  1374,    49,    88,   285,  1384,  1414,  1447,  1448,
-    1072,   629,  1120,   269,   272,   414,   839,   841,   635,   647,
-    1418,   279,  1076,  1424,  1077,  1078,  1414,  1059,   241,  1272,
-    1285,  1286,    49,  1365,   630,  1419,    55,    65,    81,    93,
-      94,    95,   109,   319,   336,   462,   517,   535,   724,   726,
-    1465,   362,   362,   460,  1494,  1493,   571,  1499,  1500,   623,
-    1113,  1114,  1115,  1111,  1430,  1431,  1432,   167,   474,   267,
-     603,  1344,   628,   111,   168,   195,   404,   533,   555,   597,
-    1344,    12,   900,  1423,   268,  1236,  1238,   192,   244,  1339,
-    1341,    70,   510,   190,   510,   529,    70,   510,    12,    42,
-      97,   102,   246,   317,   380,   492,   526,  1327,  1328,  1329,
-     167,   217,   510,   510,  1236,  1344,  1341,   279,   158,    73,
-     406,   529,   554,   510,   592,  1046,   431,   505,  1051,  1052,
-    1045,    91,  1272,  1035,   630,   364,  1555,   525,  1556,   251,
-     448,  1554,   629,  1500,  1502,  1504,  1505,   157,   641,  1098,
-    1350,  1402,  1421,   128,   886,   887,   897,   898,   962,   114,
-    1119,   635,   687,     6,   789,   687,   628,   113,   806,   806,
-     806,     4,  1002,  1008,   465,   597,  1527,  1271,   244,   630,
-     388,  1092,  1094,  1095,   695,   696,  1120,   227,   287,   288,
-     289,   290,   291,   292,   294,   295,   296,   297,   298,   299,
-     300,   302,   303,   429,   430,   657,   658,   661,   175,   413,
-     630,  1057,    58,   175,   179,   190,   316,   413,  1068,  1069,
-    1070,    56,   432,   172,   667,   789,   114,   806,   223,   630,
-    1115,  1115,  1115,   168,   195,   195,  1527,  1414,   982,   983,
-     982,   982,  1273,  1274,  1414,  1415,  1421,   630,  1317,   636,
-    1321,  1120,  1120,    12,   141,  1159,  1219,  1159,  1159,  1159,
-     602,  1169,  1120,  1120,  1164,  1164,  1120,  1120,  1120,  1132,
-    1133,  1120,  1120,  1120,  1120,  1120,  1120,   141,  1159,  1219,
-     629,   125,   185,   213,   282,   357,   562,   629,  1245,  1248,
-    1249,   629,  1120,  1120,  1120,  1120,  1410,  1511,   119,   120,
-     121,   122,   123,   218,   219,   220,   221,   320,   322,   323,
-     324,   331,   411,   463,   464,   601,   615,   616,  1214,  1215,
-    1164,   115,   118,   543,   546,  1216,   141,  1154,  1120,  1120,
-    1120,  1120,  1214,  1164,  1120,  1164,  1166,     9,   630,   636,
-     141,  1159,  1120,  1120,   141,  1159,  1120,  1120,  1164,  1164,
-    1164,  1120,  1120,  1120,  1164,  1123,  1120,  1120,  1120,  1120,
-    1120,  1120,  1159,  1159,  1120,  1120,   141,  1159,  1120,  1215,
-    1215,  1120,    45,   260,   551,  1120,  1120,   629,  1411,  1412,
-    1421,  1159,  1159,  1120,  1120,   629,   630,   629,   466,   628,
-    1508,  1509,  1120,   635,  1153,  1423,   636,  1120,  1120,  1120,
-    1122,   178,   356,   557,   573,  1126,    12,    18,  1122,  1129,
-    1123,  1123,   628,  1134,  1123,  1123,  1123,  1123,   267,  1123,
-    1123,   240,  1123,   240,  1123,  1123,  1123,  1123,  1123,    32,
-     244,   267,   426,  1423,  1134,  1120,  1140,  1421,   636,  1414,
-     820,   354,   599,   821,   822,   159,   630,  1271,  1268,   635,
-     651,   652,   279,   279,   279,   279,    49,   279,   279,   630,
-    1354,   529,   628,  1481,  1424,  1481,  1481,  1481,   195,   404,
-     533,  1463,  1467,  1421,   183,   347,  1421,  1454,  1455,  1285,
-    1418,   580,  1120,  1375,  1087,   274,  1383,  1218,   630,  1271,
-    1116,    73,   628,   846,   847,   846,   847,   387,   849,   210,
-     254,  1423,    30,   550,  1370,   630,   550,   630,   550,  1271,
-    1286,  1282,    12,  1366,  1364,   630,   161,   630,  1424,   195,
-     404,  1463,  1421,    12,   141,  1507,   630,  1106,  1120,  1408,
-    1421,   630,   202,   274,   363,   471,  1433,  1434,  1437,  1438,
-     244,  1342,  1418,  1120,   623,   891,   686,   686,   686,  1414,
-     686,  1414,   279,   335,   510,  1336,  1336,   282,   357,   456,
-     562,  1239,  1240,  1403,  1421,  1344,  1421,   686,  1344,  1424,
-    1339,   686,  1344,   245,   527,   180,   190,  1330,   630,  1342,
-    1339,  1414,  1341,  1339,  1339,  1344,  1344,   576,  1053,   630,
-    1053,   487,   466,   628,   632,  1170,  1171,  1172,  1173,  1174,
-    1183,  1184,  1198,  1402,   391,  1557,   372,  1232,  1238,  1506,
-     887,    71,   953,   137,  1423,    82,    96,   256,   328,   353,
-     415,   504,   689,   691,   422,   566,   807,   808,   233,   803,
-     804,   805,   812,   820,   822,   111,   216,   378,   389,   396,
-     488,   580,   670,   671,  1418,    25,   308,   797,   798,   799,
-     812,   813,   814,   820,   822,   790,   791,   797,     6,    13,
-      15,    26,    27,    57,    62,    63,    69,    82,    90,   100,
-     114,   131,   138,   139,   145,   153,   159,   188,   228,   230,
-     238,   253,   307,   325,   329,   367,   372,   379,   381,   388,
-     389,   420,   434,   435,   436,   437,   457,   514,   530,   534,
-     553,   558,   571,   833,   893,   895,   897,   898,  1013,  1017,
-    1019,  1022,  1028,  1029,  1030,  1228,  1417,   362,   680,  1009,
-     129,   243,  1414,   128,  1085,  1421,  1083,  1414,   835,  1094,
-     230,   254,   976,  1096,   629,   630,   161,   161,   161,   161,
+     339,   340,   343,   344,   347,   348,   349,   350,   354,   355,
+     360,   361,   362,   364,   365,   366,   367,   369,   370,   379,
+     380,   381,   384,   386,   387,   388,   389,   390,   391,   392,
+     393,   394,   395,   396,   397,   400,   401,   402,   404,   406,
+     407,   408,   409,   410,   412,   413,   414,   417,   421,   422,
+     423,   424,   425,   428,   429,   430,   431,   432,   434,   435,
+     437,   438,   439,   442,   444,   446,   447,   449,   450,   454,
+     455,   456,   457,   458,   459,   460,   461,   462,   463,   465,
+     466,   470,   471,   472,   473,   477,   481,   483,   484,   485,
+     486,   488,   489,   490,   491,   492,   493,   500,   501,   503,
+     506,   509,   510,   511,   514,   515,   517,   518,   519,   520,
+     521,   522,   525,   526,   527,   528,   530,   531,   533,   535,
+     536,   537,   538,   541,   542,   544,   545,   546,   547,   553,
+     554,   555,   559,   560,   561,   562,   564,   565,   567,   568,
+     570,   571,   574,   577,   579,   581,   582,   583,   590,   593,
+     597,   598,   599,   600,   601,   602,   609,   610,   612,   613,
+     614,   617,   687,  1418,  1422,  1426,  1427,   301,   530,   534,
+    1447,   598,  1447,  1448,   609,  1493,   111,   194,   278,   473,
+     494,   531,   537,   573,   581,   669,   670,   889,   890,   891,
+     980,   981,   982,  1315,  1267,   111,   168,   195,   230,   278,
+     405,   473,   531,   537,   556,   581,   598,  1277,  1422,  1074,
+     686,   637,  1415,  1417,  1422,   655,  1279,   394,   491,  1373,
+     114,   230,   614,  1383,  1447,  1074,   629,   838,  1422,  1369,
+     461,   581,  1447,  1074,  1282,  1363,   497,   718,   722,   723,
+    1422,   686,  1493,  1422,  1103,  1105,  1106,   370,  1430,  1333,
+     722,   510,   514,   485,   553,   485,   534,  1327,   394,   491,
+    1453,  1307,  1422,    31,    84,   155,   400,   422,   454,   510,
+    1555,   467,   629,  1101,     0,   157,   641,   400,   175,   388,
+    1350,  1415,  1422,   161,  1013,  1422,   161,   687,   205,   687,
+     266,  1419,  1422,  1424,   783,   784,   787,   810,  1422,   534,
+     226,   366,  1039,  1040,  1041,   168,  1008,  1522,  1447,  1493,
+    1081,   694,   637,   551,  1057,  1068,    17,  1494,   225,   892,
+     205,  1424,   785,   810,   686,   375,  1519,  1523,  1524,  1525,
+    1526,  1527,   534,   890,   230,   230,   230,   226,   285,   414,
+    1323,  1324,     7,    21,    28,    34,    36,    37,    38,    40,
+      53,    54,    59,    60,    69,    72,    74,    75,    76,    77,
+      78,    79,    96,   100,   101,   106,   107,   110,   111,   116,
+     117,   118,   123,   125,   128,   172,   177,   178,   185,   199,
+     201,   206,   213,   214,   221,   225,   237,   240,   258,   263,
+     271,   282,   304,   309,   320,   324,   326,   330,   331,   332,
+     333,   334,   342,   351,   352,   353,   357,   358,   362,   383,
+     390,   395,   396,   398,   412,   440,   441,   453,   459,   465,
+     512,   513,   519,   523,   524,   529,   540,   544,   545,   546,
+     547,   557,   558,   559,   563,   566,   581,   586,   587,   588,
+     589,   594,   596,   602,   617,   622,   623,   628,   629,   632,
+     633,   636,   637,  1121,  1122,  1123,  1124,  1128,  1135,  1136,
+    1137,  1138,  1139,  1140,  1148,  1152,  1165,  1402,  1404,  1406,
+    1407,  1411,  1413,  1418,  1422,   225,  1276,  1276,  1276,  1422,
+     205,  1276,  1276,   810,  1276,   686,  1276,  1447,   650,  1353,
+      12,    13,   103,   132,   145,   168,   171,   182,   203,   230,
+     237,   277,   406,   410,   426,   434,   442,   467,   480,   481,
+     525,   556,   578,   580,  1464,  1466,  1468,  1469,  1422,   367,
+      68,   418,   637,  1424,   130,   215,   285,  1284,  1422,  1419,
+     209,   490,  1374,   241,  1379,  1446,  1447,   929,  1116,    47,
+     839,   192,    34,   301,  1338,  1370,  1422,   686,  1076,  1448,
+     130,   285,  1285,  1313,   301,   413,   485,  1364,  1365,   590,
+     719,   475,   724,    12,   410,  1462,  1466,   551,  1494,  1104,
+      12,   141,   215,   499,   500,   501,   502,   503,   504,   516,
+    1110,  1111,  1112,  1518,  1429,    24,    35,    59,    60,    67,
+      72,    99,   101,   103,   112,   159,   164,   167,   193,   195,
+     202,   204,   229,   230,   231,   252,   274,   301,   367,   393,
+     404,   405,   408,   409,   429,   472,   485,   515,   533,   534,
+     582,   601,   954,   979,  1334,  1338,  1339,  1341,  1436,   724,
+    1050,  1051,  1050,  1050,   606,  1049,  1050,  1326,  1422,  1419,
+    1447,  1313,    36,   213,   214,   540,  1403,  1420,  1554,  1554,
+    1554,  1554,  1554,  1105,  1101,   630,   635,  1422,  1348,  1347,
+     318,   538,   565,  1004,   579,   107,  1424,  1425,  1006,   789,
+     811,  1422,  1005,   369,     6,    57,   145,   352,   417,   419,
+     812,  1415,  1041,   687,   505,  1528,  1529,  1007,  1065,  1082,
+    1083,  1084,  1085,  1415,   629,   695,  1422,   657,  1272,  1273,
+    1415,  1272,    56,   354,   354,   433,  1495,   351,   352,  1127,
+    1422,   788,   811,   189,     6,  1425,  1479,  1482,   441,    10,
+     405,   556,   673,  1116,  1521,  1529,  1537,  1541,  1542,  1548,
+     673,  1116,  1520,  1529,  1537,  1542,  1548,  1522,  1527,   892,
+    1422,  1422,  1422,   192,  1316,  1320,  1321,  1422,  1323,   629,
+     629,   629,  1135,   629,   629,   629,  1121,  1168,   629,   629,
+     629,   629,   629,   629,   629,   629,   629,   629,   629,   629,
+     629,   629,   629,  1120,  1120,   629,  1119,   629,   629,   629,
+     566,   629,  1402,   629,   629,   629,   629,   629,   629,   629,
+     629,   629,   629,   629,  1121,   629,   629,   629,   629,  1166,
+    1167,  1411,  1422,   629,   629,   629,   629,   629,   629,   629,
+     629,   629,  1121,  1119,   629,   629,   629,   629,   629,   629,
+     629,   629,   629,   629,   629,   629,   629,   629,   629,   629,
+    1119,   629,  1402,   629,   629,   629,  1402,   629,   629,    36,
+     213,   214,   540,   953,   629,  1120,  1119,  1119,   629,   629,
+     629,   629,   629,  1135,  1135,  1135,  1121,  1513,  1514,  1422,
+    1153,  1422,    16,    17,   372,   375,   615,  1125,  1126,   161,
+     162,   196,   207,   247,   259,   286,   345,  1129,    32,   142,
+     244,   267,   330,   427,   478,   479,   492,   620,   621,   622,
+     623,   624,   625,   626,   627,  1127,  1135,    71,   374,   631,
+    1420,   629,   637,   172,  1422,   687,  1422,   363,   811,   687,
+    1424,   821,  1339,   687,  1425,  1478,  1271,  1276,   585,   651,
+      34,    67,   135,   159,   163,   197,   217,   231,   279,   301,
+     404,   413,   428,   446,   485,   486,   511,   533,   582,  1354,
+    1358,  1359,  1447,   404,  1467,   456,   456,   531,   537,   581,
+     598,   370,  1471,   530,   363,  1473,    66,   485,  1470,   112,
+     598,  1472,   363,   631,    19,   161,  1218,  1219,  1455,  1422,
+     226,  1036,   491,    90,   413,  1375,    49,    88,   285,  1385,
+    1415,  1449,  1450,  1073,   630,  1121,   269,   272,   415,   840,
+     842,   636,   648,  1419,   279,  1077,  1425,  1078,  1079,  1415,
+    1060,   241,  1273,  1286,  1287,    49,  1366,   631,  1420,    55,
+      65,    81,    93,    94,    95,   109,   319,   337,   463,   518,
+     536,   725,   727,  1467,   363,   363,   461,  1496,  1495,   572,
+    1501,  1502,   624,  1114,  1115,  1116,  1112,  1431,  1432,  1433,
+     167,   475,   267,   604,  1345,   629,   111,   168,   195,   405,
+     534,   556,   598,  1345,    12,   901,  1424,   268,  1237,  1239,
+     192,   244,  1340,  1342,    70,   511,   190,   511,   530,    70,
+     511,    12,    42,    97,   102,   246,   317,   381,   493,   527,
+    1328,  1329,  1330,   167,   217,   511,   511,  1237,  1345,  1342,
+     279,   158,    73,   407,   530,   555,   511,   593,  1047,   432,
+     506,  1052,  1053,  1046,    91,  1273,  1036,   631,   365,  1557,
+     526,  1558,   251,   449,  1556,   630,  1502,  1504,  1506,  1507,
+     157,   642,  1099,  1351,  1403,  1422,   128,   887,   888,   898,
+     899,   963,   114,  1120,   636,   688,     6,   790,   688,   629,
+     113,   807,   807,   807,     4,  1003,  1009,   466,   598,  1529,
+    1272,   244,   631,   389,  1093,  1095,  1096,   696,   697,  1121,
+     227,   287,   288,   289,   290,   291,   292,   294,   295,   296,
+     297,   298,   299,   300,   302,   303,   430,   431,   658,   659,
+     662,   175,   414,   631,  1058,    58,   175,   179,   190,   316,
+     414,  1069,  1070,  1071,    56,   433,   172,   668,   790,   114,
+     807,   223,   631,  1116,  1116,  1116,   168,   195,   195,  1529,
+    1415,   983,   984,   983,   983,  1274,  1275,  1415,  1416,  1422,
+     631,  1318,   637,  1322,  1121,  1121,    12,   141,  1160,  1220,
+    1160,  1160,  1160,   603,  1170,  1121,  1121,  1165,  1165,  1121,
+    1121,  1121,  1133,  1134,  1121,  1121,  1121,  1121,  1121,  1121,
+     141,  1160,  1220,   630,   125,   185,   213,   282,   358,   563,
+     630,  1246,  1249,  1250,   630,  1121,  1121,  1121,  1121,  1411,
+    1513,   119,   120,   121,   122,   123,   218,   219,   220,   221,
+     320,   322,   323,   324,   331,   412,   464,   465,   602,   616,
+     617,  1215,  1216,  1165,   115,   118,   544,   547,  1217,   141,
+    1155,  1121,  1121,  1121,  1121,  1215,  1165,  1121,  1165,  1167,
+       9,   631,   637,   141,  1160,  1121,  1121,   141,  1160,  1121,
+    1121,  1165,  1165,  1165,  1121,  1121,  1121,  1165,  1124,  1121,
+    1121,  1121,  1121,  1121,  1121,  1160,  1160,  1121,  1121,   141,
+    1160,  1121,  1216,  1216,  1121,    45,   260,   552,  1121,  1121,
+     630,  1412,  1413,  1422,  1160,  1160,  1121,  1121,   630,   631,
+     630,   467,   629,  1510,  1511,  1121,   636,  1154,  1424,   637,
+    1121,  1121,  1121,  1123,   178,   357,   558,   574,  1127,    12,
+      18,  1123,  1130,  1124,  1124,   629,  1135,  1124,  1124,  1124,
+    1124,   267,  1124,  1124,   240,  1124,   240,  1124,  1124,  1124,
+    1124,  1124,    32,   244,   267,   427,  1424,  1135,  1121,  1141,
+    1422,   637,  1415,   821,   355,   600,   822,   823,   159,   631,
+    1272,  1269,   636,   652,   653,   279,   279,   279,   279,    49,
+     279,   279,   631,  1355,   530,   629,  1483,  1425,  1483,  1483,
+    1483,   195,   405,   534,  1465,  1469,  1422,   183,   348,  1422,
+    1456,  1457,  1286,  1419,   581,  1121,  1376,  1088,   274,  1384,
+    1219,   631,  1272,  1117,    73,   629,   847,   848,   847,   848,
+     388,   850,   210,   254,  1424,    30,   551,  1371,   631,   551,
+     631,   551,  1272,  1287,  1283,    12,  1367,  1365,   631,   161,
+     631,  1425,   195,   405,  1465,  1422,    12,   141,  1509,   631,
+    1107,  1121,  1409,  1422,   631,   202,   274,   364,   472,  1434,
+    1435,  1438,  1439,   244,  1343,  1419,  1121,   624,   892,   687,
+     687,   687,  1415,   687,  1415,   279,   335,   511,  1337,  1337,
+     282,   358,   457,   563,  1240,  1241,  1404,  1422,  1345,  1422,
+     687,  1345,  1425,  1340,   687,  1345,   245,   528,   180,   190,
+    1331,   631,  1343,  1340,  1415,  1342,  1340,  1340,  1345,  1345,
+     577,  1054,   631,  1054,   488,   467,   629,   633,  1171,  1172,
+    1173,  1174,  1175,  1184,  1185,  1199,  1403,   392,  1559,   373,
+    1233,  1239,  1508,   888,    71,   954,   137,  1424,    82,    96,
+     256,   328,   354,   416,   505,   690,   692,   423,   567,   808,
+     809,   233,   804,   805,   806,   813,   821,   823,   111,   216,
+     379,   390,   397,   489,   581,   671,   672,  1419,    25,   308,
+     798,   799,   800,   813,   814,   815,   821,   823,   791,   792,
+     798,     6,    13,    15,    26,    27,    57,    62,    63,    69,
+      82,    90,   100,   114,   131,   138,   139,   145,   153,   159,
+     188,   228,   230,   238,   253,   307,   325,   329,   368,   373,
+     380,   382,   389,   390,   421,   435,   436,   437,   438,   458,
+     515,   531,   535,   554,   559,   572,   834,   894,   896,   898,
+     899,  1014,  1018,  1020,  1023,  1029,  1030,  1031,  1229,  1418,
+     363,   681,  1010,   129,   243,  1415,   128,  1086,  1422,  1084,
+    1415,   836,  1095,   230,   254,   977,  1097,   630,   631,   161,
      161,   161,   161,   161,   161,   161,   161,   161,   161,   161,
-     161,   161,   161,   161,   630,  1272,   578,  1069,   885,   886,
-      82,   348,   423,   567,   800,   801,   802,   812,   816,   817,
-     818,   819,   820,   822,   609,   583,   785,    47,   596,   605,
-    1478,  1480,   195,   686,   686,   891,   686,  1421,   663,   560,
-     584,   990,   362,   362,   362,   630,  1318,  1316,   636,  1321,
-    1320,   192,   623,  1421,   630,   629,  1159,   629,  1160,   629,
-     629,   629,  1120,   151,   602,  1168,    19,   629,   584,   629,
-     629,   629,   630,   630,   629,   630,   630,   630,   630,   629,
-     630,   584,   630,  1148,   629,   623,   629,   630,   630,   629,
-     629,   629,   629,   192,   629,   630,  1150,   629,   630,   630,
-     630,   622,   629,   630,   629,   629,   628,  1410,  1421,  1159,
-     629,   629,   629,  1159,   629,   630,   629,   629,   629,   629,
-     629,   629,   630,   629,   244,   629,   630,   630,   630,   630,
-     629,   629,   629,   630,   192,   630,  1159,   629,   629,   630,
-     630,   630,   629,   192,  1120,   192,  1120,   192,  1120,   192,
-     629,   630,   629,   629,   629,   629,   630,   629,  1164,  1188,
-    1189,  1190,   466,   628,  1101,  1503,  1504,   571,  1513,   633,
-     202,   274,   471,  1436,   475,  1421,   178,   356,   557,   573,
-     628,    17,  1120,  1511,   166,  1224,  1123,  1120,  1120,  1123,
-     628,  1134,  1123,  1115,  1144,  1145,  1146,   628,   636,  1421,
-    1269,   821,   161,   475,  1296,  1297,  1424,    51,   447,  1041,
-    1271,  1423,   630,  1358,  1271,  1359,  1421,  1482,  1483,   550,
-     623,  1414,  1421,  1475,  1475,  1475,   161,   183,   196,   207,
-     257,   259,   286,   347,   401,  1456,  1458,   603,  1220,  1279,
-    1424,  1088,  1089,  1090,  1091,  1414,   232,   285,   417,   610,
-    1449,  1448,   628,  1115,  1245,   521,   850,   840,    11,   842,
-    1120,  1418,  1424,  1424,  1078,  1414,   175,   413,   582,  1060,
-    1061,  1062,   466,   474,   588,   589,   628,   881,  1287,  1290,
-     726,   118,   543,   546,   725,  1151,  1405,  1410,   203,   192,
-    1475,  1475,  1475,  1501,  1114,   192,   241,  1107,  1108,  1231,
-    1232,  1260,  1116,  1116,   636,  1431,   128,   552,  1421,  1440,
-     337,   389,   635,   953,  1439,  1418,   192,  1343,   629,  1421,
-     170,   456,   360,   630,  1344,   412,  1236,  1329,  1343,  1344,
-    1339,  1414,  1344,  1344,   661,  1054,  1052,  1197,  1421,   104,
-     234,   251,   263,   340,   452,   515,  1182,   474,   630,  1414,
-    1197,   630,   190,  1558,    47,  1236,  1297,  1297,   338,  1418,
-     504,   504,   504,   504,   504,   465,  1418,  1418,  1297,   630,
-     805,  1418,  1418,  1418,  1418,   125,   185,   213,   282,   357,
-     562,  1244,  1418,  1418,   629,   630,  1297,  1297,   630,   799,
-     792,   793,   812,   813,   814,    80,    92,   388,   909,   916,
-     917,   974,   976,   980,   981,  1034,  1034,   388,  1297,  1297,
-    1034,  1297,   388,   388,  1297,  1297,   550,   137,  1297,   252,
-     530,   189,   388,   402,   976,  1034,   252,  1297,   530,   137,
-    1297,  1297,  1297,  1297,  1034,   388,    47,  1297,  1297,   835,
-    1297,   388,   386,    19,   161,   550,  1043,   388,   388,  1297,
-     140,   317,  1421,  1297,  1297,   388,  1297,   893,   630,   832,
-     833,  1017,   628,   636,   908,   918,  1413,  1421,  1296,    86,
-     461,   435,  1010,  1528,  1093,   628,  1120,   628,  1244,  1418,
-    1418,   125,   185,   282,   357,   562,  1246,  1418,  1244,  1418,
-    1418,  1418,  1418,  1418,  1244,  1244,  1418,  1406,  1418,  1244,
-     658,  1297,  1297,  1297,  1297,   630,   802,  1423,   278,   176,
-     794,   795,   796,   812,   813,   814,   815,   818,   819,   820,
-     822,   389,   539,  1423,  1421,  1547,     8,    30,   780,   686,
-     628,   449,   267,   628,   824,   892,   894,   895,    46,   210,
-     459,   995,   995,  1414,  1414,  1414,  1274,  1421,   584,  1220,
-    1421,  1171,   636,  1321,   240,  1120,   629,  1120,   542,  1120,
-    1120,   155,    34,    60,   115,   118,   126,   143,   242,   342,
-     482,   546,   575,  1161,    34,   954,  1423,  1133,  1120,  1132,
-    1164,  1120,  1120,  1120,   954,  1161,  1164,   629,   240,   240,
-    1120,  1120,  1164,  1120,  1120,  1120,  1120,  1120,  1123,   629,
-     629,  1120,  1120,  1120,  1120,  1120,  1120,  1164,   240,  1120,
-    1120,  1120,   629,  1120,  1120,  1120,  1120,   192,  1120,   192,
-    1120,   192,  1120,  1120,  1120,   629,  1514,  1515,  1516,  1189,
-    1101,   629,  1507,   636,   636,   636,  1423,  1120,  1511,  1122,
-     629,   630,   629,  1134,  1214,  1214,    17,  1120,  1511,  1224,
-    1120,   629,   630,  1163,  1164,  1421,   899,  1423,  1041,   652,
-    1355,   629,   630,  1477,   636,   636,   550,   550,   550,  1457,
-    1221,  1237,  1238,  1287,   630,  1092,  1094,   539,  1420,   610,
-     274,    88,   843,   844,   845,  1421,   855,  1123,    47,   628,
-     857,   847,   161,   628,   550,  1061,   882,  1288,   628,  1293,
-    1298,  1293,   629,   881,  1289,  1407,  1408,  1411,  1421,  1291,
-     161,   369,  1476,   192,   192,   192,  1099,   146,  1171,  1261,
-     190,   277,  1112,  1260,  1237,  1108,    19,  1117,  1418,  1421,
-     623,  1421,   636,   248,   636,  1296,   128,   954,   955,  1296,
-     190,  1296,   635,  1423,    34,   128,   957,   958,  1423,  1246,
-    1334,   164,   600,  1240,  1241,   170,  1240,  1240,   357,  1335,
-    1220,  1339,   630,  1185,  1192,  1197,  1170,   251,   251,   375,
-    1199,   251,   263,   452,  1199,  1183,  1170,  1308,  1309,  1411,
-    1172,  1218,  1194,  1195,  1244,   321,  1233,   128,   959,   961,
-    1423,   955,   114,   114,   129,   243,   213,   282,   357,   562,
-     823,  1247,  1248,  1417,   805,   671,   823,   823,   799,   630,
-     793,   998,  1413,  1073,    63,   189,   402,   572,   915,   975,
-     998,   976,   977,   977,  1413,  1073,  1246,  1244,  1413,  1244,
-      12,  1018,  1026,  1027,  1421,  1073,  1418,  1418,   953,  1297,
-    1244,   254,  1026,   254,  1413,  1413,   899,  1297,   183,   257,
-     353,   902,  1244,  1246,  1246,  1413,  1073,  1229,  1230,  1411,
-     128,  1244,   128,  1244,  1250,   834,  1418,  1073,  1414,  1073,
-    1073,    85,    87,   128,   149,   184,   380,   424,   901,  1244,
-    1250,  1018,   896,     6,   145,  1030,   905,   906,   907,   908,
-     909,  1421,     8,   183,  1042,   425,   914,   915,   968,   919,
-     636,   128,  1247,  1418,  1421,   351,   400,    23,   169,   674,
-     550,   138,   153,   676,   628,  1529,   628,   402,  1210,  1211,
-    1212,  1421,   659,   660,  1244,  1418,  1245,   823,   823,   802,
-     368,   205,  1297,   630,   796,   539,    19,   584,  1479,   449,
-     628,   132,   237,   577,   781,   673,  1541,   126,   242,   419,
-     516,   904,  1414,   267,   388,   825,   831,   832,   905,   831,
-     630,   894,   664,   665,   666,   636,  1171,  1231,  1321,  1220,
-    1120,   629,  1120,   542,   628,   944,   945,   945,   945,   628,
-     939,   940,   944,  1162,   945,   242,   945,   242,   629,   629,
-     629,    19,  1130,   629,   629,    19,   629,   629,   629,  1149,
-    1120,  1120,   629,   629,   372,  1156,   630,   630,   629,   630,
-     629,   244,  1141,  1142,   629,   629,   629,   629,   630,   629,
-     629,  1120,   629,   190,   629,   629,   630,   629,   630,   630,
-     629,  1120,   629,  1120,   629,  1120,   629,   629,   629,  1113,
-    1516,   629,  1510,   636,   999,   629,  1164,  1122,   629,   630,
-     629,  1116,  1146,   629,   605,  1356,  1483,   605,  1486,   623,
-     623,  1477,  1477,  1477,   628,  1120,   362,  1303,  1090,  1414,
-    1094,   226,  1097,  1379,   629,   630,  1116,   841,   388,   858,
-     859,  1245,   843,  1424,  1109,  1294,  1295,  1411,  1299,   630,
-     628,  1290,   629,   629,   630,   636,  1499,   725,   192,  1476,
-    1476,  1476,  1220,  1220,   147,   376,  1256,  1257,  1262,   577,
-     244,  1418,  1421,   636,  1421,   265,  1421,    12,    34,   128,
-     362,  1120,  1443,    71,   960,  1120,  1424,   361,   389,   539,
-    1442,  1436,  1296,  1236,  1241,  1236,  1344,   661,   571,   629,
-    1503,  1193,   633,   251,  1183,  1199,  1199,   251,   362,   362,
-     584,   630,  1307,  1296,  1208,  1209,  1109,  1120,  1234,  1409,
-     793,  1020,   628,   254,   254,   977,   998,   983,   998,   998,
-     145,   474,  1018,  1031,  1015,   630,  1245,   955,  1418,   998,
-    1041,  1418,  1032,  1018,   630,    20,   133,  1235,   838,  1018,
-    1023,  1018,   628,   629,   630,  1421,  1414,    33,    34,    39,
-      41,    43,    44,    60,   115,   118,   126,   143,   160,   184,
-     186,   199,   200,   242,   271,   280,   281,   283,   313,   314,
-     315,   332,   333,   334,   339,   342,   358,   359,   394,   395,
-     419,   470,   474,   486,   540,   543,   546,   547,   548,   549,
-     590,   591,   616,   920,   929,   932,   933,   934,   935,   936,
-     937,   938,  1421,   400,  1120,  1120,   362,   680,   686,   362,
-      82,   681,  1421,  1530,    19,  1018,   629,   630,   629,   630,
-     628,  1421,   823,   796,  1418,   904,  1548,   362,   362,   697,
-     698,   700,  1421,   490,  1414,   881,   629,   226,   440,   828,
-    1385,   894,   628,   628,   628,  1421,  1220,   268,  1242,  1214,
-    1120,   125,   282,   357,   562,    21,    34,    48,   569,   953,
-     963,   964,   965,   357,   628,   940,   946,   115,   118,   126,
-     143,   186,   242,   339,   342,   419,   546,   575,   933,   934,
-    1131,  1161,   629,  1214,  1214,    47,   468,  1155,  1120,  1120,
-    1164,    43,   340,   629,   605,  1143,  1120,  1214,  1120,  1120,
-    1120,  1120,   629,   629,   629,  1191,  1508,  1421,   629,  1164,
-    1117,   417,   203,   442,  1484,  1484,  1484,   128,  1120,  1301,
-    1302,   148,  1097,   261,  1385,   845,   629,   210,   254,   860,
-     629,   630,   629,  1113,   630,  1296,  1300,  1301,  1298,  1292,
-    1290,  1407,  1421,  1476,  1237,   205,  1225,  1420,  1420,   635,
-    1258,  1259,  1423,   476,   623,   417,   438,   469,  1441,   961,
-    1296,   628,   628,  1440,  1120,  1507,  1218,  1173,  1170,  1183,
-     251,   251,  1170,  1183,  1176,  1175,  1177,  1309,  1220,  1302,
-    1206,  1207,  1113,   630,  1235,   387,   628,  1021,  1120,   998,
-     983,   628,   982,   982,   128,   128,   918,  1068,  1027,   960,
-     920,  1014,  1230,  1024,  1026,  1016,  1359,   907,   628,   969,
-     944,   944,   945,   945,   939,   398,   930,   939,   939,   965,
-      60,   590,   933,   935,   965,   965,    60,   591,   591,   594,
-     939,   931,   945,   945,   945,   965,   944,   945,    26,    71,
-      82,   128,   198,   356,   362,   402,   470,   572,   922,   947,
-     948,   949,   967,  1126,  1417,   594,   944,   965,    34,   944,
-     966,   944,   944,   945,   946,   636,  1214,   484,  1418,   144,
-    1011,   629,   630,  1531,  1532,   629,  1211,   660,   670,   490,
-     235,   244,   377,   701,   702,   703,   704,  1115,   461,   629,
-     630,   699,  1418,   629,   629,   826,    19,   884,   996,   997,
-    1421,   996,   996,   456,  1240,   629,   629,   629,   629,   629,
-      34,    21,   569,   953,    34,   954,   630,   357,   945,   939,
-      60,   945,   242,   965,   629,   629,   629,  1157,  1402,   629,
-     629,   630,   629,   327,   256,   412,   629,   629,   629,   629,
-     629,   629,   903,  1108,  1237,  1503,   629,   277,   369,    64,
-     249,   349,   506,   519,   611,  1473,  1474,   605,  1485,  1485,
-    1485,   629,   630,  1304,   241,   628,   848,   842,   861,  1421,
-     859,   883,  1295,  1302,   629,  1502,    47,   211,  1222,  1263,
-    1423,   630,   327,    83,   563,   417,  1442,   539,   539,  1296,
-    1186,   362,  1179,  1183,  1183,   362,  1181,  1120,  1120,   628,
-    1231,   188,   226,   583,  1201,  1202,  1205,  1196,  1409,  1245,
-     858,   629,   628,   628,   996,   628,   628,   118,   543,   546,
-     621,   622,  1404,  1405,  1042,  1033,  1073,  1025,  1060,   629,
-     970,  1421,   304,   971,   482,   575,   617,   941,   942,   943,
-     628,   941,   941,   965,   594,   941,   628,   965,   941,   959,
-    1418,   352,   951,  1404,    14,   577,   128,   254,    19,   949,
-     254,   356,  1296,   965,   966,   965,   966,   941,   941,  1421,
-     675,   682,   683,  1421,   466,   628,  1533,   629,  1418,   629,
-     630,   699,  1536,   674,  1542,   700,   929,   950,   827,   892,
-     628,   881,   629,   630,  1235,   628,   629,   629,   170,   456,
-     954,   966,   357,  1158,  1409,  1120,   327,   174,  1112,  1112,
-      17,  1360,   539,   539,   539,    17,  1472,   203,   305,   306,
-     310,   311,  1487,  1488,  1302,   254,   533,  1115,   851,   628,
-     588,   862,   903,  1226,  1409,  1223,  1231,   953,   956,  1259,
-     629,   629,  1443,  1508,  1178,   584,  1180,   584,  1213,  1421,
-    1242,   976,   976,  1202,   903,  1235,   629,   996,   996,   629,
-     996,   996,  1406,  1406,  1042,   241,   629,   630,   193,   385,
-     483,   362,   972,   943,  1000,  1402,  1000,  1119,   352,   589,
-     921,   128,  1247,  1418,  1421,   508,   677,    53,    68,   181,
-     225,   250,   262,   366,   450,   684,   731,   733,   734,   735,
-     737,   738,   739,   740,   741,   742,   744,   752,   753,   756,
-     767,   770,   772,   773,  1417,  1422,  1426,  1102,  1100,   605,
-    1534,  1549,   703,  1421,  1414,   679,   680,   449,   960,  1502,
-     831,   881,   829,    82,   253,   984,   987,   990,   991,   992,
-    1417,   997,   357,   605,   985,   989,   991,   994,   986,   988,
-     991,   993,   170,   629,   630,  1235,   629,   138,  1473,   369,
-    1244,  1244,  1244,   357,   621,  1243,  1488,   577,  1414,   855,
-     520,   856,   853,   854,  1421,   244,   264,    82,    90,   114,
-     230,   307,   325,   348,   530,   878,   879,   880,  1338,   606,
-     607,   630,  1227,  1235,  1120,  1237,   955,  1264,  1187,  1120,
-     628,  1120,   628,   629,   630,   190,  1200,  1200,   629,   629,
-     910,   629,   629,   628,  1421,   132,   577,   629,   630,   629,
-    1119,   628,  1120,   156,   678,   754,   757,  1421,   192,   347,
-     745,   732,  1422,  1422,  1421,   736,   643,   284,   439,   604,
-     776,    31,   774,   637,   629,    52,    63,   274,   688,   950,
-     190,   676,  1543,   828,   629,  1499,  1418,  1297,   992,  1296,
-    1235,   629,   383,   994,   993,  1409,    61,   282,   357,  1310,
-    1311,  1411,  1380,  1116,  1245,   629,   630,   864,   541,  1297,
-    1297,   137,   137,  1297,  1297,  1297,  1297,   628,   873,   880,
-     159,  1409,   404,  1251,    73,  1386,  1503,  1213,  1213,  1421,
-     205,   251,   372,  1204,  1203,   968,   913,   984,   911,   912,
-     858,    51,   353,   447,   474,   973,   973,   965,  1402,   965,
-     928,  1120,  1120,   602,   759,   763,   192,  1421,   747,   748,
-    1120,   706,   730,   731,   733,   735,   737,   739,   740,   741,
-     742,   744,   752,   767,   770,   772,   706,   777,   775,   768,
-     771,  1502,    63,   369,    63,   136,   689,   690,  1126,  1550,
-    1115,   681,   950,   830,  1244,   128,  1247,  1418,  1421,  1417,
-    1235,   630,  1296,   956,   629,   852,   854,   628,   866,   868,
-     863,  1418,  1418,  1297,  1297,  1247,  1247,  1245,  1423,   521,
-     874,   875,  1297,  1235,  1421,   154,   165,   370,   538,  1387,
-    1388,   270,  1389,   629,   629,    47,    47,   628,   628,   984,
-     985,   986,   629,     5,   128,   356,   362,   362,   629,   755,
-     764,   151,   763,   766,   241,   155,  1120,   155,   730,   634,
-     576,  1120,   707,   776,   774,   369,   369,   136,   730,  1537,
-     144,  1544,  1502,  1311,  1302,  1381,   856,   628,   867,   868,
-     869,   312,   865,   868,  1418,  1418,   876,   629,   630,   899,
-    1252,    47,    47,   154,    47,  1388,   507,   538,  1390,  1391,
-    1210,  1212,   577,   132,   390,   598,   923,   602,   758,   760,
-    1120,   706,   155,   743,   225,   542,   284,   634,   779,   144,
-     127,   705,   708,   769,  1422,   769,   150,   682,   688,   456,
-    1392,   629,   630,   312,   871,   872,  1123,   877,  1423,   875,
-     628,  1402,  1402,    47,  1402,    47,    47,  1391,   629,   629,
-     973,   973,    82,   572,   924,   925,   926,   761,   760,   766,
-     765,    53,   746,  1421,   749,  1120,   778,    98,   173,   713,
-     728,  1421,   155,   730,   634,   458,  1545,   223,  1386,   868,
-     630,   870,   878,  1115,  1253,  1254,  1255,  1402,  1402,  1402,
-    1418,   254,   926,  1120,   155,   542,   630,   706,   155,   706,
-     208,   630,   709,    89,   108,   634,  1538,   730,    47,  1389,
-     872,   629,  1120,   629,   630,   762,    53,   706,  1421,   750,
-     439,   155,   190,  1421,   950,   190,   190,   730,  1402,   226,
-    1393,  1116,  1255,   542,   151,   152,   751,   604,   710,   128,
-     729,   716,   717,  1244,   711,   712,   357,   628,  1395,   706,
-     706,   747,   495,   497,   714,   715,   716,   719,  1126,  1421,
-    1120,  1098,   270,   456,  1394,   629,   635,  1396,  1397,  1411,
-     474,  1398,   630,   730,   191,  1423,   629,   630,  1399,  1400,
-    1411,   715,  1397,   630,  1296,  1400,  1115,  1302,  1116
+     161,   161,   161,   161,   161,   161,   161,   631,  1273,   579,
+    1070,   886,   887,    82,   349,   424,   568,   801,   802,   803,
+     813,   817,   818,   819,   820,   821,   823,   610,   584,   786,
+      47,   597,   606,  1480,  1482,   195,   687,   687,   892,   687,
+    1422,   664,   561,   585,   991,   363,   363,   363,   631,  1319,
+    1317,   637,  1322,  1321,   192,   624,  1422,   631,   630,  1160,
+     630,  1161,   630,   630,   630,  1121,   151,   603,  1169,    19,
+     630,   585,   630,   630,   630,   631,   631,   630,   631,   631,
+     631,   631,   630,   631,   585,   631,  1149,   630,   624,   630,
+     631,   631,   630,   630,   630,   630,   192,   630,   631,  1151,
+     630,   631,   631,   631,   623,   630,   631,   630,   630,   629,
+    1411,  1422,  1160,   630,   630,   630,  1160,   630,   631,   630,
+     630,   630,   630,   630,   630,   631,   630,   244,   630,   631,
+     631,   631,   631,   630,   630,   630,   631,   192,   631,  1160,
+     630,   630,   631,   631,   631,   630,   192,  1121,   192,  1121,
+     192,  1121,   192,   630,   631,   630,   630,   630,   630,   631,
+     630,  1165,  1189,  1190,  1191,   467,   629,  1102,  1505,  1506,
+     572,  1515,   634,   202,   274,   472,  1437,   476,  1422,   178,
+     357,   558,   574,   629,    17,  1121,  1513,   166,  1225,  1124,
+    1121,  1121,  1124,   629,  1135,  1124,  1116,  1145,  1146,  1147,
+     629,   637,  1422,  1270,   822,   161,   476,  1297,  1298,  1425,
+      51,   448,  1042,  1272,  1424,   631,  1359,  1272,  1360,  1422,
+    1484,  1485,   551,   624,  1415,  1422,  1477,  1477,  1477,   161,
+     183,   196,   207,   257,   259,   286,   348,   402,  1458,  1460,
+     604,  1221,  1280,  1425,  1089,  1090,  1091,  1092,  1415,   232,
+     285,   418,   611,  1451,  1450,   629,  1116,  1246,   522,   851,
+     841,    11,   843,  1121,  1419,  1425,  1425,  1079,  1415,   175,
+     192,   414,   583,  1061,  1062,  1063,   467,   475,   589,   590,
+     629,   882,  1288,  1291,   727,   118,   544,   547,   726,  1152,
+    1406,  1411,   203,   192,  1477,  1477,  1477,  1503,  1115,   192,
+     241,  1108,  1109,  1232,  1233,  1261,  1117,  1117,   637,  1432,
+     128,   553,  1422,  1441,   338,   390,   636,   954,  1440,  1419,
+     192,  1344,   630,  1422,   170,   457,   361,   631,  1345,   413,
+    1237,  1330,  1344,  1345,  1340,  1415,  1345,  1345,   662,  1055,
+    1053,  1198,  1422,   104,   234,   251,   263,   341,   453,   516,
+    1183,   475,   631,  1415,  1198,   631,   190,  1560,    47,  1237,
+    1298,  1298,   339,  1419,   505,   505,   505,   505,   505,   466,
+    1419,  1419,  1298,   631,   806,  1419,  1419,  1419,  1419,   125,
+     185,   213,   282,   358,   563,  1245,  1419,  1419,   630,   631,
+    1298,  1298,   631,   800,   793,   794,   813,   814,   815,    80,
+      92,   389,   910,   917,   918,   975,   977,   981,   982,  1035,
+    1035,   389,  1298,  1298,  1035,  1298,   389,   389,  1298,  1298,
+     551,   137,  1298,   252,   531,   189,   389,   403,   977,  1035,
+     252,  1298,   531,   137,  1298,  1298,  1298,  1298,  1035,   389,
+      47,  1298,  1298,   836,  1298,   389,   387,    19,   161,   551,
+    1044,   389,   389,  1298,   140,   317,  1422,  1298,  1298,   389,
+    1298,   894,   631,   833,   834,  1018,   629,   637,   909,   919,
+    1414,  1422,  1297,    86,   462,   436,  1011,  1530,  1094,   629,
+    1121,   629,  1245,  1419,  1419,   125,   185,   282,   358,   563,
+    1247,  1419,  1245,  1419,  1419,  1419,  1419,  1419,  1245,  1245,
+    1419,  1407,  1419,  1245,   659,  1298,  1298,  1298,  1298,   631,
+     803,  1424,   278,   176,   795,   796,   797,   813,   814,   815,
+     816,   819,   820,   821,   823,   390,   540,  1424,  1422,  1549,
+       8,    30,   781,   687,   629,   450,   267,   629,   825,   893,
+     895,   896,    46,   210,   460,   996,   996,  1415,  1415,  1415,
+    1275,  1422,   585,  1221,  1422,  1172,   637,  1322,   240,  1121,
+     630,  1121,   543,  1121,  1121,   155,    34,    60,   115,   118,
+     126,   143,   242,   343,   483,   547,   576,  1162,    34,   955,
+    1424,  1134,  1121,  1133,  1165,  1121,  1121,  1121,   955,  1162,
+    1165,   630,   240,   240,  1121,  1121,  1165,  1121,  1121,  1121,
+    1121,  1121,  1124,   630,   630,  1121,  1121,  1121,  1121,  1121,
+    1121,  1165,   240,  1121,  1121,  1121,   630,  1121,  1121,  1121,
+    1121,   192,  1121,   192,  1121,   192,  1121,  1121,  1121,   630,
+    1516,  1517,  1518,  1190,  1102,   630,  1509,   637,   637,   637,
+    1424,  1121,  1513,  1123,   630,   631,   630,  1135,  1215,  1215,
+      17,  1121,  1513,  1225,  1121,   630,   631,  1164,  1165,  1422,
+     900,  1424,  1042,   653,  1356,   630,   631,  1479,   637,   637,
+     551,   551,   551,  1459,  1222,  1238,  1239,  1288,   631,  1093,
+    1095,   540,  1421,   611,   274,    88,   844,   845,   846,  1422,
+     856,  1124,    47,   629,   858,   848,   161,   629,   551,   336,
+    1062,   883,  1289,   629,  1294,  1299,  1294,   630,   882,  1290,
+    1408,  1409,  1412,  1422,  1292,   161,   370,  1478,   192,   192,
+     192,  1100,   146,  1172,  1262,   190,   277,  1113,  1261,  1238,
+    1109,    19,  1118,  1419,  1422,   624,  1422,   637,   248,   637,
+    1297,   128,   955,   956,  1297,   190,  1297,   636,  1424,    34,
+     128,   958,   959,  1424,  1247,  1335,   164,   601,  1241,  1242,
+     170,  1241,  1241,   358,  1336,  1221,  1340,   631,  1186,  1193,
+    1198,  1171,   251,   251,   376,  1200,   251,   263,   453,  1200,
+    1184,  1171,  1309,  1310,  1412,  1173,  1219,  1195,  1196,  1245,
+     321,  1234,   128,   960,   962,  1424,   956,   114,   114,   129,
+     243,   213,   282,   358,   563,   824,  1248,  1249,  1418,   806,
+     672,   824,   824,   800,   631,   794,   999,  1414,  1074,    63,
+     189,   403,   573,   916,   976,   999,   977,   978,   978,  1414,
+    1074,  1247,  1245,  1414,  1245,    12,  1019,  1027,  1028,  1422,
+    1074,  1419,  1419,   954,  1298,  1245,   254,  1027,   254,  1414,
+    1414,   900,  1298,   183,   257,   354,   903,  1245,  1247,  1247,
+    1414,  1074,  1230,  1231,  1412,   128,  1245,   128,  1245,  1251,
+     835,  1419,  1074,  1415,  1074,  1074,    85,    87,   128,   149,
+     184,   381,   425,   902,  1245,  1251,  1019,   897,     6,   145,
+    1031,   906,   907,   908,   909,   910,  1422,     8,   183,  1043,
+     426,   915,   916,   969,   920,   637,   128,  1248,  1419,  1422,
+     352,   401,    23,   169,   675,   551,   138,   153,   677,   629,
+    1531,   629,   403,  1211,  1212,  1213,  1422,   660,   661,  1245,
+    1419,  1246,   824,   824,   803,   369,   205,  1298,   631,   797,
+     540,    19,   585,  1481,   450,   629,   132,   237,   578,   782,
+     674,  1543,   126,   242,   420,   517,   905,  1415,   267,   389,
+     826,   832,   833,   906,   832,   631,   895,   665,   666,   667,
+     637,  1172,  1232,  1322,  1221,  1121,   630,  1121,   543,   629,
+     945,   946,   946,   946,   629,   940,   941,   945,  1163,   946,
+     242,   946,   242,   630,   630,   630,    19,  1131,   630,   630,
+      19,   630,   630,   630,  1150,  1121,  1121,   630,   630,   373,
+    1157,   631,   631,   630,   631,   630,   244,  1142,  1143,   630,
+     630,   630,   630,   631,   630,   630,  1121,   630,   190,   630,
+     630,   631,   630,   631,   631,   630,  1121,   630,  1121,   630,
+    1121,   630,   630,   630,  1114,  1518,   630,  1512,   637,  1000,
+     630,  1165,  1123,   630,   631,   630,  1117,  1147,   630,   606,
+    1357,  1485,   606,  1488,   624,   624,  1479,  1479,  1479,   629,
+    1121,   363,  1304,  1091,  1415,  1095,   226,  1098,  1380,   630,
+     631,  1117,   842,   389,   859,   860,  1246,   844,  1425,  1110,
+    1295,  1296,  1412,  1300,   631,   629,  1291,   630,   630,   631,
+     637,  1501,   726,   192,  1478,  1478,  1478,  1221,  1221,   147,
+     377,  1257,  1258,  1263,   578,   244,  1419,  1422,   637,  1422,
+     265,  1422,    12,    34,   128,   363,  1121,  1444,    71,   961,
+    1121,  1425,   362,   390,   540,  1443,  1437,  1297,  1237,  1242,
+    1237,  1345,   662,   572,   630,  1505,  1194,   634,   251,  1184,
+    1200,  1200,   251,   363,   363,   585,   631,  1308,  1297,  1209,
+    1210,  1110,  1121,  1235,  1410,   794,  1021,   629,   254,   254,
+     978,   999,   984,   999,   999,   145,   475,  1019,  1032,  1016,
+     631,  1246,   956,  1419,   999,  1042,  1419,  1033,  1019,   631,
+      20,   133,  1236,   839,  1019,  1024,  1019,   629,   630,   631,
+    1422,  1415,    33,    34,    39,    41,    43,    44,    60,   115,
+     118,   126,   143,   160,   184,   186,   199,   200,   242,   271,
+     280,   281,   283,   313,   314,   315,   332,   333,   334,   340,
+     343,   359,   360,   395,   396,   420,   471,   475,   487,   541,
+     544,   547,   548,   549,   550,   591,   592,   617,   921,   930,
+     933,   934,   935,   936,   937,   938,   939,  1422,   401,  1121,
+    1121,   363,   681,   687,   363,    82,   682,  1422,  1532,    19,
+    1019,   630,   631,   630,   631,   629,  1422,   824,   797,  1419,
+     905,  1550,   363,   363,   698,   699,   701,  1422,   491,  1415,
+     882,   630,   226,   441,   829,  1386,   895,   629,   629,   629,
+    1422,  1221,   268,  1243,  1215,  1121,   125,   282,   358,   563,
+      21,    34,    48,   570,   954,   964,   965,   966,   358,   629,
+     941,   947,   115,   118,   126,   143,   186,   242,   340,   343,
+     420,   547,   576,   934,   935,  1132,  1162,   630,  1215,  1215,
+      47,   469,  1156,  1121,  1121,  1165,    43,   341,   630,   606,
+    1144,  1121,  1215,  1121,  1121,  1121,  1121,   630,   630,   630,
+    1192,  1510,  1422,   630,  1165,  1118,   418,   203,   443,  1486,
+    1486,  1486,   128,  1121,  1302,  1303,   148,  1098,   261,  1386,
+     846,   630,   210,   254,   861,   630,   631,   630,  1114,   631,
+    1297,  1301,  1302,  1299,  1293,  1291,  1408,  1422,  1478,  1238,
+     205,  1226,  1421,  1421,   636,  1259,  1260,  1424,   477,   624,
+     418,   439,   470,  1442,   962,  1297,   629,   629,  1441,  1121,
+    1509,  1219,  1174,  1171,  1184,   251,   251,  1171,  1184,  1177,
+    1176,  1178,  1310,  1221,  1303,  1207,  1208,  1114,   631,  1236,
+     388,   629,  1022,  1121,   999,   984,   629,   983,   983,   128,
+     128,   919,  1069,  1028,   961,   921,  1015,  1231,  1025,  1027,
+    1017,  1360,   908,   629,   970,   945,   945,   946,   946,   940,
+     399,   931,   940,   940,   966,    60,   591,   934,   936,   966,
+     966,    60,   592,   592,   595,   940,   932,   946,   946,   946,
+     966,   945,   946,    26,    71,    82,   128,   198,   357,   363,
+     403,   471,   573,   923,   948,   949,   950,   968,  1127,  1418,
+     595,   945,   966,    34,   945,   967,   945,   945,   946,   947,
+     637,  1215,   485,  1419,   144,  1012,   630,   631,  1533,  1534,
+     630,  1212,   661,   671,   491,   235,   244,   378,   702,   703,
+     704,   705,  1116,   462,   630,   631,   700,  1419,   630,   630,
+     827,    19,   885,   997,   998,  1422,   997,   997,   457,  1241,
+     630,   630,   630,   630,   630,    34,    21,   570,   954,    34,
+     955,   631,   358,   946,   940,    60,   946,   242,   966,   630,
+     630,   630,  1158,  1403,   630,   630,   631,   630,   327,   256,
+     413,   630,   630,   630,   630,   630,   630,   904,  1109,  1238,
+    1505,   630,   277,   370,    64,   249,   350,   507,   520,   612,
+    1475,  1476,   606,  1487,  1487,  1487,   630,   631,  1305,   241,
+     629,   849,   843,   862,  1422,   860,   884,  1296,  1303,   630,
+    1504,    47,   211,  1223,  1264,  1424,   631,   327,    83,   564,
+     418,  1443,   540,   540,  1297,  1187,   363,  1180,  1184,  1184,
+     363,  1182,  1121,  1121,   629,  1232,   188,   226,   584,  1202,
+    1203,  1206,  1197,  1410,  1246,   859,   630,   629,   629,   997,
+     629,   629,   118,   544,   547,   622,   623,  1405,  1406,  1043,
+    1034,  1074,  1026,  1061,   630,   971,  1422,   304,   972,   483,
+     576,   618,   942,   943,   944,   629,   942,   942,   966,   595,
+     942,   629,   966,   942,   960,  1419,   353,   952,  1405,    14,
+     578,   128,   254,    19,   950,   254,   357,  1297,   966,   967,
+     966,   967,   942,   942,  1422,   676,   683,   684,  1422,   467,
+     629,  1535,   630,  1419,   630,   631,   700,  1538,   675,  1544,
+     701,   930,   951,   828,   893,   629,   882,   630,   631,  1236,
+     629,   630,   630,   170,   457,   955,   967,   358,  1159,  1410,
+    1121,   327,   174,  1113,  1113,    17,  1361,   540,   540,   540,
+      17,  1474,   203,   305,   306,   310,   311,  1489,  1490,  1303,
+     254,   534,  1116,   852,   629,   589,   863,   904,  1227,  1410,
+    1224,  1232,   954,   957,  1260,   630,   630,  1444,  1510,  1179,
+     585,  1181,   585,  1214,  1422,  1243,   977,   977,  1203,   904,
+    1236,   630,   997,   997,   630,   997,   997,  1407,  1407,  1043,
+     241,   630,   631,   193,   386,   484,   363,   973,   944,  1001,
+    1403,  1001,  1120,   353,   590,   922,   128,  1248,  1419,  1422,
+     509,   678,    53,    68,   181,   225,   250,   262,   367,   451,
+     685,   732,   734,   735,   736,   738,   739,   740,   741,   742,
+     743,   745,   753,   754,   757,   768,   771,   773,   774,  1418,
+    1423,  1427,  1103,  1101,   606,  1536,  1551,   704,  1422,  1415,
+     680,   681,   450,   961,  1504,   832,   882,   830,    82,   253,
+     985,   988,   991,   992,   993,  1418,   998,   358,   606,   986,
+     990,   992,   995,   987,   989,   992,   994,   170,   630,   631,
+    1236,   630,   138,  1475,   370,  1245,  1245,  1245,   358,   622,
+    1244,  1490,   578,  1415,   856,   521,   857,   854,   855,  1422,
+     244,   264,    82,    90,   114,   230,   307,   325,   349,   531,
+     879,   880,   881,  1339,   607,   608,   631,  1228,  1236,  1121,
+    1238,   956,  1265,  1188,  1121,   629,  1121,   629,   630,   631,
+     190,  1201,  1201,   630,   630,   911,   630,   630,   629,  1422,
+     132,   578,   630,   631,   630,  1120,   629,  1121,   156,   679,
+     755,   758,  1422,   192,   348,   746,   733,  1423,  1423,  1422,
+     737,   644,   284,   440,   605,   777,    31,   775,   638,   630,
+      52,    63,   274,   689,   951,   190,   677,  1545,   829,   630,
+    1501,  1419,  1298,   993,  1297,  1236,   630,   384,   995,   994,
+    1410,    61,   282,   358,  1311,  1312,  1412,  1381,  1117,  1246,
+     630,   631,   865,   542,  1298,  1298,   137,   137,  1298,  1298,
+    1298,  1298,   629,   874,   881,   159,  1410,   405,  1252,    73,
+    1387,  1505,  1214,  1214,  1422,   205,   251,   373,  1205,  1204,
+     969,   914,   985,   912,   913,   859,    51,   354,   448,   475,
+     974,   974,   966,  1403,   966,   929,  1121,  1121,   603,   760,
+     764,   192,  1422,   748,   749,  1121,   707,   731,   732,   734,
+     736,   738,   740,   741,   742,   743,   745,   753,   768,   771,
+     773,   707,   778,   776,   769,   772,  1504,    63,   370,    63,
+     136,   690,   691,  1127,  1552,  1116,   682,   951,   831,  1245,
+     128,  1248,  1419,  1422,  1418,  1236,   631,  1297,   957,   630,
+     853,   855,   629,   867,   869,   864,  1419,  1419,  1298,  1298,
+    1248,  1248,  1246,  1424,   522,   875,   876,  1298,  1236,  1422,
+     154,   165,   371,   539,  1388,  1389,   270,  1390,   630,   630,
+      47,    47,   629,   629,   985,   986,   987,   630,     5,   128,
+     357,   363,   363,   630,   756,   765,   151,   764,   767,   241,
+     155,  1121,   155,   731,   635,   577,  1121,   708,   777,   775,
+     370,   370,   136,   731,  1539,   144,  1546,  1504,  1312,  1303,
+    1382,   857,   629,   868,   869,   870,   312,   866,   869,  1419,
+    1419,   877,   630,   631,   900,  1253,    47,    47,   154,    47,
+    1389,   508,   539,  1391,  1392,  1211,  1213,   578,   132,   391,
+     599,   924,   603,   759,   761,  1121,   707,   155,   744,   225,
+     543,   284,   635,   780,   144,   127,   706,   709,   770,  1423,
+     770,   150,   683,   689,   457,  1393,   630,   631,   312,   872,
+     873,  1124,   878,  1424,   876,   629,  1403,  1403,    47,  1403,
+      47,    47,  1392,   630,   630,   974,   974,    82,   573,   925,
+     926,   927,   762,   761,   767,   766,    53,   747,  1422,   750,
+    1121,   779,    98,   173,   714,   729,  1422,   155,   731,   635,
+     459,  1547,   223,  1387,   869,   631,   871,   879,  1116,  1254,
+    1255,  1256,  1403,  1403,  1403,  1419,   254,   927,  1121,   155,
+     543,   631,   707,   155,   707,   208,   631,   710,    89,   108,
+     635,  1540,   731,    47,  1390,   873,   630,  1121,   630,   631,
+     763,    53,   707,  1422,   751,   440,   155,   190,  1422,   951,
+     190,   190,   731,  1403,   226,  1394,  1117,  1256,   543,   151,
+     152,   752,   605,   711,   128,   730,   717,   718,  1245,   712,
+     713,   358,   629,  1396,   707,   707,   748,   496,   498,   715,
+     716,   717,   720,  1127,  1422,  1121,  1099,   270,   457,  1395,
+     630,   636,  1397,  1398,  1412,   475,  1399,   631,   731,   191,
+    1424,   630,   631,  1400,  1401,  1412,   716,  1398,   631,  1297,
+    1401,  1116,  1303,  1117
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -18400,7 +18428,7 @@ yyreduce:
         case 2:
 
 /* Line 1455 of yacc.c  */
-#line 1710 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1711 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!thd->bootstrap &&
               (!(thd->lex->select_lex.options & OPTION_FOUND_COMMENT)))
@@ -18416,7 +18444,7 @@ yyreduce:
   case 3:
 
 /* Line 1455 of yacc.c  */
-#line 1721 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1722 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex_input_stream *lip = YYLIP;
 
@@ -18444,7 +18472,7 @@ yyreduce:
   case 5:
 
 /* Line 1455 of yacc.c  */
-#line 1746 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1747 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* Single query, not terminated. */
             YYLIP->found_semicolon= NULL;
@@ -18454,7 +18482,7 @@ yyreduce:
   case 63:
 
 /* Line 1455 of yacc.c  */
-#line 1821 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1822 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->sql_command= SQLCOM_DEALLOCATE_PREPARE;
@@ -18465,7 +18493,7 @@ yyreduce:
   case 66:
 
 /* Line 1455 of yacc.c  */
-#line 1835 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1836 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->sql_command= SQLCOM_PREPARE;
@@ -18476,7 +18504,7 @@ yyreduce:
   case 67:
 
 /* Line 1455 of yacc.c  */
-#line 1844 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1845 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->prepared_stmt_code= (yyvsp[(1) - (1)].lex_str);
@@ -18487,7 +18515,7 @@ yyreduce:
   case 68:
 
 /* Line 1455 of yacc.c  */
-#line 1850 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1851 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->prepared_stmt_code= (yyvsp[(2) - (2)].lex_str);
@@ -18498,7 +18526,7 @@ yyreduce:
   case 69:
 
 /* Line 1455 of yacc.c  */
-#line 1859 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1860 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->sql_command= SQLCOM_EXECUTE;
@@ -18509,14 +18537,14 @@ yyreduce:
   case 70:
 
 /* Line 1455 of yacc.c  */
-#line 1865 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1866 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 75:
 
 /* Line 1455 of yacc.c  */
-#line 1880 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1881 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             LEX_STRING *lexstr= (LEX_STRING*)sql_memdup(&(yyvsp[(2) - (2)].lex_str), sizeof(LEX_STRING));
@@ -18528,7 +18556,7 @@ yyreduce:
   case 76:
 
 /* Line 1455 of yacc.c  */
-#line 1892 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1893 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->sphead)
             {
@@ -18541,7 +18569,7 @@ yyreduce:
   case 77:
 
 /* Line 1455 of yacc.c  */
-#line 1900 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1901 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_HELP;
@@ -18552,7 +18580,7 @@ yyreduce:
   case 78:
 
 /* Line 1455 of yacc.c  */
-#line 1911 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1912 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_CHANGE_MASTER;
           }
@@ -18561,14 +18589,14 @@ yyreduce:
   case 79:
 
 /* Line 1455 of yacc.c  */
-#line 1915 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1916 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 82:
 
 /* Line 1455 of yacc.c  */
-#line 1925 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1926 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.host = (yyvsp[(3) - (3)].lex_str).str;
           }
@@ -18577,7 +18605,7 @@ yyreduce:
   case 83:
 
 /* Line 1455 of yacc.c  */
-#line 1929 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1930 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.user = (yyvsp[(3) - (3)].lex_str).str;
           }
@@ -18586,7 +18614,7 @@ yyreduce:
   case 84:
 
 /* Line 1455 of yacc.c  */
-#line 1933 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1934 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.password = (yyvsp[(3) - (3)].lex_str).str;
           }
@@ -18595,7 +18623,7 @@ yyreduce:
   case 85:
 
 /* Line 1455 of yacc.c  */
-#line 1937 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1938 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.port = (yyvsp[(3) - (3)].ulong_num);
           }
@@ -18604,7 +18632,7 @@ yyreduce:
   case 86:
 
 /* Line 1455 of yacc.c  */
-#line 1941 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1942 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.connect_retry = (yyvsp[(3) - (3)].ulong_num);
           }
@@ -18613,7 +18641,7 @@ yyreduce:
   case 87:
 
 /* Line 1455 of yacc.c  */
-#line 1945 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1946 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.ssl= (yyvsp[(3) - (3)].ulong_num) ? 
               LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE;
@@ -18623,7 +18651,7 @@ yyreduce:
   case 88:
 
 /* Line 1455 of yacc.c  */
-#line 1950 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1951 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.ssl_ca= (yyvsp[(3) - (3)].lex_str).str;
           }
@@ -18632,7 +18660,7 @@ yyreduce:
   case 89:
 
 /* Line 1455 of yacc.c  */
-#line 1954 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1955 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.ssl_capath= (yyvsp[(3) - (3)].lex_str).str;
           }
@@ -18641,7 +18669,7 @@ yyreduce:
   case 90:
 
 /* Line 1455 of yacc.c  */
-#line 1958 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1959 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.ssl_cert= (yyvsp[(3) - (3)].lex_str).str;
           }
@@ -18650,7 +18678,7 @@ yyreduce:
   case 91:
 
 /* Line 1455 of yacc.c  */
-#line 1962 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1963 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.ssl_cipher= (yyvsp[(3) - (3)].lex_str).str;
           }
@@ -18659,7 +18687,7 @@ yyreduce:
   case 92:
 
 /* Line 1455 of yacc.c  */
-#line 1966 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1967 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.ssl_key= (yyvsp[(3) - (3)].lex_str).str;
           }
@@ -18668,7 +18696,7 @@ yyreduce:
   case 93:
 
 /* Line 1455 of yacc.c  */
-#line 1970 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1971 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.ssl_verify_server_cert= (yyvsp[(3) - (3)].ulong_num) ?
               LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE;
@@ -18678,7 +18706,7 @@ yyreduce:
   case 94:
 
 /* Line 1455 of yacc.c  */
-#line 1976 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 1977 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.heartbeat_period= (float) (yyvsp[(3) - (3)].item_num)->val_real();
             if (Lex->mi.heartbeat_period > SLAVE_MAX_HEARTBEAT_PERIOD ||
@@ -18714,7 +18742,7 @@ yyreduce:
   case 95:
 
 /* Line 1455 of yacc.c  */
-#line 2007 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2008 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.repl_ignore_server_ids_opt= LEX_MASTER_INFO::LEX_MI_ENABLE;
            }
@@ -18723,7 +18751,7 @@ yyreduce:
   case 100:
 
 /* Line 1455 of yacc.c  */
-#line 2022 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2023 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             insert_dynamic(&Lex->mi.repl_ignore_server_ids, (uchar*) &((yyvsp[(1) - (1)].ulong_num)));
           }
@@ -18732,7 +18760,7 @@ yyreduce:
   case 101:
 
 /* Line 1455 of yacc.c  */
-#line 2028 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2029 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.log_file_name = (yyvsp[(3) - (3)].lex_str).str;
           }
@@ -18741,7 +18769,7 @@ yyreduce:
   case 102:
 
 /* Line 1455 of yacc.c  */
-#line 2032 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2033 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.pos = (yyvsp[(3) - (3)].ulonglong_number);
             /* 
@@ -18762,7 +18790,7 @@ yyreduce:
   case 103:
 
 /* Line 1455 of yacc.c  */
-#line 2048 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2049 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.relay_log_name = (yyvsp[(3) - (3)].lex_str).str;
           }
@@ -18771,7 +18799,7 @@ yyreduce:
   case 104:
 
 /* Line 1455 of yacc.c  */
-#line 2052 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2053 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->mi.relay_log_pos = (yyvsp[(3) - (3)].ulong_num);
             /* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */
@@ -18782,7 +18810,7 @@ yyreduce:
   case 105:
 
 /* Line 1455 of yacc.c  */
-#line 2063 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2064 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->sql_command= SQLCOM_CREATE_TABLE;
@@ -18811,7 +18839,7 @@ yyreduce:
   case 106:
 
 /* Line 1455 of yacc.c  */
-#line 2087 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2088 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->current_select= &lex->select_lex; 
@@ -18832,7 +18860,7 @@ yyreduce:
   case 107:
 
 /* Line 1455 of yacc.c  */
-#line 2103 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2104 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_create_index_prepare(Lex, (yyvsp[(7) - (7)].table)))
               MYSQL_YYABORT;
@@ -18842,7 +18870,7 @@ yyreduce:
   case 108:
 
 /* Line 1455 of yacc.c  */
-#line 2108 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2109 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_create_index(Lex, (yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str)))
               MYSQL_YYABORT;
@@ -18852,7 +18880,7 @@ yyreduce:
   case 109:
 
 /* Line 1455 of yacc.c  */
-#line 2114 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2115 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_create_index_prepare(Lex, (yyvsp[(7) - (7)].table)))
               MYSQL_YYABORT;
@@ -18862,7 +18890,7 @@ yyreduce:
   case 110:
 
 /* Line 1455 of yacc.c  */
-#line 2119 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2120 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_create_index(Lex, (yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str)))
               MYSQL_YYABORT;
@@ -18872,7 +18900,7 @@ yyreduce:
   case 111:
 
 /* Line 1455 of yacc.c  */
-#line 2125 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2126 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_create_index_prepare(Lex, (yyvsp[(7) - (7)].table)))
               MYSQL_YYABORT;
@@ -18882,7 +18910,7 @@ yyreduce:
   case 112:
 
 /* Line 1455 of yacc.c  */
-#line 2130 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2131 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_create_index(Lex, (yyvsp[(2) - (12)].key_type), (yyvsp[(4) - (12)].lex_str)))
               MYSQL_YYABORT;
@@ -18892,7 +18920,7 @@ yyreduce:
   case 113:
 
 /* Line 1455 of yacc.c  */
-#line 2135 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2136 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.default_table_charset= NULL;
             Lex->create_info.used_fields= 0;
@@ -18902,7 +18930,7 @@ yyreduce:
   case 114:
 
 /* Line 1455 of yacc.c  */
-#line 2140 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2141 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command=SQLCOM_CREATE_DB;
@@ -18914,7 +18942,7 @@ yyreduce:
   case 115:
 
 /* Line 1455 of yacc.c  */
-#line 2147 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2148 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_view_mode= VIEW_CREATE_NEW;
             Lex->create_view_algorithm= DTYPE_ALGORITHM_UNDEFINED;
@@ -18925,14 +18953,14 @@ yyreduce:
   case 116:
 
 /* Line 1455 of yacc.c  */
-#line 2153 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2154 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 117:
 
 /* Line 1455 of yacc.c  */
-#line 2155 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2156 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_CREATE_USER;
           }
@@ -18941,7 +18969,7 @@ yyreduce:
   case 118:
 
 /* Line 1455 of yacc.c  */
-#line 2159 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2160 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP;
           }
@@ -18950,7 +18978,7 @@ yyreduce:
   case 119:
 
 /* Line 1455 of yacc.c  */
-#line 2163 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2164 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE;
           }
@@ -18959,7 +18987,7 @@ yyreduce:
   case 120:
 
 /* Line 1455 of yacc.c  */
-#line 2167 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2168 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command= SQLCOM_CREATE_SERVER;
           }
@@ -18968,7 +18996,7 @@ yyreduce:
   case 121:
 
 /* Line 1455 of yacc.c  */
-#line 2178 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2179 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->server_options.server_name= (yyvsp[(2) - (10)].lex_str).str;
             Lex->server_options.server_name_length= (yyvsp[(2) - (10)].lex_str).length;
@@ -18979,7 +19007,7 @@ yyreduce:
   case 124:
 
 /* Line 1455 of yacc.c  */
-#line 2192 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2193 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->server_options.username= (yyvsp[(2) - (2)].lex_str).str;
           }
@@ -18988,7 +19016,7 @@ yyreduce:
   case 125:
 
 /* Line 1455 of yacc.c  */
-#line 2196 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2197 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->server_options.host= (yyvsp[(2) - (2)].lex_str).str;
           }
@@ -18997,7 +19025,7 @@ yyreduce:
   case 126:
 
 /* Line 1455 of yacc.c  */
-#line 2200 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2201 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->server_options.db= (yyvsp[(2) - (2)].lex_str).str;
           }
@@ -19006,7 +19034,7 @@ yyreduce:
   case 127:
 
 /* Line 1455 of yacc.c  */
-#line 2204 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2205 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->server_options.owner= (yyvsp[(2) - (2)].lex_str).str;
           }
@@ -19015,7 +19043,7 @@ yyreduce:
   case 128:
 
 /* Line 1455 of yacc.c  */
-#line 2208 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2209 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->server_options.password= (yyvsp[(2) - (2)].lex_str).str;
           }
@@ -19024,7 +19052,7 @@ yyreduce:
   case 129:
 
 /* Line 1455 of yacc.c  */
-#line 2212 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2213 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->server_options.socket= (yyvsp[(2) - (2)].lex_str).str;
           }
@@ -19033,7 +19061,7 @@ yyreduce:
   case 130:
 
 /* Line 1455 of yacc.c  */
-#line 2216 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2217 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->server_options.port= (yyvsp[(2) - (2)].ulong_num);
           }
@@ -19042,7 +19070,7 @@ yyreduce:
   case 131:
 
 /* Line 1455 of yacc.c  */
-#line 2223 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2224 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
 
@@ -19062,7 +19090,7 @@ yyreduce:
   case 132:
 
 /* Line 1455 of yacc.c  */
-#line 2242 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2243 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               sql_command is set here because some rules in ev_sql_stmt
@@ -19075,7 +19103,7 @@ yyreduce:
   case 133:
 
 /* Line 1455 of yacc.c  */
-#line 2253 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2254 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->event_parse_data->item_expression= (yyvsp[(2) - (3)].item);
             Lex->event_parse_data->interval= (yyvsp[(3) - (3)].interval);
@@ -19085,7 +19113,7 @@ yyreduce:
   case 135:
 
 /* Line 1455 of yacc.c  */
-#line 2260 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2261 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->event_parse_data->item_execute_at= (yyvsp[(2) - (2)].item);
           }
@@ -19094,14 +19122,14 @@ yyreduce:
   case 136:
 
 /* Line 1455 of yacc.c  */
-#line 2266 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2267 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0; }
     break;
 
   case 137:
 
 /* Line 1455 of yacc.c  */
-#line 2268 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2269 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->event_parse_data->status= Event_parse_data::ENABLED;
             Lex->event_parse_data->status_changed= true;
@@ -19112,7 +19140,7 @@ yyreduce:
   case 138:
 
 /* Line 1455 of yacc.c  */
-#line 2274 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2275 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->event_parse_data->status= Event_parse_data::SLAVESIDE_DISABLED;
             Lex->event_parse_data->status_changed= true; 
@@ -19123,7 +19151,7 @@ yyreduce:
   case 139:
 
 /* Line 1455 of yacc.c  */
-#line 2280 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2281 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->event_parse_data->status= Event_parse_data::DISABLED;
             Lex->event_parse_data->status_changed= true;
@@ -19134,7 +19162,7 @@ yyreduce:
   case 140:
 
 /* Line 1455 of yacc.c  */
-#line 2289 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2290 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *item= new (thd->mem_root) Item_func_now_local(0);
             if (item == NULL)
@@ -19146,7 +19174,7 @@ yyreduce:
   case 141:
 
 /* Line 1455 of yacc.c  */
-#line 2296 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2297 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->event_parse_data->item_starts= (yyvsp[(2) - (2)].item);
           }
@@ -19155,7 +19183,7 @@ yyreduce:
   case 143:
 
 /* Line 1455 of yacc.c  */
-#line 2304 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2305 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->event_parse_data->item_ends= (yyvsp[(2) - (2)].item);
           }
@@ -19164,14 +19192,14 @@ yyreduce:
   case 144:
 
 /* Line 1455 of yacc.c  */
-#line 2310 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2311 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0; }
     break;
 
   case 146:
 
 /* Line 1455 of yacc.c  */
-#line 2316 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2317 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->event_parse_data->on_completion=
                                   Event_parse_data::ON_COMPLETION_PRESERVE;
@@ -19182,7 +19210,7 @@ yyreduce:
   case 147:
 
 /* Line 1455 of yacc.c  */
-#line 2322 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2323 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->event_parse_data->on_completion=
                                   Event_parse_data::ON_COMPLETION_DROP;
@@ -19193,14 +19221,14 @@ yyreduce:
   case 148:
 
 /* Line 1455 of yacc.c  */
-#line 2330 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2331 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0; }
     break;
 
   case 149:
 
 /* Line 1455 of yacc.c  */
-#line 2332 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2333 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->comment= Lex->event_parse_data->comment= (yyvsp[(2) - (2)].lex_str);
             (yyval.num)= 1;
@@ -19210,7 +19238,7 @@ yyreduce:
   case 150:
 
 /* Line 1455 of yacc.c  */
-#line 2339 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2340 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             Lex_input_stream *lip= YYLIP;
@@ -19257,7 +19285,7 @@ yyreduce:
   case 151:
 
 /* Line 1455 of yacc.c  */
-#line 2381 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2382 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
 
@@ -19274,7 +19302,7 @@ yyreduce:
   case 165:
 
 /* Line 1455 of yacc.c  */
-#line 2412 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2413 "/home/buildbot/git/sql/sql_yacc.yy"
     {
            LEX *lex=Lex;
            lex->users_list.empty();
@@ -19291,7 +19319,7 @@ yyreduce:
   case 166:
 
 /* Line 1455 of yacc.c  */
-#line 2427 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2428 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!(yyvsp[(1) - (3)].lex_str).str || check_db_name(&(yyvsp[(1) - (3)].lex_str)))
             {
@@ -19312,7 +19340,7 @@ yyreduce:
   case 167:
 
 /* Line 1455 of yacc.c  */
-#line 2443 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2444 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             LEX_STRING db;
@@ -19332,105 +19360,105 @@ yyreduce:
   case 168:
 
 /* Line 1455 of yacc.c  */
-#line 2460 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2461 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 169:
 
 /* Line 1455 of yacc.c  */
-#line 2461 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2462 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 170:
 
 /* Line 1455 of yacc.c  */
-#line 2465 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2466 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 171:
 
 /* Line 1455 of yacc.c  */
-#line 2466 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2467 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 172:
 
 /* Line 1455 of yacc.c  */
-#line 2472 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2473 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sp_chistics.comment= (yyvsp[(2) - (2)].lex_str); }
     break;
 
   case 173:
 
 /* Line 1455 of yacc.c  */
-#line 2474 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2475 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* Just parse it, we only have one language for now. */ }
     break;
 
   case 174:
 
 /* Line 1455 of yacc.c  */
-#line 2476 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2477 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sp_chistics.daccess= SP_NO_SQL; }
     break;
 
   case 175:
 
 /* Line 1455 of yacc.c  */
-#line 2478 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2479 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; }
     break;
 
   case 176:
 
 /* Line 1455 of yacc.c  */
-#line 2480 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2481 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; }
     break;
 
   case 177:
 
 /* Line 1455 of yacc.c  */
-#line 2482 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2483 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; }
     break;
 
   case 178:
 
 /* Line 1455 of yacc.c  */
-#line 2484 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2485 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 179:
 
 /* Line 1455 of yacc.c  */
-#line 2489 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2490 "/home/buildbot/git/sql/sql_yacc.yy"
     { }
     break;
 
   case 180:
 
 /* Line 1455 of yacc.c  */
-#line 2490 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2491 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sp_chistics.detistic= TRUE; }
     break;
 
   case 181:
 
 /* Line 1455 of yacc.c  */
-#line 2491 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2492 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sp_chistics.detistic= FALSE; }
     break;
 
   case 182:
 
 /* Line 1455 of yacc.c  */
-#line 2496 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2497 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sp_chistics.suid= SP_IS_SUID;
           }
@@ -19439,7 +19467,7 @@ yyreduce:
   case 183:
 
 /* Line 1455 of yacc.c  */
-#line 2500 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2501 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sp_chistics.suid= SP_IS_NOT_SUID;
           }
@@ -19448,7 +19476,7 @@ yyreduce:
   case 184:
 
 /* Line 1455 of yacc.c  */
-#line 2507 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2508 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex = Lex;
 
@@ -19462,14 +19490,14 @@ yyreduce:
   case 185:
 
 /* Line 1455 of yacc.c  */
-#line 2515 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2516 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 190:
 
 /* Line 1455 of yacc.c  */
-#line 2531 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2532 "/home/buildbot/git/sql/sql_yacc.yy"
     {
            Lex->value_list.push_back((yyvsp[(3) - (3)].item));
           }
@@ -19478,7 +19506,7 @@ yyreduce:
   case 191:
 
 /* Line 1455 of yacc.c  */
-#line 2535 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2536 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->value_list.push_back((yyvsp[(1) - (1)].item));
           }
@@ -19487,7 +19515,7 @@ yyreduce:
   case 196:
 
 /* Line 1455 of yacc.c  */
-#line 2553 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2554 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -19510,7 +19538,7 @@ yyreduce:
   case 197:
 
 /* Line 1455 of yacc.c  */
-#line 2574 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2575 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_pcontext *spc= lex->spcont;
@@ -19538,7 +19566,7 @@ yyreduce:
   case 202:
 
 /* Line 1455 of yacc.c  */
-#line 2611 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2612 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_pcontext *spc= lex->spcont;
@@ -19566,49 +19594,49 @@ yyreduce:
   case 203:
 
 /* Line 1455 of yacc.c  */
-#line 2636 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2637 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= sp_param_in; }
     break;
 
   case 204:
 
 /* Line 1455 of yacc.c  */
-#line 2637 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2638 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= sp_param_in; }
     break;
 
   case 205:
 
 /* Line 1455 of yacc.c  */
-#line 2638 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2639 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= sp_param_out; }
     break;
 
   case 206:
 
 /* Line 1455 of yacc.c  */
-#line 2639 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2640 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= sp_param_inout; }
     break;
 
   case 207:
 
 /* Line 1455 of yacc.c  */
-#line 2643 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2644 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 209:
 
 /* Line 1455 of yacc.c  */
-#line 2648 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2649 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 211:
 
 /* Line 1455 of yacc.c  */
-#line 2654 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2655 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0;
           }
@@ -19617,7 +19645,7 @@ yyreduce:
   case 212:
 
 /* Line 1455 of yacc.c  */
-#line 2658 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2659 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* We check for declarations out of (standard) order this way
               because letting the grammar rules reflect it caused tricky
@@ -19645,7 +19673,7 @@ yyreduce:
   case 213:
 
 /* Line 1455 of yacc.c  */
-#line 2684 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2685 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -19657,7 +19685,7 @@ yyreduce:
   case 214:
 
 /* Line 1455 of yacc.c  */
-#line 2692 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2693 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_pcontext *pctx= lex->spcont;
@@ -19718,7 +19746,7 @@ yyreduce:
   case 215:
 
 /* Line 1455 of yacc.c  */
-#line 2748 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2749 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_pcontext *spc= lex->spcont;
@@ -19738,7 +19766,7 @@ yyreduce:
   case 216:
 
 /* Line 1455 of yacc.c  */
-#line 2763 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2764 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -19765,7 +19793,7 @@ yyreduce:
   case 217:
 
 /* Line 1455 of yacc.c  */
-#line 2785 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2786 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -19802,7 +19830,7 @@ yyreduce:
   case 218:
 
 /* Line 1455 of yacc.c  */
-#line 2817 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2818 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -19830,7 +19858,7 @@ yyreduce:
   case 219:
 
 /* Line 1455 of yacc.c  */
-#line 2842 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2843 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sphead->reset_lex(thd);
           }
@@ -19839,7 +19867,7 @@ yyreduce:
   case 220:
 
 /* Line 1455 of yacc.c  */
-#line 2846 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2847 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -19861,35 +19889,35 @@ yyreduce:
   case 221:
 
 /* Line 1455 of yacc.c  */
-#line 2865 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2866 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= SP_HANDLER_EXIT; }
     break;
 
   case 222:
 
 /* Line 1455 of yacc.c  */
-#line 2866 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2867 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= SP_HANDLER_CONTINUE; }
     break;
 
   case 223:
 
 /* Line 1455 of yacc.c  */
-#line 2872 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2873 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 1; }
     break;
 
   case 224:
 
 /* Line 1455 of yacc.c  */
-#line 2874 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2875 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)+= 1; }
     break;
 
   case 225:
 
 /* Line 1455 of yacc.c  */
-#line 2879 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2880 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -19914,7 +19942,7 @@ yyreduce:
   case 226:
 
 /* Line 1455 of yacc.c  */
-#line 2902 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2903 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* mysql errno */
             if ((yyvsp[(1) - (1)].ulong_num) == 0)
             {
@@ -19932,7 +19960,7 @@ yyreduce:
   case 228:
 
 /* Line 1455 of yacc.c  */
-#line 2919 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2920 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* SQLSTATE */
             if (!sp_cond_check(&(yyvsp[(3) - (3)].lex_str)))
             {
@@ -19951,21 +19979,21 @@ yyreduce:
   case 229:
 
 /* Line 1455 of yacc.c  */
-#line 2935 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2936 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 230:
 
 /* Line 1455 of yacc.c  */
-#line 2936 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2937 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 231:
 
 /* Line 1455 of yacc.c  */
-#line 2941 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2942 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.spcondtype)= (yyvsp[(1) - (1)].spcondtype);
           }
@@ -19974,7 +20002,7 @@ yyreduce:
   case 232:
 
 /* Line 1455 of yacc.c  */
-#line 2945 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2946 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.spcondtype)= Lex->spcont->find_cond(&(yyvsp[(1) - (1)].lex_str));
             if ((yyval.spcondtype) == NULL)
@@ -19988,7 +20016,7 @@ yyreduce:
   case 233:
 
 /* Line 1455 of yacc.c  */
-#line 2954 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2955 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t));
             if ((yyval.spcondtype) == NULL)
@@ -20000,7 +20028,7 @@ yyreduce:
   case 234:
 
 /* Line 1455 of yacc.c  */
-#line 2961 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2962 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t));
             if ((yyval.spcondtype) == NULL)
@@ -20012,7 +20040,7 @@ yyreduce:
   case 235:
 
 /* Line 1455 of yacc.c  */
-#line 2968 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2969 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.spcondtype)= (sp_cond_type_t *) thd->alloc(sizeof(sp_cond_type_t));
             if ((yyval.spcondtype) == NULL)
@@ -20024,7 +20052,7 @@ yyreduce:
   case 236:
 
 /* Line 1455 of yacc.c  */
-#line 2978 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2979 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             Yacc_state *state= & thd->m_parser_state->m_yacc;
@@ -20040,7 +20068,7 @@ yyreduce:
   case 237:
 
 /* Line 1455 of yacc.c  */
-#line 2992 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 2993 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_cond_type_t *cond;
@@ -20068,28 +20096,28 @@ yyreduce:
   case 238:
 
 /* Line 1455 of yacc.c  */
-#line 3015 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3016 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.spcondtype)= (yyvsp[(1) - (1)].spcondtype); }
     break;
 
   case 239:
 
 /* Line 1455 of yacc.c  */
-#line 3020 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3021 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.spcondtype)= NULL; }
     break;
 
   case 240:
 
 /* Line 1455 of yacc.c  */
-#line 3022 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3023 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.spcondtype)= (yyvsp[(1) - (1)].spcondtype); }
     break;
 
   case 241:
 
 /* Line 1455 of yacc.c  */
-#line 3027 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3028 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             thd->m_parser_state->m_yacc.m_set_signal_info.clear();
           }
@@ -20098,7 +20126,7 @@ yyreduce:
   case 243:
 
 /* Line 1455 of yacc.c  */
-#line 3035 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3036 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Set_signal_information *info;
             info= &thd->m_parser_state->m_yacc.m_set_signal_info;
@@ -20111,7 +20139,7 @@ yyreduce:
   case 244:
 
 /* Line 1455 of yacc.c  */
-#line 3044 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3045 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Set_signal_information *info;
             info= &thd->m_parser_state->m_yacc.m_set_signal_info;
@@ -20129,14 +20157,14 @@ yyreduce:
   case 245:
 
 /* Line 1455 of yacc.c  */
-#line 3063 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3064 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)= (yyvsp[(1) - (1)].item); }
     break;
 
   case 246:
 
 /* Line 1455 of yacc.c  */
-#line 3065 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3066 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if ((yyvsp[(1) - (1)].item)->type() == Item::FUNC_ITEM)
             {
@@ -20159,98 +20187,98 @@ yyreduce:
   case 247:
 
 /* Line 1455 of yacc.c  */
-#line 3083 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3084 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)= (yyvsp[(1) - (1)].item); }
     break;
 
   case 248:
 
 /* Line 1455 of yacc.c  */
-#line 3089 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3090 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.diag_condition_item_name)= DIAG_CLASS_ORIGIN; }
     break;
 
   case 249:
 
 /* Line 1455 of yacc.c  */
-#line 3091 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3092 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.diag_condition_item_name)= DIAG_SUBCLASS_ORIGIN; }
     break;
 
   case 250:
 
 /* Line 1455 of yacc.c  */
-#line 3093 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3094 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_CATALOG; }
     break;
 
   case 251:
 
 /* Line 1455 of yacc.c  */
-#line 3095 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3096 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_SCHEMA; }
     break;
 
   case 252:
 
 /* Line 1455 of yacc.c  */
-#line 3097 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3098 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.diag_condition_item_name)= DIAG_CONSTRAINT_NAME; }
     break;
 
   case 253:
 
 /* Line 1455 of yacc.c  */
-#line 3099 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3100 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.diag_condition_item_name)= DIAG_CATALOG_NAME; }
     break;
 
   case 254:
 
 /* Line 1455 of yacc.c  */
-#line 3101 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3102 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.diag_condition_item_name)= DIAG_SCHEMA_NAME; }
     break;
 
   case 255:
 
 /* Line 1455 of yacc.c  */
-#line 3103 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3104 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.diag_condition_item_name)= DIAG_TABLE_NAME; }
     break;
 
   case 256:
 
 /* Line 1455 of yacc.c  */
-#line 3105 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3106 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.diag_condition_item_name)= DIAG_COLUMN_NAME; }
     break;
 
   case 257:
 
 /* Line 1455 of yacc.c  */
-#line 3107 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3108 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.diag_condition_item_name)= DIAG_CURSOR_NAME; }
     break;
 
   case 258:
 
 /* Line 1455 of yacc.c  */
-#line 3109 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3110 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.diag_condition_item_name)= DIAG_MESSAGE_TEXT; }
     break;
 
   case 259:
 
 /* Line 1455 of yacc.c  */
-#line 3111 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3112 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.diag_condition_item_name)= DIAG_MYSQL_ERRNO; }
     break;
 
   case 260:
 
 /* Line 1455 of yacc.c  */
-#line 3116 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3117 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             Yacc_state *state= & thd->m_parser_state->m_yacc;
@@ -20266,7 +20294,7 @@ yyreduce:
   case 261:
 
 /* Line 1455 of yacc.c  */
-#line 3130 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3131 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* NOTE: field definition is filled in sp_decl section. */
 
@@ -20286,7 +20314,7 @@ yyreduce:
   case 262:
 
 /* Line 1455 of yacc.c  */
-#line 3145 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3146 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* NOTE: field definition is filled in sp_decl section. */
 
@@ -20306,35 +20334,35 @@ yyreduce:
   case 263:
 
 /* Line 1455 of yacc.c  */
-#line 3162 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3163 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item) = NULL; }
     break;
 
   case 264:
 
 /* Line 1455 of yacc.c  */
-#line 3163 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3164 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item) = (yyvsp[(2) - (2)].item); }
     break;
 
   case 278:
 
 /* Line 1455 of yacc.c  */
-#line 3184 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3185 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sphead->new_cont_backpatch(NULL); }
     break;
 
   case 279:
 
 /* Line 1455 of yacc.c  */
-#line 3186 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3187 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sphead->do_cont_backpatch(); }
     break;
 
   case 280:
 
 /* Line 1455 of yacc.c  */
-#line 3190 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3191 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             Lex_input_stream *lip= YYLIP;
@@ -20347,7 +20375,7 @@ yyreduce:
   case 281:
 
 /* Line 1455 of yacc.c  */
-#line 3198 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3199 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             Lex_input_stream *lip= YYLIP;
@@ -20396,14 +20424,14 @@ yyreduce:
   case 282:
 
 /* Line 1455 of yacc.c  */
-#line 3245 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3246 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sphead->reset_lex(thd); }
     break;
 
   case 283:
 
 /* Line 1455 of yacc.c  */
-#line 3247 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3248 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -20432,7 +20460,7 @@ yyreduce:
   case 284:
 
 /* Line 1455 of yacc.c  */
-#line 3273 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3274 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* Unlabeled controls get a secret label. */
             LEX *lex= Lex;
 
@@ -20443,7 +20471,7 @@ yyreduce:
   case 285:
 
 /* Line 1455 of yacc.c  */
-#line 3279 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3280 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -20454,7 +20482,7 @@ yyreduce:
   case 286:
 
 /* Line 1455 of yacc.c  */
-#line 3288 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3289 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp = lex->sphead;
@@ -20509,7 +20537,7 @@ yyreduce:
   case 287:
 
 /* Line 1455 of yacc.c  */
-#line 3341 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3342 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -20554,7 +20582,7 @@ yyreduce:
   case 288:
 
 /* Line 1455 of yacc.c  */
-#line 3384 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3385 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -20576,7 +20604,7 @@ yyreduce:
   case 289:
 
 /* Line 1455 of yacc.c  */
-#line 3404 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3405 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -20598,14 +20626,14 @@ yyreduce:
   case 290:
 
 /* Line 1455 of yacc.c  */
-#line 3421 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3422 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 291:
 
 /* Line 1455 of yacc.c  */
-#line 3426 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3427 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -20627,7 +20655,7 @@ yyreduce:
   case 295:
 
 /* Line 1455 of yacc.c  */
-#line 3452 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3453 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -20652,7 +20680,7 @@ yyreduce:
   case 296:
 
 /* Line 1455 of yacc.c  */
-#line 3472 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3473 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -20677,14 +20705,14 @@ yyreduce:
   case 297:
 
 /* Line 1455 of yacc.c  */
-#line 3494 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3495 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sphead->reset_lex(thd); }
     break;
 
   case 298:
 
 /* Line 1455 of yacc.c  */
-#line 3496 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3497 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -20705,7 +20733,7 @@ yyreduce:
   case 299:
 
 /* Line 1455 of yacc.c  */
-#line 3512 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3513 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             sp_head *sp= Lex->sphead;
             sp_pcontext *ctx= Lex->spcont;
@@ -20722,7 +20750,7 @@ yyreduce:
   case 300:
 
 /* Line 1455 of yacc.c  */
-#line 3524 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3525 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -20733,7 +20761,7 @@ yyreduce:
   case 306:
 
 /* Line 1455 of yacc.c  */
-#line 3544 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3545 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             case_stmt_action_case(lex);
@@ -20744,7 +20772,7 @@ yyreduce:
   case 307:
 
 /* Line 1455 of yacc.c  */
-#line 3550 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3551 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (case_stmt_action_expr(lex, (yyvsp[(3) - (3)].item)))
@@ -20759,7 +20787,7 @@ yyreduce:
   case 308:
 
 /* Line 1455 of yacc.c  */
-#line 3563 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3564 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             case_stmt_action_end_case(lex, true);
@@ -20769,7 +20797,7 @@ yyreduce:
   case 309:
 
 /* Line 1455 of yacc.c  */
-#line 3571 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3572 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             case_stmt_action_case(lex);
@@ -20779,7 +20807,7 @@ yyreduce:
   case 310:
 
 /* Line 1455 of yacc.c  */
-#line 3579 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3580 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             case_stmt_action_end_case(lex, false);
@@ -20789,7 +20817,7 @@ yyreduce:
   case 315:
 
 /* Line 1455 of yacc.c  */
-#line 3597 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3598 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sphead->reset_lex(thd); /* For expr $3 */
           }
@@ -20798,7 +20826,7 @@ yyreduce:
   case 316:
 
 /* Line 1455 of yacc.c  */
-#line 3601 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3602 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* Simple case: <caseval> = <whenval> */
 
@@ -20814,7 +20842,7 @@ yyreduce:
   case 317:
 
 /* Line 1455 of yacc.c  */
-#line 3613 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3614 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (case_stmt_action_then(lex))
@@ -20825,7 +20853,7 @@ yyreduce:
   case 318:
 
 /* Line 1455 of yacc.c  */
-#line 3622 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3623 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sphead->reset_lex(thd); /* For expr $3 */
           }
@@ -20834,7 +20862,7 @@ yyreduce:
   case 319:
 
 /* Line 1455 of yacc.c  */
-#line 3626 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3627 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (case_stmt_action_when(lex, (yyvsp[(3) - (3)].item), false))
@@ -20848,7 +20876,7 @@ yyreduce:
   case 320:
 
 /* Line 1455 of yacc.c  */
-#line 3636 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3637 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (case_stmt_action_then(lex))
@@ -20859,7 +20887,7 @@ yyreduce:
   case 321:
 
 /* Line 1455 of yacc.c  */
-#line 3645 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3646 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -20875,7 +20903,7 @@ yyreduce:
   case 323:
 
 /* Line 1455 of yacc.c  */
-#line 3660 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3661 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_pcontext *ctx= lex->spcont;
@@ -20898,7 +20926,7 @@ yyreduce:
   case 324:
 
 /* Line 1455 of yacc.c  */
-#line 3678 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3679 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_label_t *lab= lex->spcont->pop_label();
@@ -20918,21 +20946,21 @@ yyreduce:
   case 325:
 
 /* Line 1455 of yacc.c  */
-#line 3695 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3696 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)= null_lex_str; }
     break;
 
   case 326:
 
 /* Line 1455 of yacc.c  */
-#line 3696 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3697 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
     break;
 
   case 327:
 
 /* Line 1455 of yacc.c  */
-#line 3701 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3702 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_pcontext *ctx= lex->spcont;
@@ -20953,7 +20981,7 @@ yyreduce:
   case 328:
 
 /* Line 1455 of yacc.c  */
-#line 3717 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3718 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_label_t *lab= lex->spcont->pop_label();
@@ -20972,7 +21000,7 @@ yyreduce:
   case 329:
 
 /* Line 1455 of yacc.c  */
-#line 3733 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3734 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* Unlabeled blocks get a secret label. */
             LEX *lex= Lex;
             uint ip= lex->sphead->instructions();
@@ -20984,7 +21012,7 @@ yyreduce:
   case 330:
 
 /* Line 1455 of yacc.c  */
-#line 3740 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3741 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->spcont->pop_label();
@@ -20994,7 +21022,7 @@ yyreduce:
   case 331:
 
 /* Line 1455 of yacc.c  */
-#line 3748 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3749 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* QQ This is just a dummy for grouping declarations and statements
               together. No [[NOT] ATOMIC] yet, and we need to figure out how
               make it coexist with the existing BEGIN COMMIT/ROLLBACK. */
@@ -21006,7 +21034,7 @@ yyreduce:
   case 332:
 
 /* Line 1455 of yacc.c  */
-#line 3757 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3758 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -21035,7 +21063,7 @@ yyreduce:
   case 333:
 
 /* Line 1455 of yacc.c  */
-#line 3785 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3786 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             uint ip= lex->sphead->instructions();
@@ -21050,14 +21078,14 @@ yyreduce:
   case 334:
 
 /* Line 1455 of yacc.c  */
-#line 3795 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3796 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sphead->reset_lex(thd); }
     break;
 
   case 335:
 
 /* Line 1455 of yacc.c  */
-#line 3797 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3798 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -21078,7 +21106,7 @@ yyreduce:
   case 336:
 
 /* Line 1455 of yacc.c  */
-#line 3813 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3814 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             uint ip= lex->sphead->instructions();
@@ -21094,14 +21122,14 @@ yyreduce:
   case 337:
 
 /* Line 1455 of yacc.c  */
-#line 3824 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3825 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sphead->reset_lex(thd); }
     break;
 
   case 338:
 
 /* Line 1455 of yacc.c  */
-#line 3826 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3827 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             uint ip= lex->sphead->instructions();
@@ -21122,49 +21150,49 @@ yyreduce:
   case 339:
 
 /* Line 1455 of yacc.c  */
-#line 3845 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3846 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; }
     break;
 
   case 340:
 
 /* Line 1455 of yacc.c  */
-#line 3847 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3848 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->trg_chistics.action_time= TRG_ACTION_AFTER; }
     break;
 
   case 341:
 
 /* Line 1455 of yacc.c  */
-#line 3852 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3853 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->trg_chistics.event= TRG_EVENT_INSERT; }
     break;
 
   case 342:
 
 /* Line 1455 of yacc.c  */
-#line 3854 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3855 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->trg_chistics.event= TRG_EVENT_UPDATE; }
     break;
 
   case 343:
 
 /* Line 1455 of yacc.c  */
-#line 3856 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3857 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->trg_chistics.event= TRG_EVENT_DELETE; }
     break;
 
   case 347:
 
 /* Line 1455 of yacc.c  */
-#line 3890 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3891 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 348:
 
 /* Line 1455 of yacc.c  */
-#line 3892 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3893 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->logfile_group_name= (yyvsp[(4) - (4)].lex_str).str;
@@ -21174,7 +21202,7 @@ yyreduce:
   case 349:
 
 /* Line 1455 of yacc.c  */
-#line 3902 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3903 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE; 
           }
@@ -21183,7 +21211,7 @@ yyreduce:
   case 350:
 
 /* Line 1455 of yacc.c  */
-#line 3908 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3909 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE; 
           }
@@ -21192,14 +21220,14 @@ yyreduce:
   case 355:
 
 /* Line 1455 of yacc.c  */
-#line 3931 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 3932 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 402:
 
 /* Line 1455 of yacc.c  */
-#line 4025 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4026 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->data_file_name= (yyvsp[(2) - (2)].lex_str).str;
@@ -21209,7 +21237,7 @@ yyreduce:
   case 403:
 
 /* Line 1455 of yacc.c  */
-#line 4033 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4034 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->undo_file_name= (yyvsp[(2) - (2)].lex_str).str;
@@ -21219,7 +21247,7 @@ yyreduce:
   case 404:
 
 /* Line 1455 of yacc.c  */
-#line 4041 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4042 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->redo_file_name= (yyvsp[(2) - (2)].lex_str).str;
@@ -21229,7 +21257,7 @@ yyreduce:
   case 405:
 
 /* Line 1455 of yacc.c  */
-#line 4049 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4050 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info= new st_alter_tablespace();
@@ -21243,7 +21271,7 @@ yyreduce:
   case 406:
 
 /* Line 1455 of yacc.c  */
-#line 4061 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4062 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info= new st_alter_tablespace();
@@ -21257,7 +21285,7 @@ yyreduce:
   case 407:
 
 /* Line 1455 of yacc.c  */
-#line 4073 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4074 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->ts_access_mode= TS_READ_ONLY;
@@ -21267,7 +21295,7 @@ yyreduce:
   case 408:
 
 /* Line 1455 of yacc.c  */
-#line 4078 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4079 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->ts_access_mode= TS_READ_WRITE;
@@ -21277,7 +21305,7 @@ yyreduce:
   case 409:
 
 /* Line 1455 of yacc.c  */
-#line 4083 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4084 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->ts_access_mode= TS_NOT_ACCESSIBLE;
@@ -21287,7 +21315,7 @@ yyreduce:
   case 410:
 
 /* Line 1455 of yacc.c  */
-#line 4091 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4092 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->initial_size= (yyvsp[(3) - (3)].ulonglong_number);
@@ -21297,7 +21325,7 @@ yyreduce:
   case 411:
 
 /* Line 1455 of yacc.c  */
-#line 4099 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4100 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->autoextend_size= (yyvsp[(3) - (3)].ulonglong_number);
@@ -21307,7 +21335,7 @@ yyreduce:
   case 412:
 
 /* Line 1455 of yacc.c  */
-#line 4107 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4108 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->max_size= (yyvsp[(3) - (3)].ulonglong_number);
@@ -21317,7 +21345,7 @@ yyreduce:
   case 413:
 
 /* Line 1455 of yacc.c  */
-#line 4115 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4116 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->extent_size= (yyvsp[(3) - (3)].ulonglong_number);
@@ -21327,7 +21355,7 @@ yyreduce:
   case 414:
 
 /* Line 1455 of yacc.c  */
-#line 4123 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4124 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->undo_buffer_size= (yyvsp[(3) - (3)].ulonglong_number);
@@ -21337,7 +21365,7 @@ yyreduce:
   case 415:
 
 /* Line 1455 of yacc.c  */
-#line 4131 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4132 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->redo_buffer_size= (yyvsp[(3) - (3)].ulonglong_number);
@@ -21347,7 +21375,7 @@ yyreduce:
   case 416:
 
 /* Line 1455 of yacc.c  */
-#line 4139 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4140 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->alter_tablespace_info->nodegroup_id != UNDEF_NODEGROUP)
@@ -21362,7 +21390,7 @@ yyreduce:
   case 417:
 
 /* Line 1455 of yacc.c  */
-#line 4152 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4153 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->alter_tablespace_info->ts_comment != NULL)
@@ -21377,7 +21405,7 @@ yyreduce:
   case 418:
 
 /* Line 1455 of yacc.c  */
-#line 4165 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4166 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->alter_tablespace_info->storage_engine != NULL)
@@ -21393,7 +21421,7 @@ yyreduce:
   case 421:
 
 /* Line 1455 of yacc.c  */
-#line 4184 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4185 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->wait_until_completed= TRUE;
@@ -21403,7 +21431,7 @@ yyreduce:
   case 422:
 
 /* Line 1455 of yacc.c  */
-#line 4189 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4190 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (!(lex->alter_tablespace_info->wait_until_completed))
@@ -21418,14 +21446,14 @@ yyreduce:
   case 423:
 
 /* Line 1455 of yacc.c  */
-#line 4201 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4202 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.ulonglong_number)= (yyvsp[(1) - (1)].ulonglong_number);}
     break;
 
   case 424:
 
 /* Line 1455 of yacc.c  */
-#line 4203 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4204 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             ulonglong number;
             uint text_shift_number= 0;
@@ -21474,21 +21502,21 @@ yyreduce:
   case 425:
 
 /* Line 1455 of yacc.c  */
-#line 4253 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4254 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 426:
 
 /* Line 1455 of yacc.c  */
-#line 4256 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4257 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 427:
 
 /* Line 1455 of yacc.c  */
-#line 4258 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4259 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             TABLE_LIST *src_table;
             LEX *lex= thd->lex;
@@ -21507,7 +21535,7 @@ yyreduce:
   case 428:
 
 /* Line 1455 of yacc.c  */
-#line 4272 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4273 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             TABLE_LIST *src_table;
             LEX *lex= thd->lex;
@@ -21526,7 +21554,7 @@ yyreduce:
   case 429:
 
 /* Line 1455 of yacc.c  */
-#line 4289 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4290 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.option_list= NULL;
           }
@@ -21535,63 +21563,63 @@ yyreduce:
   case 430:
 
 /* Line 1455 of yacc.c  */
-#line 4294 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4295 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 431:
 
 /* Line 1455 of yacc.c  */
-#line 4297 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4298 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->set_braces(1);}
     break;
 
   case 432:
 
 /* Line 1455 of yacc.c  */
-#line 4298 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4299 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 433:
 
 /* Line 1455 of yacc.c  */
-#line 4302 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4303 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 434:
 
 /* Line 1455 of yacc.c  */
-#line 4304 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4305 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->set_braces(0);}
     break;
 
   case 435:
 
 /* Line 1455 of yacc.c  */
-#line 4305 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4306 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 436:
 
 /* Line 1455 of yacc.c  */
-#line 4307 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4308 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->set_braces(1);}
     break;
 
   case 437:
 
 /* Line 1455 of yacc.c  */
-#line 4308 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4309 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 438:
 
 /* Line 1455 of yacc.c  */
-#line 4313 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4314 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               Remove all tables used in PARTITION clause from the global table
@@ -21606,14 +21634,14 @@ yyreduce:
   case 439:
 
 /* Line 1455 of yacc.c  */
-#line 4349 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4350 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 441:
 
 /* Line 1455 of yacc.c  */
-#line 4355 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4356 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->part_info= new partition_info();
@@ -21632,7 +21660,7 @@ yyreduce:
   case 443:
 
 /* Line 1455 of yacc.c  */
-#line 4373 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4374 "/home/buildbot/git/sql/sql_yacc.yy"
     {
 #ifdef WITH_PARTITION_STORAGE_ENGINE
             LEX_STRING partition_name={C_STRING_WITH_LEN("partition")};
@@ -21653,7 +21681,7 @@ yyreduce:
   case 444:
 
 /* Line 1455 of yacc.c  */
-#line 4392 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4393 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (!lex->part_info)
@@ -21671,14 +21699,14 @@ yyreduce:
   case 445:
 
 /* Line 1455 of yacc.c  */
-#line 4404 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4405 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 447:
 
 /* Line 1455 of yacc.c  */
-#line 4413 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4414 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             part_info->list_of_part_fields= TRUE;
@@ -21690,70 +21718,70 @@ yyreduce:
   case 448:
 
 /* Line 1455 of yacc.c  */
-#line 4420 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4421 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->part_type= HASH_PARTITION; }
     break;
 
   case 449:
 
 /* Line 1455 of yacc.c  */
-#line 4421 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4422 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 450:
 
 /* Line 1455 of yacc.c  */
-#line 4423 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4424 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->part_type= RANGE_PARTITION; }
     break;
 
   case 451:
 
 /* Line 1455 of yacc.c  */
-#line 4425 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4426 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->part_type= RANGE_PARTITION; }
     break;
 
   case 452:
 
 /* Line 1455 of yacc.c  */
-#line 4427 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4428 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->part_type= LIST_PARTITION; }
     break;
 
   case 453:
 
 /* Line 1455 of yacc.c  */
-#line 4429 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4430 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->part_type= LIST_PARTITION; }
     break;
 
   case 454:
 
 /* Line 1455 of yacc.c  */
-#line 4433 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4434 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 455:
 
 /* Line 1455 of yacc.c  */
-#line 4435 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4436 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->linear_hash_ind= TRUE;}
     break;
 
   case 456:
 
 /* Line 1455 of yacc.c  */
-#line 4440 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4441 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->key_algorithm= partition_info::KEY_ALGORITHM_NONE;}
     break;
 
   case 457:
 
 /* Line 1455 of yacc.c  */
-#line 4442 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4443 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             switch ((yyvsp[(3) - (3)].ulong_num)) {
             case 1:
@@ -21772,35 +21800,35 @@ yyreduce:
   case 458:
 
 /* Line 1455 of yacc.c  */
-#line 4458 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4459 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 459:
 
 /* Line 1455 of yacc.c  */
-#line 4459 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4460 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 460:
 
 /* Line 1455 of yacc.c  */
-#line 4463 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4464 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 461:
 
 /* Line 1455 of yacc.c  */
-#line 4464 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4465 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 462:
 
 /* Line 1455 of yacc.c  */
-#line 4469 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4470 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             part_info->num_columns++;
@@ -21821,7 +21849,7 @@ yyreduce:
   case 463:
 
 /* Line 1455 of yacc.c  */
-#line 4488 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4489 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             part_info->column_list= TRUE;
@@ -21832,7 +21860,7 @@ yyreduce:
   case 464:
 
 /* Line 1455 of yacc.c  */
-#line 4498 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4499 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             if (part_info->set_part_expr((yyvsp[(2) - (5)].simple_string)+1, (yyvsp[(3) - (5)].item), (yyvsp[(4) - (5)].simple_string), FALSE))
@@ -21845,7 +21873,7 @@ yyreduce:
   case 465:
 
 /* Line 1455 of yacc.c  */
-#line 4509 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4510 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->part_info->set_part_expr((yyvsp[(2) - (5)].simple_string)+1, (yyvsp[(3) - (5)].item), (yyvsp[(4) - (5)].simple_string), TRUE))
             { MYSQL_YYABORT; }
@@ -21855,14 +21883,14 @@ yyreduce:
   case 466:
 
 /* Line 1455 of yacc.c  */
-#line 4517 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4518 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 467:
 
 /* Line 1455 of yacc.c  */
-#line 4519 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4520 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             uint num_parts= (yyvsp[(2) - (2)].ulong_num);
             partition_info *part_info= Lex->part_info;
@@ -21880,28 +21908,28 @@ yyreduce:
   case 468:
 
 /* Line 1455 of yacc.c  */
-#line 4534 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4535 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 469:
 
 /* Line 1455 of yacc.c  */
-#line 4536 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4537 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->subpart_type= HASH_PARTITION; }
     break;
 
   case 470:
 
 /* Line 1455 of yacc.c  */
-#line 4537 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4538 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 471:
 
 /* Line 1455 of yacc.c  */
-#line 4540 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4541 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             part_info->subpart_type= HASH_PARTITION;
@@ -21912,28 +21940,28 @@ yyreduce:
   case 472:
 
 /* Line 1455 of yacc.c  */
-#line 4545 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4546 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 473:
 
 /* Line 1455 of yacc.c  */
-#line 4549 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4550 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 474:
 
 /* Line 1455 of yacc.c  */
-#line 4550 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4551 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 475:
 
 /* Line 1455 of yacc.c  */
-#line 4555 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4556 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             if (part_info->subpart_field_list.push_back((yyvsp[(1) - (1)].lex_str).str))
@@ -21953,7 +21981,7 @@ yyreduce:
   case 476:
 
 /* Line 1455 of yacc.c  */
-#line 4573 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4574 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             bool not_corr_func;
@@ -21971,14 +21999,14 @@ yyreduce:
   case 477:
 
 /* Line 1455 of yacc.c  */
-#line 4588 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4589 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 478:
 
 /* Line 1455 of yacc.c  */
-#line 4590 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4591 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             uint num_parts= (yyvsp[(2) - (2)].ulong_num);
             LEX *lex= Lex;
@@ -21995,7 +22023,7 @@ yyreduce:
   case 479:
 
 /* Line 1455 of yacc.c  */
-#line 4605 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4606 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             if (part_info->part_type == RANGE_PARTITION)
@@ -22016,7 +22044,7 @@ yyreduce:
   case 480:
 
 /* Line 1455 of yacc.c  */
-#line 4621 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4622 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             uint count_curr_parts= part_info->partitions.elements;
@@ -22040,21 +22068,21 @@ yyreduce:
   case 481:
 
 /* Line 1455 of yacc.c  */
-#line 4642 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4643 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 482:
 
 /* Line 1455 of yacc.c  */
-#line 4643 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4644 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 483:
 
 /* Line 1455 of yacc.c  */
-#line 4648 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4649 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             partition_element *p_elem= new partition_element();
@@ -22075,14 +22103,14 @@ yyreduce:
   case 484:
 
 /* Line 1455 of yacc.c  */
-#line 4667 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4668 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 485:
 
 /* Line 1455 of yacc.c  */
-#line 4672 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4673 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             partition_element *p_elem= part_info->curr_part_elem;
@@ -22093,7 +22121,7 @@ yyreduce:
   case 486:
 
 /* Line 1455 of yacc.c  */
-#line 4681 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4682 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             partition_info *part_info= lex->part_info;
@@ -22120,7 +22148,7 @@ yyreduce:
   case 487:
 
 /* Line 1455 of yacc.c  */
-#line 4703 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4704 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             partition_info *part_info= lex->part_info;
@@ -22141,14 +22169,14 @@ yyreduce:
   case 488:
 
 /* Line 1455 of yacc.c  */
-#line 4718 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4719 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 489:
 
 /* Line 1455 of yacc.c  */
-#line 4720 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4721 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             partition_info *part_info= lex->part_info;
@@ -22169,14 +22197,14 @@ yyreduce:
   case 490:
 
 /* Line 1455 of yacc.c  */
-#line 4735 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4736 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 491:
 
 /* Line 1455 of yacc.c  */
-#line 4740 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4741 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
 
@@ -22203,14 +22231,14 @@ yyreduce:
   case 492:
 
 /* Line 1455 of yacc.c  */
-#line 4761 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4762 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 493:
 
 /* Line 1455 of yacc.c  */
-#line 4766 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4767 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             partition_info *part_info= lex->part_info;
@@ -22244,7 +22272,7 @@ yyreduce:
   case 494:
 
 /* Line 1455 of yacc.c  */
-#line 4795 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4796 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             if (part_info->num_columns < 2U)
@@ -22258,21 +22286,21 @@ yyreduce:
   case 495:
 
 /* Line 1455 of yacc.c  */
-#line 4806 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4807 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 496:
 
 /* Line 1455 of yacc.c  */
-#line 4807 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4808 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 497:
 
 /* Line 1455 of yacc.c  */
-#line 4812 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4813 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             part_info->print_debug("( part_value_item", NULL);
@@ -22289,14 +22317,14 @@ yyreduce:
   case 498:
 
 /* Line 1455 of yacc.c  */
-#line 4823 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4824 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 499:
 
 /* Line 1455 of yacc.c  */
-#line 4825 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4826 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             part_info->print_debug(") part_value_item", NULL);
@@ -22322,21 +22350,21 @@ yyreduce:
   case 500:
 
 /* Line 1455 of yacc.c  */
-#line 4848 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4849 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 501:
 
 /* Line 1455 of yacc.c  */
-#line 4849 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4850 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 502:
 
 /* Line 1455 of yacc.c  */
-#line 4854 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4855 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             if (part_info->part_type == LIST_PARTITION)
@@ -22354,7 +22382,7 @@ yyreduce:
   case 503:
 
 /* Line 1455 of yacc.c  */
-#line 4867 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4868 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             partition_info *part_info= lex->part_info;
@@ -22375,7 +22403,7 @@ yyreduce:
   case 504:
 
 /* Line 1455 of yacc.c  */
-#line 4887 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4888 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             if (part_info->num_subparts != 0 &&
@@ -22394,7 +22422,7 @@ yyreduce:
   case 505:
 
 /* Line 1455 of yacc.c  */
-#line 4901 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4902 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             if (part_info->num_subparts != 0)
@@ -22422,21 +22450,21 @@ yyreduce:
   case 506:
 
 /* Line 1455 of yacc.c  */
-#line 4926 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4927 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 507:
 
 /* Line 1455 of yacc.c  */
-#line 4927 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4928 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 508:
 
 /* Line 1455 of yacc.c  */
-#line 4932 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4933 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             partition_element *curr_part= part_info->current_partition;
@@ -22474,56 +22502,56 @@ yyreduce:
   case 509:
 
 /* Line 1455 of yacc.c  */
-#line 4964 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4965 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 510:
 
 /* Line 1455 of yacc.c  */
-#line 4969 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4970 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->curr_part_elem->partition_name= (yyvsp[(1) - (1)].lex_str).str; }
     break;
 
   case 511:
 
 /* Line 1455 of yacc.c  */
-#line 4973 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4974 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 512:
 
 /* Line 1455 of yacc.c  */
-#line 4974 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4975 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 513:
 
 /* Line 1455 of yacc.c  */
-#line 4978 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4979 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 514:
 
 /* Line 1455 of yacc.c  */
-#line 4979 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4980 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 515:
 
 /* Line 1455 of yacc.c  */
-#line 4984 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4985 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->curr_part_elem->tablespace_name= (yyvsp[(3) - (3)].lex_str).str; }
     break;
 
   case 516:
 
 /* Line 1455 of yacc.c  */
-#line 4986 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4987 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             part_info->curr_part_elem->engine_type= (yyvsp[(4) - (4)].db_type);
@@ -22534,7 +22562,7 @@ yyreduce:
   case 517:
 
 /* Line 1455 of yacc.c  */
-#line 4992 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4993 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->part_info->curr_part_elem->connect_string.str= (yyvsp[(3) - (3)].lex_str).str;
@@ -22545,49 +22573,49 @@ yyreduce:
   case 518:
 
 /* Line 1455 of yacc.c  */
-#line 4998 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 4999 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) (yyvsp[(3) - (3)].ulong_num); }
     break;
 
   case 519:
 
 /* Line 1455 of yacc.c  */
-#line 5000 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5001 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) (yyvsp[(3) - (3)].ulonglong_number); }
     break;
 
   case 520:
 
 /* Line 1455 of yacc.c  */
-#line 5002 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5003 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) (yyvsp[(3) - (3)].ulonglong_number); }
     break;
 
   case 521:
 
 /* Line 1455 of yacc.c  */
-#line 5004 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5005 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->curr_part_elem->data_file_name= (yyvsp[(4) - (4)].lex_str).str; }
     break;
 
   case 522:
 
 /* Line 1455 of yacc.c  */
-#line 5006 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5007 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->curr_part_elem->index_file_name= (yyvsp[(4) - (4)].lex_str).str; }
     break;
 
   case 523:
 
 /* Line 1455 of yacc.c  */
-#line 5008 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5009 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->part_info->curr_part_elem->part_comment= (yyvsp[(3) - (3)].lex_str).str; }
     break;
 
   case 524:
 
 /* Line 1455 of yacc.c  */
-#line 5017 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5018 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (lex->sql_command == SQLCOM_INSERT)
@@ -22607,7 +22635,7 @@ yyreduce:
   case 525:
 
 /* Line 1455 of yacc.c  */
-#line 5032 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5033 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->parsing_place= NO_MATTER;
           }
@@ -22616,7 +22644,7 @@ yyreduce:
   case 526:
 
 /* Line 1455 of yacc.c  */
-#line 5036 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5037 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               The following work only with the local list, the global list
@@ -22629,112 +22657,112 @@ yyreduce:
   case 527:
 
 /* Line 1455 of yacc.c  */
-#line 5046 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5047 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 528:
 
 /* Line 1455 of yacc.c  */
-#line 5047 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5048 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 529:
 
 /* Line 1455 of yacc.c  */
-#line 5051 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5052 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 530:
 
 /* Line 1455 of yacc.c  */
-#line 5052 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5053 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 531:
 
 /* Line 1455 of yacc.c  */
-#line 5056 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5057 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 532:
 
 /* Line 1455 of yacc.c  */
-#line 5057 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5058 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 533:
 
 /* Line 1455 of yacc.c  */
-#line 5061 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5062 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 534:
 
 /* Line 1455 of yacc.c  */
-#line 5062 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5063 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 535:
 
 /* Line 1455 of yacc.c  */
-#line 5066 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5067 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0; }
     break;
 
   case 536:
 
 /* Line 1455 of yacc.c  */
-#line 5067 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5068 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= (yyvsp[(1) - (1)].num);}
     break;
 
   case 537:
 
 /* Line 1455 of yacc.c  */
-#line 5071 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5072 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=(yyvsp[(1) - (1)].num); }
     break;
 
   case 538:
 
 /* Line 1455 of yacc.c  */
-#line 5072 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5073 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= (yyvsp[(1) - (2)].num) | (yyvsp[(2) - (2)].num); }
     break;
 
   case 539:
 
 /* Line 1455 of yacc.c  */
-#line 5076 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5077 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=HA_LEX_CREATE_TMP_TABLE; }
     break;
 
   case 540:
 
 /* Line 1455 of yacc.c  */
-#line 5080 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5081 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0; }
     break;
 
   case 541:
 
 /* Line 1455 of yacc.c  */
-#line 5081 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5082 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=HA_LEX_CREATE_IF_NOT_EXISTS; }
     break;
 
   case 549:
 
 /* Line 1455 of yacc.c  */
-#line 5102 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5103 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.db_type= (yyvsp[(3) - (3)].db_type);
             Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE;
@@ -22744,7 +22772,7 @@ yyreduce:
   case 550:
 
 /* Line 1455 of yacc.c  */
-#line 5107 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5108 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.max_rows= (yyvsp[(3) - (3)].ulonglong_number);
             Lex->create_info.used_fields|= HA_CREATE_USED_MAX_ROWS;
@@ -22754,7 +22782,7 @@ yyreduce:
   case 551:
 
 /* Line 1455 of yacc.c  */
-#line 5112 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5113 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.min_rows= (yyvsp[(3) - (3)].ulonglong_number);
             Lex->create_info.used_fields|= HA_CREATE_USED_MIN_ROWS;
@@ -22764,7 +22792,7 @@ yyreduce:
   case 552:
 
 /* Line 1455 of yacc.c  */
-#line 5117 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5118 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.avg_row_length=(yyvsp[(3) - (3)].ulong_num);
             Lex->create_info.used_fields|= HA_CREATE_USED_AVG_ROW_LENGTH;
@@ -22774,7 +22802,7 @@ yyreduce:
   case 553:
 
 /* Line 1455 of yacc.c  */
-#line 5122 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5123 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.password=(yyvsp[(3) - (3)].lex_str).str;
             Lex->create_info.used_fields|= HA_CREATE_USED_PASSWORD;
@@ -22784,7 +22812,7 @@ yyreduce:
   case 554:
 
 /* Line 1455 of yacc.c  */
-#line 5127 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5128 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.comment=(yyvsp[(3) - (3)].lex_str);
             Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT;
@@ -22794,7 +22822,7 @@ yyreduce:
   case 555:
 
 /* Line 1455 of yacc.c  */
-#line 5132 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5133 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.auto_increment_value=(yyvsp[(3) - (3)].ulonglong_number);
             Lex->create_info.used_fields|= HA_CREATE_USED_AUTO;
@@ -22804,7 +22832,7 @@ yyreduce:
   case 556:
 
 /* Line 1455 of yacc.c  */
-#line 5137 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5138 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             switch((yyvsp[(3) - (3)].ulong_num)) {
             case 0:
@@ -22824,7 +22852,7 @@ yyreduce:
   case 557:
 
 /* Line 1455 of yacc.c  */
-#line 5152 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5153 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.table_options&=
               ~(HA_OPTION_PACK_KEYS | HA_OPTION_NO_PACK_KEYS);
@@ -22835,7 +22863,7 @@ yyreduce:
   case 558:
 
 /* Line 1455 of yacc.c  */
-#line 5158 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5159 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM;
             Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM;
@@ -22845,7 +22873,7 @@ yyreduce:
   case 559:
 
 /* Line 1455 of yacc.c  */
-#line 5163 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5164 "/home/buildbot/git/sql/sql_yacc.yy"
     {
              Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM;
              Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM;
@@ -22855,7 +22883,7 @@ yyreduce:
   case 560:
 
 /* Line 1455 of yacc.c  */
-#line 5168 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5169 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.used_fields|= HA_CREATE_USED_PAGE_CHECKSUM;
             Lex->create_info.page_checksum= (yyvsp[(3) - (3)].choice);
@@ -22865,7 +22893,7 @@ yyreduce:
   case 561:
 
 /* Line 1455 of yacc.c  */
-#line 5173 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5174 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.table_options|= (yyvsp[(3) - (3)].ulong_num) ? HA_OPTION_DELAY_KEY_WRITE : HA_OPTION_NO_DELAY_KEY_WRITE;
             Lex->create_info.used_fields|= HA_CREATE_USED_DELAY_KEY_WRITE;
@@ -22875,7 +22903,7 @@ yyreduce:
   case 562:
 
 /* Line 1455 of yacc.c  */
-#line 5178 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5179 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.row_type= (yyvsp[(3) - (3)].row_type);
             Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT;
@@ -22885,7 +22913,7 @@ yyreduce:
   case 563:
 
 /* Line 1455 of yacc.c  */
-#line 5183 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5184 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->select_lex.table_list.save_and_clear(&Lex->save_list);
           }
@@ -22894,7 +22922,7 @@ yyreduce:
   case 564:
 
 /* Line 1455 of yacc.c  */
-#line 5187 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5188 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               Move the union list to the merge_list and exclude its tables
@@ -22921,7 +22949,7 @@ yyreduce:
   case 567:
 
 /* Line 1455 of yacc.c  */
-#line 5211 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5212 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.merge_insert_method= (yyvsp[(3) - (3)].ulong_num);
             Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD;
@@ -22931,7 +22959,7 @@ yyreduce:
   case 568:
 
 /* Line 1455 of yacc.c  */
-#line 5216 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5217 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.data_file_name= (yyvsp[(4) - (4)].lex_str).str;
             Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR;
@@ -22941,7 +22969,7 @@ yyreduce:
   case 569:
 
 /* Line 1455 of yacc.c  */
-#line 5221 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5222 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.index_file_name= (yyvsp[(4) - (4)].lex_str).str;
             Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR;
@@ -22951,28 +22979,28 @@ yyreduce:
   case 570:
 
 /* Line 1455 of yacc.c  */
-#line 5226 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5227 "/home/buildbot/git/sql/sql_yacc.yy"
     {Lex->create_info.tablespace= (yyvsp[(2) - (2)].lex_str).str;}
     break;
 
   case 571:
 
 /* Line 1455 of yacc.c  */
-#line 5228 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5229 "/home/buildbot/git/sql/sql_yacc.yy"
     {Lex->create_info.storage_media= HA_SM_DISK;}
     break;
 
   case 572:
 
 /* Line 1455 of yacc.c  */
-#line 5230 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5231 "/home/buildbot/git/sql/sql_yacc.yy"
     {Lex->create_info.storage_media= HA_SM_MEMORY;}
     break;
 
   case 573:
 
 /* Line 1455 of yacc.c  */
-#line 5232 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5233 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.connect_string.str= (yyvsp[(3) - (3)].lex_str).str;
             Lex->create_info.connect_string.length= (yyvsp[(3) - (3)].lex_str).length;
@@ -22983,7 +23011,7 @@ yyreduce:
   case 574:
 
 /* Line 1455 of yacc.c  */
-#line 5238 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5239 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.used_fields|= HA_CREATE_USED_KEY_BLOCK_SIZE;
             Lex->create_info.key_block_size= (yyvsp[(3) - (3)].ulong_num);
@@ -22993,7 +23021,7 @@ yyreduce:
   case 575:
 
 /* Line 1455 of yacc.c  */
-#line 5243 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5244 "/home/buildbot/git/sql/sql_yacc.yy"
     {
 	    Lex->create_info.used_fields|= HA_CREATE_USED_TRANSACTIONAL;
             Lex->create_info.transactional= (yyvsp[(3) - (3)].choice);
@@ -23003,7 +23031,7 @@ yyreduce:
   case 576:
 
 /* Line 1455 of yacc.c  */
-#line 5248 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5249 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             new (thd->mem_root)
               engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), true, &Lex->create_info.option_list,
@@ -23014,7 +23042,7 @@ yyreduce:
   case 577:
 
 /* Line 1455 of yacc.c  */
-#line 5254 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5255 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             new (thd->mem_root)
               engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), false, &Lex->create_info.option_list,
@@ -23025,7 +23053,7 @@ yyreduce:
   case 578:
 
 /* Line 1455 of yacc.c  */
-#line 5260 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5261 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             new (thd->mem_root)
               engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].ulonglong_number), &Lex->create_info.option_list,
@@ -23036,7 +23064,7 @@ yyreduce:
   case 579:
 
 /* Line 1455 of yacc.c  */
-#line 5266 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5267 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             new (thd->mem_root)
               engine_option_value((yyvsp[(1) - (3)].lex_str), &Lex->create_info.option_list,
@@ -23047,7 +23075,7 @@ yyreduce:
   case 580:
 
 /* Line 1455 of yacc.c  */
-#line 5275 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5276 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             HA_CREATE_INFO *cinfo= &Lex->create_info;
             if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
@@ -23067,7 +23095,7 @@ yyreduce:
   case 581:
 
 /* Line 1455 of yacc.c  */
-#line 5293 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5294 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             HA_CREATE_INFO *cinfo= &Lex->create_info;
             if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) &&
@@ -23086,7 +23114,7 @@ yyreduce:
   case 582:
 
 /* Line 1455 of yacc.c  */
-#line 5310 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5311 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             plugin_ref plugin= ha_resolve_by_name(thd, &(yyvsp[(1) - (1)].lex_str));
 
@@ -23111,7 +23139,7 @@ yyreduce:
   case 583:
 
 /* Line 1455 of yacc.c  */
-#line 5333 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5334 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             plugin_ref plugin;
             if ((plugin= ha_resolve_by_name(thd, &(yyvsp[(1) - (1)].lex_str))))
@@ -23127,112 +23155,112 @@ yyreduce:
   case 584:
 
 /* Line 1455 of yacc.c  */
-#line 5346 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5347 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.row_type)= ROW_TYPE_DEFAULT; }
     break;
 
   case 585:
 
 /* Line 1455 of yacc.c  */
-#line 5347 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5348 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.row_type)= ROW_TYPE_FIXED; }
     break;
 
   case 586:
 
 /* Line 1455 of yacc.c  */
-#line 5348 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5349 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.row_type)= ROW_TYPE_DYNAMIC; }
     break;
 
   case 587:
 
 /* Line 1455 of yacc.c  */
-#line 5349 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5350 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.row_type)= ROW_TYPE_COMPRESSED; }
     break;
 
   case 588:
 
 /* Line 1455 of yacc.c  */
-#line 5350 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5351 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.row_type)= ROW_TYPE_REDUNDANT; }
     break;
 
   case 589:
 
 /* Line 1455 of yacc.c  */
-#line 5351 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5352 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.row_type)= ROW_TYPE_COMPACT; }
     break;
 
   case 590:
 
 /* Line 1455 of yacc.c  */
-#line 5352 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5353 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.row_type)= ROW_TYPE_PAGE; }
     break;
 
   case 591:
 
 /* Line 1455 of yacc.c  */
-#line 5356 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5357 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.ulong_num)= MERGE_INSERT_DISABLED; }
     break;
 
   case 592:
 
 /* Line 1455 of yacc.c  */
-#line 5357 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5358 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.ulong_num)= MERGE_INSERT_TO_FIRST; }
     break;
 
   case 593:
 
 /* Line 1455 of yacc.c  */
-#line 5358 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5359 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.ulong_num)= MERGE_INSERT_TO_LAST; }
     break;
 
   case 594:
 
 /* Line 1455 of yacc.c  */
-#line 5362 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5363 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 596:
 
 /* Line 1455 of yacc.c  */
-#line 5367 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5368 "/home/buildbot/git/sql/sql_yacc.yy"
     {(yyval.num) = (int) STRING_RESULT; }
     break;
 
   case 597:
 
 /* Line 1455 of yacc.c  */
-#line 5368 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5369 "/home/buildbot/git/sql/sql_yacc.yy"
     {(yyval.num) = (int) REAL_RESULT; }
     break;
 
   case 598:
 
 /* Line 1455 of yacc.c  */
-#line 5369 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5370 "/home/buildbot/git/sql/sql_yacc.yy"
     {(yyval.num) = (int) DECIMAL_RESULT; }
     break;
 
   case 599:
 
 /* Line 1455 of yacc.c  */
-#line 5370 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5371 "/home/buildbot/git/sql/sql_yacc.yy"
     {(yyval.num) = (int) INT_RESULT; }
     break;
 
   case 600:
 
 /* Line 1455 of yacc.c  */
-#line 5376 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5377 "/home/buildbot/git/sql/sql_yacc.yy"
     {
           Lex->create_last_non_select_table= Lex->last_table();
         }
@@ -23241,7 +23269,7 @@ yyreduce:
   case 606:
 
 /* Line 1455 of yacc.c  */
-#line 5394 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5395 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->col_list.empty(); /* Alloced by sql_alloc */
           }
@@ -23250,14 +23278,14 @@ yyreduce:
   case 607:
 
 /* Line 1455 of yacc.c  */
-#line 5401 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5402 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->option_list= NULL; }
     break;
 
   case 608:
 
 /* Line 1455 of yacc.c  */
-#line 5403 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5404 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_create_index (Lex, (yyvsp[(1) - (8)].key_type), (yyvsp[(2) - (8)].lex_str)))
               MYSQL_YYABORT;
@@ -23267,14 +23295,14 @@ yyreduce:
   case 609:
 
 /* Line 1455 of yacc.c  */
-#line 5409 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5410 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->option_list= NULL; }
     break;
 
   case 610:
 
 /* Line 1455 of yacc.c  */
-#line 5411 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5412 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_create_index (Lex, (yyvsp[(1) - (9)].key_type), (yyvsp[(3) - (9)].lex_str)))
               MYSQL_YYABORT;
@@ -23284,14 +23312,14 @@ yyreduce:
   case 611:
 
 /* Line 1455 of yacc.c  */
-#line 5417 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5418 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->option_list= NULL; }
     break;
 
   case 612:
 
 /* Line 1455 of yacc.c  */
-#line 5419 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5420 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_create_index (Lex, (yyvsp[(1) - (9)].key_type), (yyvsp[(3) - (9)].lex_str)))
               MYSQL_YYABORT;
@@ -23301,14 +23329,14 @@ yyreduce:
   case 613:
 
 /* Line 1455 of yacc.c  */
-#line 5425 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5426 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->option_list= NULL; }
     break;
 
   case 614:
 
 /* Line 1455 of yacc.c  */
-#line 5427 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5428 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_create_index (Lex, (yyvsp[(2) - (9)].key_type), (yyvsp[(3) - (9)].lex_str).str ? (yyvsp[(3) - (9)].lex_str) : (yyvsp[(1) - (9)].lex_str)))
               MYSQL_YYABORT;
@@ -23318,7 +23346,7 @@ yyreduce:
   case 615:
 
 /* Line 1455 of yacc.c  */
-#line 5432 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5433 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             Key *key= new Foreign_key((yyvsp[(4) - (8)].lex_str).str ? (yyvsp[(4) - (8)].lex_str) : (yyvsp[(1) - (8)].lex_str), lex->col_list,
@@ -23342,7 +23370,7 @@ yyreduce:
   case 616:
 
 /* Line 1455 of yacc.c  */
-#line 5451 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5452 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->col_list.empty(); /* Alloced by sql_alloc */
           }
@@ -23351,28 +23379,28 @@ yyreduce:
   case 620:
 
 /* Line 1455 of yacc.c  */
-#line 5466 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5467 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)= null_lex_str; }
     break;
 
   case 621:
 
 /* Line 1455 of yacc.c  */
-#line 5467 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5468 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
     break;
 
   case 622:
 
 /* Line 1455 of yacc.c  */
-#line 5471 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5472 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
     break;
 
   case 623:
 
 /* Line 1455 of yacc.c  */
-#line 5476 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5477 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->length=lex->dec=0;
@@ -23388,7 +23416,7 @@ yyreduce:
   case 624:
 
 /* Line 1455 of yacc.c  */
-#line 5487 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5488 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (add_field_to_list(lex->thd, &(yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_type).type,
@@ -23405,21 +23433,21 @@ yyreduce:
   case 625:
 
 /* Line 1455 of yacc.c  */
-#line 5502 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5503 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_type).set((yyvsp[(1) - (2)].num), Lex->length, Lex->dec, Lex->charset); }
     break;
 
   case 626:
 
 /* Line 1455 of yacc.c  */
-#line 5504 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5505 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_type).set((yyvsp[(1) - (3)].num), Lex->length, Lex->dec, Lex->charset); }
     break;
 
   case 627:
 
 /* Line 1455 of yacc.c  */
-#line 5506 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5507 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.lex_type)= (yyvsp[(4) - (9)].lex_type);
             Lex->vcol_info->set_field_type((yyval.lex_type).type);
@@ -23430,14 +23458,14 @@ yyreduce:
   case 629:
 
 /* Line 1455 of yacc.c  */
-#line 5515 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5516 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 630:
 
 /* Line 1455 of yacc.c  */
-#line 5520 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5521 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->vcol_info->set_stored_in_db_flag(FALSE);
           }
@@ -23446,7 +23474,7 @@ yyreduce:
   case 631:
 
 /* Line 1455 of yacc.c  */
-#line 5524 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5525 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->vcol_info->set_stored_in_db_flag(FALSE);
           }
@@ -23455,7 +23483,7 @@ yyreduce:
   case 632:
 
 /* Line 1455 of yacc.c  */
-#line 5528 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5529 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->vcol_info->set_stored_in_db_flag(TRUE);
           }
@@ -23464,28 +23492,28 @@ yyreduce:
   case 633:
 
 /* Line 1455 of yacc.c  */
-#line 5534 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5535 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 634:
 
 /* Line 1455 of yacc.c  */
-#line 5535 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5536 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 635:
 
 /* Line 1455 of yacc.c  */
-#line 5539 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5540 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 637:
 
 /* Line 1455 of yacc.c  */
-#line 5545 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5546 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->type|= UNIQUE_FLAG;
@@ -23496,7 +23524,7 @@ yyreduce:
   case 638:
 
 /* Line 1455 of yacc.c  */
-#line 5551 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5552 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->type|= UNIQUE_KEY_FLAG;
@@ -23507,14 +23535,14 @@ yyreduce:
   case 639:
 
 /* Line 1455 of yacc.c  */
-#line 5556 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5557 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->comment= (yyvsp[(2) - (2)].lex_str); }
     break;
 
   case 640:
 
 /* Line 1455 of yacc.c  */
-#line 5561 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5562 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               "PARSE_VCOL_EXPR" can only be used by the SQL server
@@ -23532,7 +23560,7 @@ yyreduce:
   case 641:
 
 /* Line 1455 of yacc.c  */
-#line 5577 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5578 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->vcol_info= new Virtual_column_info();
             if (!Lex->vcol_info)
@@ -23550,28 +23578,28 @@ yyreduce:
   case 642:
 
 /* Line 1455 of yacc.c  */
-#line 5592 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5593 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=(yyvsp[(1) - (3)].num); }
     break;
 
   case 643:
 
 /* Line 1455 of yacc.c  */
-#line 5593 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5594 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=(yyvsp[(1) - (3)].num); }
     break;
 
   case 644:
 
 /* Line 1455 of yacc.c  */
-#line 5594 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5595 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_FLOAT; }
     break;
 
   case 645:
 
 /* Line 1455 of yacc.c  */
-#line 5596 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5597 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->length= (char*) "1";
             (yyval.num)=MYSQL_TYPE_BIT;
@@ -23581,7 +23609,7 @@ yyreduce:
   case 646:
 
 /* Line 1455 of yacc.c  */
-#line 5601 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5602 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.num)=MYSQL_TYPE_BIT;
           }
@@ -23590,7 +23618,7 @@ yyreduce:
   case 647:
 
 /* Line 1455 of yacc.c  */
-#line 5605 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5606 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->length= (char*) "1";
             (yyval.num)=MYSQL_TYPE_TINY;
@@ -23600,7 +23628,7 @@ yyreduce:
   case 648:
 
 /* Line 1455 of yacc.c  */
-#line 5610 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5611 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->length= (char*) "1";
             (yyval.num)=MYSQL_TYPE_TINY;
@@ -23610,7 +23638,7 @@ yyreduce:
   case 649:
 
 /* Line 1455 of yacc.c  */
-#line 5615 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5616 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.num)=MYSQL_TYPE_STRING;
           }
@@ -23619,7 +23647,7 @@ yyreduce:
   case 650:
 
 /* Line 1455 of yacc.c  */
-#line 5619 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5620 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->length= (char*) "1";
             (yyval.num)=MYSQL_TYPE_STRING;
@@ -23629,7 +23657,7 @@ yyreduce:
   case 651:
 
 /* Line 1455 of yacc.c  */
-#line 5624 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5625 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.num)=MYSQL_TYPE_STRING;
             Lex->charset=national_charset_info;
@@ -23639,7 +23667,7 @@ yyreduce:
   case 652:
 
 /* Line 1455 of yacc.c  */
-#line 5629 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5630 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->length= (char*) "1";
             (yyval.num)=MYSQL_TYPE_STRING;
@@ -23650,7 +23678,7 @@ yyreduce:
   case 653:
 
 /* Line 1455 of yacc.c  */
-#line 5635 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5636 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->charset=&my_charset_bin;
             (yyval.num)=MYSQL_TYPE_STRING;
@@ -23660,7 +23688,7 @@ yyreduce:
   case 654:
 
 /* Line 1455 of yacc.c  */
-#line 5640 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5641 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->length= (char*) "1";
             Lex->charset=&my_charset_bin;
@@ -23671,7 +23699,7 @@ yyreduce:
   case 655:
 
 /* Line 1455 of yacc.c  */
-#line 5646 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5647 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.num)= MYSQL_TYPE_VARCHAR;
           }
@@ -23680,7 +23708,7 @@ yyreduce:
   case 656:
 
 /* Line 1455 of yacc.c  */
-#line 5650 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5651 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.num)= MYSQL_TYPE_VARCHAR;
             Lex->charset=national_charset_info;
@@ -23690,7 +23718,7 @@ yyreduce:
   case 657:
 
 /* Line 1455 of yacc.c  */
-#line 5655 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5656 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->charset=&my_charset_bin;
             (yyval.num)= MYSQL_TYPE_VARCHAR;
@@ -23700,7 +23728,7 @@ yyreduce:
   case 658:
 
 /* Line 1455 of yacc.c  */
-#line 5660 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5661 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->length)
             {
@@ -23723,21 +23751,21 @@ yyreduce:
   case 659:
 
 /* Line 1455 of yacc.c  */
-#line 5678 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5679 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_DATE; }
     break;
 
   case 660:
 
 /* Line 1455 of yacc.c  */
-#line 5680 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5681 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_TIME; }
     break;
 
   case 661:
 
 /* Line 1455 of yacc.c  */
-#line 5682 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5683 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (thd->variables.sql_mode & MODE_MAXDB)
               (yyval.num)=MYSQL_TYPE_DATETIME;
@@ -23755,14 +23783,14 @@ yyreduce:
   case 662:
 
 /* Line 1455 of yacc.c  */
-#line 5695 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5696 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_DATETIME; }
     break;
 
   case 663:
 
 /* Line 1455 of yacc.c  */
-#line 5697 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5698 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->charset=&my_charset_bin;
             (yyval.num)=MYSQL_TYPE_TINY_BLOB;
@@ -23772,7 +23800,7 @@ yyreduce:
   case 664:
 
 /* Line 1455 of yacc.c  */
-#line 5702 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5703 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->charset=&my_charset_bin;
             (yyval.num)=MYSQL_TYPE_BLOB;
@@ -23782,7 +23810,7 @@ yyreduce:
   case 665:
 
 /* Line 1455 of yacc.c  */
-#line 5707 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5708 "/home/buildbot/git/sql/sql_yacc.yy"
     {
 #ifdef HAVE_SPATIAL
             Lex->charset=&my_charset_bin;
@@ -23799,7 +23827,7 @@ yyreduce:
   case 666:
 
 /* Line 1455 of yacc.c  */
-#line 5719 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5720 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->charset=&my_charset_bin;
             (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB;
@@ -23809,7 +23837,7 @@ yyreduce:
   case 667:
 
 /* Line 1455 of yacc.c  */
-#line 5724 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5725 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->charset=&my_charset_bin;
             (yyval.num)=MYSQL_TYPE_LONG_BLOB;
@@ -23819,7 +23847,7 @@ yyreduce:
   case 668:
 
 /* Line 1455 of yacc.c  */
-#line 5729 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5730 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->charset=&my_charset_bin;
             (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB;
@@ -23829,98 +23857,98 @@ yyreduce:
   case 669:
 
 /* Line 1455 of yacc.c  */
-#line 5734 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5735 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
     break;
 
   case 670:
 
 /* Line 1455 of yacc.c  */
-#line 5736 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5737 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_TINY_BLOB; }
     break;
 
   case 671:
 
 /* Line 1455 of yacc.c  */
-#line 5738 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5739 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_BLOB; }
     break;
 
   case 672:
 
 /* Line 1455 of yacc.c  */
-#line 5740 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5741 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
     break;
 
   case 673:
 
 /* Line 1455 of yacc.c  */
-#line 5742 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5743 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_LONG_BLOB; }
     break;
 
   case 674:
 
 /* Line 1455 of yacc.c  */
-#line 5744 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5745 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
     break;
 
   case 675:
 
 /* Line 1455 of yacc.c  */
-#line 5746 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5747 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
     break;
 
   case 676:
 
 /* Line 1455 of yacc.c  */
-#line 5748 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5749 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;}
     break;
 
   case 677:
 
 /* Line 1455 of yacc.c  */
-#line 5750 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5751 "/home/buildbot/git/sql/sql_yacc.yy"
     {Lex->interval_list.empty();}
     break;
 
   case 678:
 
 /* Line 1455 of yacc.c  */
-#line 5752 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5753 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_ENUM; }
     break;
 
   case 679:
 
 /* Line 1455 of yacc.c  */
-#line 5754 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5755 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->interval_list.empty();}
     break;
 
   case 680:
 
 /* Line 1455 of yacc.c  */
-#line 5756 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5757 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_SET; }
     break;
 
   case 681:
 
 /* Line 1455 of yacc.c  */
-#line 5758 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5759 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; }
     break;
 
   case 682:
 
 /* Line 1455 of yacc.c  */
-#line 5760 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5761 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.num)=MYSQL_TYPE_LONGLONG;
             Lex->type|= (AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG |
@@ -23931,21 +23959,21 @@ yyreduce:
   case 683:
 
 /* Line 1455 of yacc.c  */
-#line 5768 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5769 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= Field::GEOM_GEOMETRY; }
     break;
 
   case 684:
 
 /* Line 1455 of yacc.c  */
-#line 5769 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5770 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= Field::GEOM_GEOMETRYCOLLECTION; }
     break;
 
   case 685:
 
 /* Line 1455 of yacc.c  */
-#line 5771 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5772 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->length= const_cast<char*>(STRINGIFY_ARG
                                            (MAX_LEN_GEOM_POINT_FIELD));
@@ -23956,147 +23984,147 @@ yyreduce:
   case 686:
 
 /* Line 1455 of yacc.c  */
-#line 5776 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5777 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= Field::GEOM_MULTIPOINT; }
     break;
 
   case 687:
 
 /* Line 1455 of yacc.c  */
-#line 5777 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5778 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= Field::GEOM_LINESTRING; }
     break;
 
   case 688:
 
 /* Line 1455 of yacc.c  */
-#line 5778 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5779 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= Field::GEOM_MULTILINESTRING; }
     break;
 
   case 689:
 
 /* Line 1455 of yacc.c  */
-#line 5779 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5780 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= Field::GEOM_POLYGON; }
     break;
 
   case 690:
 
 /* Line 1455 of yacc.c  */
-#line 5780 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5781 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= Field::GEOM_MULTIPOLYGON; }
     break;
 
   case 691:
 
 /* Line 1455 of yacc.c  */
-#line 5784 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5785 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 692:
 
 /* Line 1455 of yacc.c  */
-#line 5788 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5789 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 693:
 
 /* Line 1455 of yacc.c  */
-#line 5789 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5790 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 694:
 
 /* Line 1455 of yacc.c  */
-#line 5793 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5794 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 695:
 
 /* Line 1455 of yacc.c  */
-#line 5794 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5795 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 696:
 
 /* Line 1455 of yacc.c  */
-#line 5798 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5799 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 697:
 
 /* Line 1455 of yacc.c  */
-#line 5799 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5800 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 698:
 
 /* Line 1455 of yacc.c  */
-#line 5800 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5801 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 699:
 
 /* Line 1455 of yacc.c  */
-#line 5801 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5802 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 700:
 
 /* Line 1455 of yacc.c  */
-#line 5802 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5803 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 701:
 
 /* Line 1455 of yacc.c  */
-#line 5806 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5807 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_LONG; }
     break;
 
   case 702:
 
 /* Line 1455 of yacc.c  */
-#line 5807 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5808 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_TINY; }
     break;
 
   case 703:
 
 /* Line 1455 of yacc.c  */
-#line 5808 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5809 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_SHORT; }
     break;
 
   case 704:
 
 /* Line 1455 of yacc.c  */
-#line 5809 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5810 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_INT24; }
     break;
 
   case 705:
 
 /* Line 1455 of yacc.c  */
-#line 5810 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5811 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_LONGLONG; }
     break;
 
   case 706:
 
 /* Line 1455 of yacc.c  */
-#line 5815 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5816 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.num)= thd->variables.sql_mode & MODE_REAL_AS_FLOAT ?
               MYSQL_TYPE_FLOAT : MYSQL_TYPE_DOUBLE;
@@ -24106,42 +24134,42 @@ yyreduce:
   case 707:
 
 /* Line 1455 of yacc.c  */
-#line 5820 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5821 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_DOUBLE; }
     break;
 
   case 708:
 
 /* Line 1455 of yacc.c  */
-#line 5822 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5823 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=MYSQL_TYPE_DOUBLE; }
     break;
 
   case 709:
 
 /* Line 1455 of yacc.c  */
-#line 5827 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5828 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->dec=Lex->length= (char*)0; }
     break;
 
   case 710:
 
 /* Line 1455 of yacc.c  */
-#line 5829 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5830 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->dec= (char*)0; }
     break;
 
   case 711:
 
 /* Line 1455 of yacc.c  */
-#line 5831 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5832 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 712:
 
 /* Line 1455 of yacc.c  */
-#line 5836 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5837 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->length=(yyvsp[(2) - (5)].lex_str).str;
@@ -24152,154 +24180,154 @@ yyreduce:
   case 713:
 
 /* Line 1455 of yacc.c  */
-#line 5844 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5845 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 714:
 
 /* Line 1455 of yacc.c  */
-#line 5845 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5846 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 715:
 
 /* Line 1455 of yacc.c  */
-#line 5849 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5850 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 716:
 
 /* Line 1455 of yacc.c  */
-#line 5850 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5851 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 717:
 
 /* Line 1455 of yacc.c  */
-#line 5854 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5855 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 718:
 
 /* Line 1455 of yacc.c  */
-#line 5855 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5856 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= UNSIGNED_FLAG;}
     break;
 
   case 719:
 
 /* Line 1455 of yacc.c  */
-#line 5856 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5857 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; }
     break;
 
   case 720:
 
 /* Line 1455 of yacc.c  */
-#line 5860 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5861 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
     break;
 
   case 721:
 
 /* Line 1455 of yacc.c  */
-#line 5861 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5862 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
     break;
 
   case 722:
 
 /* Line 1455 of yacc.c  */
-#line 5862 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5863 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
     break;
 
   case 723:
 
 /* Line 1455 of yacc.c  */
-#line 5863 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5864 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->length= (yyvsp[(2) - (3)].lex_str).str; }
     break;
 
   case 724:
 
 /* Line 1455 of yacc.c  */
-#line 5866 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5867 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->length=(char*) 0; /* use default length */ }
     break;
 
   case 725:
 
 /* Line 1455 of yacc.c  */
-#line 5867 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5868 "/home/buildbot/git/sql/sql_yacc.yy"
     { }
     break;
 
   case 726:
 
 /* Line 1455 of yacc.c  */
-#line 5871 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5872 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 727:
 
 /* Line 1455 of yacc.c  */
-#line 5872 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5873 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 728:
 
 /* Line 1455 of yacc.c  */
-#line 5876 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5877 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 729:
 
 /* Line 1455 of yacc.c  */
-#line 5877 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5878 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 730:
 
 /* Line 1455 of yacc.c  */
-#line 5881 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5882 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 732:
 
 /* Line 1455 of yacc.c  */
-#line 5886 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5887 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type&= ~ NOT_NULL_FLAG; }
     break;
 
   case 733:
 
 /* Line 1455 of yacc.c  */
-#line 5887 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5888 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= NOT_NULL_FLAG; }
     break;
 
   case 734:
 
 /* Line 1455 of yacc.c  */
-#line 5888 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5889 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->default_value=(yyvsp[(2) - (2)].item); }
     break;
 
   case 735:
 
 /* Line 1455 of yacc.c  */
-#line 5890 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5891 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *item= new (thd->mem_root) Item_func_now_local(6);
             if (item == NULL)
@@ -24311,14 +24339,14 @@ yyreduce:
   case 736:
 
 /* Line 1455 of yacc.c  */
-#line 5896 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5897 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; }
     break;
 
   case 737:
 
 /* Line 1455 of yacc.c  */
-#line 5898 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5899 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             LEX *lex=Lex;
             lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNIQUE_FLAG;
@@ -24329,7 +24357,7 @@ yyreduce:
   case 738:
 
 /* Line 1455 of yacc.c  */
-#line 5904 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5905 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG;
@@ -24340,7 +24368,7 @@ yyreduce:
   case 739:
 
 /* Line 1455 of yacc.c  */
-#line 5910 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5911 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->type|= UNIQUE_FLAG; 
@@ -24351,7 +24379,7 @@ yyreduce:
   case 740:
 
 /* Line 1455 of yacc.c  */
-#line 5916 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5917 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->type|= UNIQUE_KEY_FLAG; 
@@ -24362,14 +24390,14 @@ yyreduce:
   case 741:
 
 /* Line 1455 of yacc.c  */
-#line 5921 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5922 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->comment= (yyvsp[(2) - (2)].lex_str); }
     break;
 
   case 742:
 
 /* Line 1455 of yacc.c  */
-#line 5923 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5924 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->charset && !my_charset_same(Lex->charset,(yyvsp[(2) - (2)].charset)))
             {
@@ -24387,7 +24415,7 @@ yyreduce:
   case 743:
 
 /* Line 1455 of yacc.c  */
-#line 5936 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5937 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             new (thd->mem_root)
               engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), true, &Lex->option_list,
@@ -24398,7 +24426,7 @@ yyreduce:
   case 744:
 
 /* Line 1455 of yacc.c  */
-#line 5942 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5943 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             new (thd->mem_root)
               engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), false, &Lex->option_list,
@@ -24409,7 +24437,7 @@ yyreduce:
   case 745:
 
 /* Line 1455 of yacc.c  */
-#line 5948 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5949 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             new (thd->mem_root)
               engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].ulonglong_number), &Lex->option_list,
@@ -24420,7 +24448,7 @@ yyreduce:
   case 746:
 
 /* Line 1455 of yacc.c  */
-#line 5954 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5955 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             new (thd->mem_root)
               engine_option_value((yyvsp[(1) - (3)].lex_str), &Lex->option_list, &Lex->option_list_last);
@@ -24430,7 +24458,7 @@ yyreduce:
   case 747:
 
 /* Line 1455 of yacc.c  */
-#line 5963 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5964 "/home/buildbot/git/sql/sql_yacc.yy"
     {
           (yyval.num)= (yyvsp[(1) - (2)].num);
 
@@ -24452,7 +24480,7 @@ yyreduce:
   case 748:
 
 /* Line 1455 of yacc.c  */
-#line 5984 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5985 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_now_local(6);
             if ((yyval.item) == NULL)
@@ -24463,42 +24491,42 @@ yyreduce:
   case 749:
 
 /* Line 1455 of yacc.c  */
-#line 5990 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5991 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)=(yyvsp[(1) - (1)].item); }
     break;
 
   case 750:
 
 /* Line 1455 of yacc.c  */
-#line 5994 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5995 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 751:
 
 /* Line 1455 of yacc.c  */
-#line 5995 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 5996 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 752:
 
 /* Line 1455 of yacc.c  */
-#line 5999 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6000 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 753:
 
 /* Line 1455 of yacc.c  */
-#line 6000 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6001 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 754:
 
 /* Line 1455 of yacc.c  */
-#line 6005 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6006 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!((yyval.charset)=get_charset_by_csname((yyvsp[(1) - (1)].lex_str).str,MY_CS_PRIMARY,MYF(0))))
             {
@@ -24511,42 +24539,42 @@ yyreduce:
   case 755:
 
 /* Line 1455 of yacc.c  */
-#line 6012 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6013 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.charset)= &my_charset_bin; }
     break;
 
   case 756:
 
 /* Line 1455 of yacc.c  */
-#line 6016 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6017 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.charset)=(yyvsp[(1) - (1)].charset);   }
     break;
 
   case 757:
 
 /* Line 1455 of yacc.c  */
-#line 6017 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6018 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.charset)=NULL; }
     break;
 
   case 758:
 
 /* Line 1455 of yacc.c  */
-#line 6021 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6022 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.charset)= NULL; }
     break;
 
   case 759:
 
 /* Line 1455 of yacc.c  */
-#line 6022 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6023 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.charset)= (yyvsp[(2) - (2)].charset); }
     break;
 
   case 760:
 
 /* Line 1455 of yacc.c  */
-#line 6027 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6028 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!((yyval.charset)=get_charset_by_csname((yyvsp[(1) - (1)].lex_str).str,MY_CS_PRIMARY,MYF(0))) &&
                 !((yyval.charset)=get_old_charset_by_name((yyvsp[(1) - (1)].lex_str).str)))
@@ -24560,28 +24588,28 @@ yyreduce:
   case 761:
 
 /* Line 1455 of yacc.c  */
-#line 6035 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6036 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.charset)= &my_charset_bin; }
     break;
 
   case 762:
 
 /* Line 1455 of yacc.c  */
-#line 6039 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6040 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.charset)=(yyvsp[(1) - (1)].charset);   }
     break;
 
   case 763:
 
 /* Line 1455 of yacc.c  */
-#line 6040 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6041 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.charset)=NULL; }
     break;
 
   case 764:
 
 /* Line 1455 of yacc.c  */
-#line 6045 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6046 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!((yyval.charset)=get_charset_by_name((yyvsp[(1) - (1)].lex_str).str,MYF(0))))
             {
@@ -24594,56 +24622,56 @@ yyreduce:
   case 765:
 
 /* Line 1455 of yacc.c  */
-#line 6055 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6056 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.charset)=NULL; }
     break;
 
   case 766:
 
 /* Line 1455 of yacc.c  */
-#line 6056 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6057 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.charset)=(yyvsp[(2) - (2)].charset); }
     break;
 
   case 767:
 
 /* Line 1455 of yacc.c  */
-#line 6060 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6061 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.charset)=(yyvsp[(1) - (1)].charset); }
     break;
 
   case 768:
 
 /* Line 1455 of yacc.c  */
-#line 6061 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6062 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.charset)=NULL; }
     break;
 
   case 769:
 
 /* Line 1455 of yacc.c  */
-#line 6065 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6066 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 770:
 
 /* Line 1455 of yacc.c  */
-#line 6066 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6067 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 771:
 
 /* Line 1455 of yacc.c  */
-#line 6071 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6072 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->charset= &my_charset_latin1; }
     break;
 
   case 772:
 
 /* Line 1455 of yacc.c  */
-#line 6073 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6074 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->charset= &my_charset_latin1_bin;
           }
@@ -24652,7 +24680,7 @@ yyreduce:
   case 773:
 
 /* Line 1455 of yacc.c  */
-#line 6077 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6078 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->charset= &my_charset_latin1_bin;
           }
@@ -24661,7 +24689,7 @@ yyreduce:
   case 774:
 
 /* Line 1455 of yacc.c  */
-#line 6084 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6085 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!(Lex->charset=get_charset_by_csname("ucs2",
                                                      MY_CS_PRIMARY,MYF(0))))
@@ -24675,7 +24703,7 @@ yyreduce:
   case 775:
 
 /* Line 1455 of yacc.c  */
-#line 6093 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6094 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!(Lex->charset=get_charset_by_name("ucs2_bin", MYF(0))))
             {
@@ -24688,7 +24716,7 @@ yyreduce:
   case 776:
 
 /* Line 1455 of yacc.c  */
-#line 6101 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6102 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!(Lex->charset=get_charset_by_name("ucs2_bin", MYF(0))))
             {
@@ -24701,28 +24729,28 @@ yyreduce:
   case 777:
 
 /* Line 1455 of yacc.c  */
-#line 6111 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6112 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->charset=NULL; }
     break;
 
   case 780:
 
 /* Line 1455 of yacc.c  */
-#line 6114 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6115 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->charset=&my_charset_bin; }
     break;
 
   case 781:
 
 /* Line 1455 of yacc.c  */
-#line 6115 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6116 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->charset=(yyvsp[(2) - (3)].charset); }
     break;
 
   case 782:
 
 /* Line 1455 of yacc.c  */
-#line 6117 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6118 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->charset= NULL;
             Lex->type|= BINCMP_FLAG;
@@ -24732,7 +24760,7 @@ yyreduce:
   case 783:
 
 /* Line 1455 of yacc.c  */
-#line 6122 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6123 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->charset= (yyvsp[(3) - (3)].charset);
             Lex->type|= BINCMP_FLAG;
@@ -24742,21 +24770,21 @@ yyreduce:
   case 784:
 
 /* Line 1455 of yacc.c  */
-#line 6129 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6130 "/home/buildbot/git/sql/sql_yacc.yy"
     { }
     break;
 
   case 785:
 
 /* Line 1455 of yacc.c  */
-#line 6130 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6131 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= BINCMP_FLAG; }
     break;
 
   case 788:
 
 /* Line 1455 of yacc.c  */
-#line 6145 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6146 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.table)=(yyvsp[(2) - (5)].table);
           }
@@ -24765,14 +24793,14 @@ yyreduce:
   case 789:
 
 /* Line 1455 of yacc.c  */
-#line 6152 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6153 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ref_list.empty(); }
     break;
 
   case 791:
 
 /* Line 1455 of yacc.c  */
-#line 6158 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6159 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Key_part_spec *key= new Key_part_spec((yyvsp[(3) - (3)].lex_str), 0);
             if (key == NULL)
@@ -24784,7 +24812,7 @@ yyreduce:
   case 792:
 
 /* Line 1455 of yacc.c  */
-#line 6165 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6166 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Key_part_spec *key= new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0);
             if (key == NULL)
@@ -24798,35 +24826,35 @@ yyreduce:
   case 793:
 
 /* Line 1455 of yacc.c  */
-#line 6177 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6178 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->fk_match_option= Foreign_key::FK_MATCH_UNDEF; }
     break;
 
   case 794:
 
 /* Line 1455 of yacc.c  */
-#line 6179 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6180 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; }
     break;
 
   case 795:
 
 /* Line 1455 of yacc.c  */
-#line 6181 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6182 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; }
     break;
 
   case 796:
 
 /* Line 1455 of yacc.c  */
-#line 6183 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6184 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; }
     break;
 
   case 797:
 
 /* Line 1455 of yacc.c  */
-#line 6188 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6189 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->fk_update_opt= Foreign_key::FK_OPTION_UNDEF;
@@ -24837,7 +24865,7 @@ yyreduce:
   case 798:
 
 /* Line 1455 of yacc.c  */
-#line 6194 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6195 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->fk_update_opt= (yyvsp[(3) - (3)].m_fk_option);
@@ -24848,7 +24876,7 @@ yyreduce:
   case 799:
 
 /* Line 1455 of yacc.c  */
-#line 6200 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6201 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->fk_update_opt= Foreign_key::FK_OPTION_UNDEF;
@@ -24859,7 +24887,7 @@ yyreduce:
   case 800:
 
 /* Line 1455 of yacc.c  */
-#line 6207 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6208 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->fk_update_opt= (yyvsp[(3) - (6)].m_fk_option);
@@ -24870,7 +24898,7 @@ yyreduce:
   case 801:
 
 /* Line 1455 of yacc.c  */
-#line 6214 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6215 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->fk_update_opt= (yyvsp[(6) - (6)].m_fk_option);
@@ -24881,126 +24909,126 @@ yyreduce:
   case 802:
 
 /* Line 1455 of yacc.c  */
-#line 6222 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6223 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.m_fk_option)= Foreign_key::FK_OPTION_RESTRICT; }
     break;
 
   case 803:
 
 /* Line 1455 of yacc.c  */
-#line 6223 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6224 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.m_fk_option)= Foreign_key::FK_OPTION_CASCADE; }
     break;
 
   case 804:
 
 /* Line 1455 of yacc.c  */
-#line 6224 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6225 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.m_fk_option)= Foreign_key::FK_OPTION_SET_NULL; }
     break;
 
   case 805:
 
 /* Line 1455 of yacc.c  */
-#line 6225 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6226 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.m_fk_option)= Foreign_key::FK_OPTION_NO_ACTION; }
     break;
 
   case 806:
 
 /* Line 1455 of yacc.c  */
-#line 6226 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6227 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.m_fk_option)= Foreign_key::FK_OPTION_DEFAULT;  }
     break;
 
   case 807:
 
 /* Line 1455 of yacc.c  */
-#line 6230 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6231 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.key_type)= Key::MULTIPLE; }
     break;
 
   case 808:
 
 /* Line 1455 of yacc.c  */
-#line 6234 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6235 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.key_type)= Key::PRIMARY; }
     break;
 
   case 809:
 
 /* Line 1455 of yacc.c  */
-#line 6235 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6236 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.key_type)= Key::UNIQUE; }
     break;
 
   case 810:
 
 /* Line 1455 of yacc.c  */
-#line 6239 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6240 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 811:
 
 /* Line 1455 of yacc.c  */
-#line 6240 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6241 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 812:
 
 /* Line 1455 of yacc.c  */
-#line 6244 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6245 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 814:
 
 /* Line 1455 of yacc.c  */
-#line 6249 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6250 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 815:
 
 /* Line 1455 of yacc.c  */
-#line 6250 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6251 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 816:
 
 /* Line 1455 of yacc.c  */
-#line 6251 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6252 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 817:
 
 /* Line 1455 of yacc.c  */
-#line 6255 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6256 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.key_type)= Key::MULTIPLE; }
     break;
 
   case 818:
 
 /* Line 1455 of yacc.c  */
-#line 6256 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6257 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.key_type)= Key::UNIQUE; }
     break;
 
   case 819:
 
 /* Line 1455 of yacc.c  */
-#line 6260 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6261 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.key_type)= Key::FULLTEXT;}
     break;
 
   case 820:
 
 /* Line 1455 of yacc.c  */
-#line 6265 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6266 "/home/buildbot/git/sql/sql_yacc.yy"
     {
 #ifdef HAVE_SPATIAL
             (yyval.key_type)= Key::SPATIAL;
@@ -25015,7 +25043,7 @@ yyreduce:
   case 821:
 
 /* Line 1455 of yacc.c  */
-#line 6277 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6278 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->key_create_info= default_key_create_info;
           }
@@ -25024,56 +25052,56 @@ yyreduce:
   case 824:
 
 /* Line 1455 of yacc.c  */
-#line 6294 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6295 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 826:
 
 /* Line 1455 of yacc.c  */
-#line 6299 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6300 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 828:
 
 /* Line 1455 of yacc.c  */
-#line 6304 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6305 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 836:
 
 /* Line 1455 of yacc.c  */
-#line 6324 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6325 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
     break;
 
   case 837:
 
 /* Line 1455 of yacc.c  */
-#line 6325 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6326 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->key_create_info.algorithm= (yyvsp[(2) - (2)].key_alg); }
     break;
 
   case 838:
 
 /* Line 1455 of yacc.c  */
-#line 6330 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6331 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->key_create_info.block_size= (yyvsp[(3) - (3)].ulong_num); }
     break;
 
   case 839:
 
 /* Line 1455 of yacc.c  */
-#line 6331 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6332 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->key_create_info.comment= (yyvsp[(2) - (2)].lex_str); }
     break;
 
   case 840:
 
 /* Line 1455 of yacc.c  */
-#line 6333 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6334 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             new (thd->mem_root)
               engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), true, &Lex->option_list,
@@ -25084,7 +25112,7 @@ yyreduce:
   case 841:
 
 /* Line 1455 of yacc.c  */
-#line 6339 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6340 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             new (thd->mem_root)
               engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].lex_str), false, &Lex->option_list,
@@ -25095,7 +25123,7 @@ yyreduce:
   case 842:
 
 /* Line 1455 of yacc.c  */
-#line 6345 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6346 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             new (thd->mem_root)
               engine_option_value((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].ulonglong_number), &Lex->option_list,
@@ -25106,7 +25134,7 @@ yyreduce:
   case 843:
 
 /* Line 1455 of yacc.c  */
-#line 6351 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6352 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             new (thd->mem_root)
               engine_option_value((yyvsp[(1) - (3)].lex_str), &Lex->option_list, &Lex->option_list_last);
@@ -25116,7 +25144,7 @@ yyreduce:
   case 848:
 
 /* Line 1455 of yacc.c  */
-#line 6369 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6370 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (plugin_is_ready(&(yyvsp[(3) - (3)].lex_str), MYSQL_FTPARSER_PLUGIN))
               Lex->key_create_info.parser_name= (yyvsp[(3) - (3)].lex_str);
@@ -25131,42 +25159,42 @@ yyreduce:
   case 849:
 
 /* Line 1455 of yacc.c  */
-#line 6381 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6382 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.key_alg)= HA_KEY_ALG_BTREE; }
     break;
 
   case 850:
 
 /* Line 1455 of yacc.c  */
-#line 6382 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6383 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.key_alg)= HA_KEY_ALG_RTREE; }
     break;
 
   case 851:
 
 /* Line 1455 of yacc.c  */
-#line 6383 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6384 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.key_alg)= HA_KEY_ALG_HASH; }
     break;
 
   case 852:
 
 /* Line 1455 of yacc.c  */
-#line 6387 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6388 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->col_list.push_back((yyvsp[(3) - (4)].key_part)); }
     break;
 
   case 853:
 
 /* Line 1455 of yacc.c  */
-#line 6388 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6389 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->col_list.push_back((yyvsp[(1) - (2)].key_part)); }
     break;
 
   case 854:
 
 /* Line 1455 of yacc.c  */
-#line 6393 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6394 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.key_part)= new Key_part_spec((yyvsp[(1) - (1)].lex_str), 0);
             if ((yyval.key_part) == NULL)
@@ -25177,7 +25205,7 @@ yyreduce:
   case 855:
 
 /* Line 1455 of yacc.c  */
-#line 6399 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6400 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             int key_part_len= atoi((yyvsp[(3) - (4)].lex_str).str);
             if (!key_part_len)
@@ -25193,49 +25221,49 @@ yyreduce:
   case 856:
 
 /* Line 1455 of yacc.c  */
-#line 6412 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6413 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)= null_lex_str; }
     break;
 
   case 857:
 
 /* Line 1455 of yacc.c  */
-#line 6413 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6414 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
     break;
 
   case 858:
 
 /* Line 1455 of yacc.c  */
-#line 6417 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6418 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)= null_lex_str; }
     break;
 
   case 859:
 
 /* Line 1455 of yacc.c  */
-#line 6418 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6419 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)= (yyvsp[(2) - (2)].lex_str); }
     break;
 
   case 860:
 
 /* Line 1455 of yacc.c  */
-#line 6422 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6423 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->interval_list.push_back((yyvsp[(1) - (1)].string)); }
     break;
 
   case 861:
 
 /* Line 1455 of yacc.c  */
-#line 6423 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6424 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->interval_list.push_back((yyvsp[(3) - (3)].string)); }
     break;
 
   case 862:
 
 /* Line 1455 of yacc.c  */
-#line 6431 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6432 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->name.str= 0;
@@ -25265,7 +25293,7 @@ yyreduce:
   case 863:
 
 /* Line 1455 of yacc.c  */
-#line 6456 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6457 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             if (!lex->m_stmt)
@@ -25281,7 +25309,7 @@ yyreduce:
   case 864:
 
 /* Line 1455 of yacc.c  */
-#line 6467 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6468 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_info.default_table_charset= NULL;
             Lex->create_info.used_fields= 0;
@@ -25291,7 +25319,7 @@ yyreduce:
   case 865:
 
 /* Line 1455 of yacc.c  */
-#line 6472 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6473 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command=SQLCOM_ALTER_DB;
@@ -25305,7 +25333,7 @@ yyreduce:
   case 866:
 
 /* Line 1455 of yacc.c  */
-#line 6481 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6482 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->sphead)
@@ -25321,7 +25349,7 @@ yyreduce:
   case 867:
 
 /* Line 1455 of yacc.c  */
-#line 6492 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6493 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -25337,7 +25365,7 @@ yyreduce:
   case 868:
 
 /* Line 1455 of yacc.c  */
-#line 6503 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6504 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
 
@@ -25349,7 +25377,7 @@ yyreduce:
   case 869:
 
 /* Line 1455 of yacc.c  */
-#line 6510 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6511 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -25365,7 +25393,7 @@ yyreduce:
   case 870:
 
 /* Line 1455 of yacc.c  */
-#line 6521 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6522 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
 
@@ -25377,7 +25405,7 @@ yyreduce:
   case 871:
 
 /* Line 1455 of yacc.c  */
-#line 6528 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6529 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -25393,14 +25421,14 @@ yyreduce:
   case 872:
 
 /* Line 1455 of yacc.c  */
-#line 6539 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6540 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 873:
 
 /* Line 1455 of yacc.c  */
-#line 6546 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6547 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -25417,14 +25445,14 @@ yyreduce:
   case 874:
 
 /* Line 1455 of yacc.c  */
-#line 6558 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6559 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 875:
 
 /* Line 1455 of yacc.c  */
-#line 6560 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6561 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* 
               It is safe to use Lex->spname because
@@ -25445,7 +25473,7 @@ yyreduce:
   case 876:
 
 /* Line 1455 of yacc.c  */
-#line 6580 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6581 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!((yyvsp[(6) - (10)].num) || (yyvsp[(7) - (10)].num) || (yyvsp[(8) - (10)].num) || (yyvsp[(9) - (10)].num) || (yyvsp[(10) - (10)].num)))
             {
@@ -25463,7 +25491,7 @@ yyreduce:
   case 877:
 
 /* Line 1455 of yacc.c  */
-#line 6593 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6594 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->ts_cmd_type= ALTER_TABLESPACE;
@@ -25473,7 +25501,7 @@ yyreduce:
   case 878:
 
 /* Line 1455 of yacc.c  */
-#line 6598 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6599 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->ts_cmd_type= ALTER_LOGFILE_GROUP;
@@ -25483,7 +25511,7 @@ yyreduce:
   case 879:
 
 /* Line 1455 of yacc.c  */
-#line 6603 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6604 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->ts_cmd_type= CHANGE_FILE_TABLESPACE;
@@ -25493,7 +25521,7 @@ yyreduce:
   case 880:
 
 /* Line 1455 of yacc.c  */
-#line 6608 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6609 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->ts_cmd_type= ALTER_ACCESS_MODE_TABLESPACE;
@@ -25503,7 +25531,7 @@ yyreduce:
   case 881:
 
 /* Line 1455 of yacc.c  */
-#line 6613 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6614 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_ALTER_SERVER;
@@ -25515,42 +25543,42 @@ yyreduce:
   case 882:
 
 /* Line 1455 of yacc.c  */
-#line 6622 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6623 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0;}
     break;
 
   case 883:
 
 /* Line 1455 of yacc.c  */
-#line 6623 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6624 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 1; }
     break;
 
   case 884:
 
 /* Line 1455 of yacc.c  */
-#line 6624 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6625 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 1; }
     break;
 
   case 885:
 
 /* Line 1455 of yacc.c  */
-#line 6625 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6626 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 1; }
     break;
 
   case 886:
 
 /* Line 1455 of yacc.c  */
-#line 6629 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6630 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0;}
     break;
 
   case 887:
 
 /* Line 1455 of yacc.c  */
-#line 6631 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6632 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               Use lex's spname to hold the new name.
@@ -25564,49 +25592,49 @@ yyreduce:
   case 888:
 
 /* Line 1455 of yacc.c  */
-#line 6642 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6643 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0;}
     break;
 
   case 889:
 
 /* Line 1455 of yacc.c  */
-#line 6643 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6644 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 1; }
     break;
 
   case 890:
 
 /* Line 1455 of yacc.c  */
-#line 6647 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6648 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str).str= 0; (yyval.lex_str).length= 0; }
     break;
 
   case 891:
 
 /* Line 1455 of yacc.c  */
-#line 6648 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6649 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
     break;
 
   case 893:
 
 /* Line 1455 of yacc.c  */
-#line 6653 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6654 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->alter_info.tablespace_op= DISCARD_TABLESPACE; }
     break;
 
   case 894:
 
 /* Line 1455 of yacc.c  */
-#line 6654 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6655 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->alter_info.tablespace_op= IMPORT_TABLESPACE; }
     break;
 
   case 900:
 
 /* Line 1455 of yacc.c  */
-#line 6671 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6672 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->alter_info.flags|= ALTER_DROP_PARTITION;
           }
@@ -25615,7 +25643,7 @@ yyreduce:
   case 901:
 
 /* Line 1455 of yacc.c  */
-#line 6676 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6677 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_info.flags|= ALTER_REBUILD_PARTITION;
@@ -25626,7 +25654,7 @@ yyreduce:
   case 902:
 
 /* Line 1455 of yacc.c  */
-#line 6683 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6684 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
@@ -25642,7 +25670,7 @@ yyreduce:
   case 904:
 
 /* Line 1455 of yacc.c  */
-#line 6696 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6697 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
@@ -25658,7 +25686,7 @@ yyreduce:
   case 905:
 
 /* Line 1455 of yacc.c  */
-#line 6707 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6708 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->check_opt.init();
@@ -25673,7 +25701,7 @@ yyreduce:
   case 907:
 
 /* Line 1455 of yacc.c  */
-#line 6719 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6720 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->no_write_to_binlog= (yyvsp[(3) - (4)].num);
@@ -25689,7 +25717,7 @@ yyreduce:
   case 909:
 
 /* Line 1455 of yacc.c  */
-#line 6731 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6732 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_info.flags|= ALTER_COALESCE_PARTITION;
@@ -25701,7 +25729,7 @@ yyreduce:
   case 910:
 
 /* Line 1455 of yacc.c  */
-#line 6738 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6739 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->check_opt.init();
@@ -25716,7 +25744,7 @@ yyreduce:
   case 912:
 
 /* Line 1455 of yacc.c  */
-#line 6752 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6753 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->alter_info.flags|= ALTER_REMOVE_PARTITIONING;
           }
@@ -25725,7 +25753,7 @@ yyreduce:
   case 913:
 
 /* Line 1455 of yacc.c  */
-#line 6759 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6760 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->alter_info.flags|= ALTER_ALL_PARTITION;
           }
@@ -25734,7 +25762,7 @@ yyreduce:
   case 915:
 
 /* Line 1455 of yacc.c  */
-#line 6767 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6768 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->part_info= new partition_info();
@@ -25751,14 +25779,14 @@ yyreduce:
   case 916:
 
 /* Line 1455 of yacc.c  */
-#line 6779 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6780 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 918:
 
 /* Line 1455 of yacc.c  */
-#line 6785 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6786 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->part_info->num_parts= lex->part_info->partitions.elements;
@@ -25768,7 +25796,7 @@ yyreduce:
   case 919:
 
 /* Line 1455 of yacc.c  */
-#line 6790 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6791 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->part_info->num_parts= (yyvsp[(2) - (2)].ulong_num);
           }
@@ -25777,7 +25805,7 @@ yyreduce:
   case 920:
 
 /* Line 1455 of yacc.c  */
-#line 6797 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6798 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->part_info= new partition_info();
@@ -25793,7 +25821,7 @@ yyreduce:
   case 922:
 
 /* Line 1455 of yacc.c  */
-#line 6812 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6813 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->alter_info.flags|= ALTER_TABLE_REORG;
           }
@@ -25802,7 +25830,7 @@ yyreduce:
   case 923:
 
 /* Line 1455 of yacc.c  */
-#line 6816 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6817 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->alter_info.flags|= ALTER_REORGANIZE_PARTITION;
           }
@@ -25811,7 +25839,7 @@ yyreduce:
   case 924:
 
 /* Line 1455 of yacc.c  */
-#line 6820 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6821 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             partition_info *part_info= Lex->part_info;
             part_info->num_parts= part_info->partitions.elements;
@@ -25821,21 +25849,21 @@ yyreduce:
   case 925:
 
 /* Line 1455 of yacc.c  */
-#line 6827 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6828 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 926:
 
 /* Line 1455 of yacc.c  */
-#line 6828 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6829 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 927:
 
 /* Line 1455 of yacc.c  */
-#line 6833 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6834 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->alter_info.partition_names.push_back((yyvsp[(1) - (1)].lex_str).str))
             {
@@ -25848,7 +25876,7 @@ yyreduce:
   case 930:
 
 /* Line 1455 of yacc.c  */
-#line 6853 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6854 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->change=0;
@@ -25859,7 +25887,7 @@ yyreduce:
   case 931:
 
 /* Line 1455 of yacc.c  */
-#line 6862 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6863 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_last_non_select_table= Lex->last_table();
           }
@@ -25868,7 +25896,7 @@ yyreduce:
   case 932:
 
 /* Line 1455 of yacc.c  */
-#line 6866 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6867 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_last_non_select_table= Lex->last_table();
             Lex->alter_info.flags|= ALTER_ADD_INDEX;
@@ -25878,7 +25906,7 @@ yyreduce:
   case 933:
 
 /* Line 1455 of yacc.c  */
-#line 6871 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6872 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->alter_info.flags|= ALTER_ADD_COLUMN | ALTER_ADD_INDEX;
           }
@@ -25887,7 +25915,7 @@ yyreduce:
   case 934:
 
 /* Line 1455 of yacc.c  */
-#line 6875 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6876 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->change= (yyvsp[(3) - (3)].lex_str).str;
@@ -25899,7 +25927,7 @@ yyreduce:
   case 935:
 
 /* Line 1455 of yacc.c  */
-#line 6882 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6883 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_last_non_select_table= Lex->last_table();
           }
@@ -25908,7 +25936,7 @@ yyreduce:
   case 936:
 
 /* Line 1455 of yacc.c  */
-#line 6886 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6887 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->length=lex->dec=0; lex->type=0;
@@ -25924,7 +25952,7 @@ yyreduce:
   case 937:
 
 /* Line 1455 of yacc.c  */
-#line 6897 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6898 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (add_field_to_list(lex->thd,&(yyvsp[(3) - (5)].lex_str),
@@ -25942,7 +25970,7 @@ yyreduce:
   case 938:
 
 /* Line 1455 of yacc.c  */
-#line 6910 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6911 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->create_last_non_select_table= Lex->last_table();
           }
@@ -25951,7 +25979,7 @@ yyreduce:
   case 939:
 
 /* Line 1455 of yacc.c  */
-#line 6914 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6915 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             Alter_drop *ad= new Alter_drop(Alter_drop::COLUMN, (yyvsp[(3) - (4)].lex_str).str);
@@ -25965,7 +25993,7 @@ yyreduce:
   case 940:
 
 /* Line 1455 of yacc.c  */
-#line 6923 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6924 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->alter_info.flags|= ALTER_DROP_INDEX | ALTER_FOREIGN_KEY;
           }
@@ -25974,7 +26002,7 @@ yyreduce:
   case 941:
 
 /* Line 1455 of yacc.c  */
-#line 6927 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6928 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             Alter_drop *ad= new Alter_drop(Alter_drop::KEY, primary_key_name);
@@ -25988,7 +26016,7 @@ yyreduce:
   case 942:
 
 /* Line 1455 of yacc.c  */
-#line 6936 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6937 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             Alter_drop *ad= new Alter_drop(Alter_drop::KEY, (yyvsp[(3) - (3)].lex_str).str);
@@ -26002,7 +26030,7 @@ yyreduce:
   case 943:
 
 /* Line 1455 of yacc.c  */
-#line 6945 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6946 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->alter_info.keys_onoff= DISABLE;
@@ -26013,7 +26041,7 @@ yyreduce:
   case 944:
 
 /* Line 1455 of yacc.c  */
-#line 6951 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6952 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->alter_info.keys_onoff= ENABLE;
@@ -26024,7 +26052,7 @@ yyreduce:
   case 945:
 
 /* Line 1455 of yacc.c  */
-#line 6957 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6958 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             Alter_column *ac= new Alter_column((yyvsp[(3) - (6)].lex_str).str,(yyvsp[(6) - (6)].item));
@@ -26038,7 +26066,7 @@ yyreduce:
   case 946:
 
 /* Line 1455 of yacc.c  */
-#line 6966 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6967 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             Alter_column *ac= new Alter_column((yyvsp[(3) - (5)].lex_str).str, (Item*) 0);
@@ -26052,7 +26080,7 @@ yyreduce:
   case 947:
 
 /* Line 1455 of yacc.c  */
-#line 6975 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6976 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             size_t dummy;
@@ -26076,7 +26104,7 @@ yyreduce:
   case 948:
 
 /* Line 1455 of yacc.c  */
-#line 6994 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 6995 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!(yyvsp[(4) - (5)].charset))
             {
@@ -26101,7 +26129,7 @@ yyreduce:
   case 949:
 
 /* Line 1455 of yacc.c  */
-#line 7014 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7015 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->alter_info.flags|= ALTER_OPTIONS;
@@ -26116,7 +26144,7 @@ yyreduce:
   case 950:
 
 /* Line 1455 of yacc.c  */
-#line 7024 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7025 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->alter_info.flags|= ALTER_RECREATE;
           }
@@ -26125,7 +26153,7 @@ yyreduce:
   case 951:
 
 /* Line 1455 of yacc.c  */
-#line 7028 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7029 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->alter_info.flags|= ALTER_ORDER;
@@ -26135,126 +26163,126 @@ yyreduce:
   case 952:
 
 /* Line 1455 of yacc.c  */
-#line 7035 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7036 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 953:
 
 /* Line 1455 of yacc.c  */
-#line 7036 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7037 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 954:
 
 /* Line 1455 of yacc.c  */
-#line 7040 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7041 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ignore= 0;}
     break;
 
   case 955:
 
 /* Line 1455 of yacc.c  */
-#line 7041 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7042 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ignore= 1;}
     break;
 
   case 956:
 
 /* Line 1455 of yacc.c  */
-#line 7045 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7046 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ignore= Lex->online= 0;}
     break;
 
   case 962:
 
 /* Line 1455 of yacc.c  */
-#line 7059 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7060 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ignore= 1;}
     break;
 
   case 963:
 
 /* Line 1455 of yacc.c  */
-#line 7060 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7061 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->online= 1;}
     break;
 
   case 964:
 
 /* Line 1455 of yacc.c  */
-#line 7064 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7065 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->drop_mode= DROP_DEFAULT; }
     break;
 
   case 965:
 
 /* Line 1455 of yacc.c  */
-#line 7065 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7066 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->drop_mode= DROP_RESTRICT; }
     break;
 
   case 966:
 
 /* Line 1455 of yacc.c  */
-#line 7066 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7067 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->drop_mode= DROP_CASCADE; }
     break;
 
   case 967:
 
 /* Line 1455 of yacc.c  */
-#line 7070 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7071 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 968:
 
 /* Line 1455 of yacc.c  */
-#line 7071 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7072 "/home/buildbot/git/sql/sql_yacc.yy"
     { store_position_for_column((yyvsp[(2) - (2)].lex_str).str); }
     break;
 
   case 969:
 
 /* Line 1455 of yacc.c  */
-#line 7072 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7073 "/home/buildbot/git/sql/sql_yacc.yy"
     { store_position_for_column(first_keyword); }
     break;
 
   case 970:
 
 /* Line 1455 of yacc.c  */
-#line 7076 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7077 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 971:
 
 /* Line 1455 of yacc.c  */
-#line 7077 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7078 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 972:
 
 /* Line 1455 of yacc.c  */
-#line 7078 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7079 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 973:
 
 /* Line 1455 of yacc.c  */
-#line 7079 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7080 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 974:
 
 /* Line 1455 of yacc.c  */
-#line 7088 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7089 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_SLAVE_START;
@@ -26266,14 +26294,14 @@ yyreduce:
   case 975:
 
 /* Line 1455 of yacc.c  */
-#line 7095 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7096 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 976:
 
 /* Line 1455 of yacc.c  */
-#line 7097 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7098 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_SLAVE_STOP;
@@ -26285,7 +26313,7 @@ yyreduce:
   case 977:
 
 /* Line 1455 of yacc.c  */
-#line 7104 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7105 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_SLAVE_START;
@@ -26296,14 +26324,14 @@ yyreduce:
   case 978:
 
 /* Line 1455 of yacc.c  */
-#line 7110 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7111 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 979:
 
 /* Line 1455 of yacc.c  */
-#line 7112 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7113 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_SLAVE_STOP;
@@ -26314,7 +26342,7 @@ yyreduce:
   case 980:
 
 /* Line 1455 of yacc.c  */
-#line 7121 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7122 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_BEGIN;
@@ -26325,14 +26353,14 @@ yyreduce:
   case 981:
 
 /* Line 1455 of yacc.c  */
-#line 7129 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7130 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num) = 0; }
     break;
 
   case 982:
 
 /* Line 1455 of yacc.c  */
-#line 7131 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7132 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.num)= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT;
           }
@@ -26341,49 +26369,49 @@ yyreduce:
   case 983:
 
 /* Line 1455 of yacc.c  */
-#line 7137 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7138 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->slave_thd_opt= 0; }
     break;
 
   case 984:
 
 /* Line 1455 of yacc.c  */
-#line 7139 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7140 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 987:
 
 /* Line 1455 of yacc.c  */
-#line 7148 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7149 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 988:
 
 /* Line 1455 of yacc.c  */
-#line 7149 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7150 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->slave_thd_opt|=SLAVE_SQL; }
     break;
 
   case 989:
 
 /* Line 1455 of yacc.c  */
-#line 7150 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7151 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->slave_thd_opt|=SLAVE_IO; }
     break;
 
   case 990:
 
 /* Line 1455 of yacc.c  */
-#line 7154 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7155 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 991:
 
 /* Line 1455 of yacc.c  */
-#line 7156 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7157 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (((lex->mi.log_file_name || lex->mi.pos) &&
@@ -26401,7 +26429,7 @@ yyreduce:
   case 994:
 
 /* Line 1455 of yacc.c  */
-#line 7177 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7178 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_CHECKSUM;
@@ -26413,35 +26441,35 @@ yyreduce:
   case 995:
 
 /* Line 1455 of yacc.c  */
-#line 7184 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7185 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 996:
 
 /* Line 1455 of yacc.c  */
-#line 7188 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7189 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.flags= 0; }
     break;
 
   case 997:
 
 /* Line 1455 of yacc.c  */
-#line 7189 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7190 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.flags= T_QUICK; }
     break;
 
   case 998:
 
 /* Line 1455 of yacc.c  */
-#line 7190 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7191 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.flags= T_EXTEND; }
     break;
 
   case 999:
 
 /* Line 1455 of yacc.c  */
-#line 7195 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7196 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_REPAIR;
@@ -26456,9 +26484,18 @@ yyreduce:
   case 1000:
 
 /* Line 1455 of yacc.c  */
-#line 7205 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7206 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX* lex= thd->lex;
+            if ((lex->only_view &&
+                 ((lex->check_opt.flags & (T_QUICK | T_EXTEND)) ||
+                   (lex->check_opt.sql_flags & TT_USEFRM))) ||
+                (!lex->only_view &&
+                 (lex->check_opt.sql_flags & TT_FROM_MYSQL)))
+            {
+              my_parse_error(ER(ER_SYNTAX_ERROR));
+              MYSQL_YYABORT;
+            }
             DBUG_ASSERT(!lex->m_stmt);
             lex->m_stmt= new (thd->mem_root) Repair_table_statement(lex);
             if (lex->m_stmt == NULL)
@@ -26469,56 +26506,63 @@ yyreduce:
   case 1001:
 
 /* Line 1455 of yacc.c  */
-#line 7215 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7225 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.flags = T_MEDIUM; }
     break;
 
   case 1002:
 
 /* Line 1455 of yacc.c  */
-#line 7216 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7226 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1003:
 
 /* Line 1455 of yacc.c  */
-#line 7220 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7230 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1004:
 
 /* Line 1455 of yacc.c  */
-#line 7221 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7231 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1005:
 
 /* Line 1455 of yacc.c  */
-#line 7225 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7235 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.flags|= T_QUICK; }
     break;
 
   case 1006:
 
 /* Line 1455 of yacc.c  */
-#line 7226 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7236 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.flags|= T_EXTEND; }
     break;
 
   case 1007:
 
 /* Line 1455 of yacc.c  */
-#line 7227 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7237 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.sql_flags|= TT_USEFRM; }
     break;
 
   case 1008:
 
 /* Line 1455 of yacc.c  */
-#line 7232 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7238 "/home/buildbot/git/sql/sql_yacc.yy"
+    { Lex->check_opt.sql_flags|= TT_FROM_MYSQL; }
+    break;
+
+  case 1009:
+
+/* Line 1455 of yacc.c  */
+#line 7243 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_ANALYZE;
@@ -26530,10 +26574,10 @@ yyreduce:
           }
     break;
 
-  case 1009:
+  case 1010:
 
 /* Line 1455 of yacc.c  */
-#line 7242 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7253 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX* lex= thd->lex;
             DBUG_ASSERT(!lex->m_stmt);
@@ -26543,20 +26587,20 @@ yyreduce:
           }
     break;
 
-  case 1010:
+  case 1011:
 
 /* Line 1455 of yacc.c  */
-#line 7253 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7264 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT;
             Lex->comment= (yyvsp[(2) - (2)].lex_str);
           }
     break;
 
-  case 1011:
+  case 1012:
 
 /* Line 1455 of yacc.c  */
-#line 7261 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7272 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
 
@@ -26573,12 +26617,19 @@ yyreduce:
           }
     break;
 
-  case 1012:
+  case 1013:
 
 /* Line 1455 of yacc.c  */
-#line 7276 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7287 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX* lex= thd->lex;
+            if (lex->only_view &&
+                (lex->check_opt.flags & (T_QUICK | T_FAST | T_EXTEND |
+                                         T_CHECK_ONLY_CHANGED)))
+            {
+              my_parse_error(ER(ER_SYNTAX_ERROR));
+              MYSQL_YYABORT;
+            }
             DBUG_ASSERT(!lex->m_stmt);
             lex->m_stmt= new (thd->mem_root) Check_table_statement(lex);
             if (lex->m_stmt == NULL)
@@ -26586,80 +26637,80 @@ yyreduce:
           }
     break;
 
-  case 1013:
+  case 1014:
 
 /* Line 1455 of yacc.c  */
-#line 7286 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7304 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.flags = T_MEDIUM; }
     break;
 
-  case 1014:
+  case 1015:
 
 /* Line 1455 of yacc.c  */
-#line 7287 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7305 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1015:
+  case 1016:
 
 /* Line 1455 of yacc.c  */
-#line 7291 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7309 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1016:
+  case 1017:
 
 /* Line 1455 of yacc.c  */
-#line 7292 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7310 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1017:
+  case 1018:
 
 /* Line 1455 of yacc.c  */
-#line 7296 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7314 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.flags|= T_QUICK; }
     break;
 
-  case 1018:
+  case 1019:
 
 /* Line 1455 of yacc.c  */
-#line 7297 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7315 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.flags|= T_FAST; }
     break;
 
-  case 1019:
+  case 1020:
 
 /* Line 1455 of yacc.c  */
-#line 7298 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7316 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.flags|= T_MEDIUM; }
     break;
 
-  case 1020:
+  case 1021:
 
 /* Line 1455 of yacc.c  */
-#line 7299 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7317 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.flags|= T_EXTEND; }
     break;
 
-  case 1021:
+  case 1022:
 
 /* Line 1455 of yacc.c  */
-#line 7300 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7318 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; }
     break;
 
-  case 1022:
+  case 1023:
 
 /* Line 1455 of yacc.c  */
-#line 7301 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7319 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; }
     break;
 
-  case 1023:
+  case 1024:
 
 /* Line 1455 of yacc.c  */
-#line 7306 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7324 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_OPTIMIZE;
@@ -26671,10 +26722,10 @@ yyreduce:
           }
     break;
 
-  case 1024:
+  case 1025:
 
 /* Line 1455 of yacc.c  */
-#line 7316 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7334 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX* lex= thd->lex;
             DBUG_ASSERT(!lex->m_stmt);
@@ -26684,76 +26735,76 @@ yyreduce:
           }
     break;
 
-  case 1025:
+  case 1026:
 
 /* Line 1455 of yacc.c  */
-#line 7326 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7344 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0; }
     break;
 
-  case 1026:
+  case 1027:
 
 /* Line 1455 of yacc.c  */
-#line 7327 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7345 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 1; }
     break;
 
-  case 1027:
+  case 1028:
 
 /* Line 1455 of yacc.c  */
-#line 7328 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7346 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 1; }
     break;
 
-  case 1028:
+  case 1029:
 
 /* Line 1455 of yacc.c  */
-#line 7333 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7351 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command= SQLCOM_RENAME_TABLE;
           }
     break;
 
-  case 1029:
+  case 1030:
 
 /* Line 1455 of yacc.c  */
-#line 7337 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7355 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1030:
+  case 1031:
 
 /* Line 1455 of yacc.c  */
-#line 7339 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7357 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_RENAME_USER;
           }
     break;
 
-  case 1031:
+  case 1032:
 
 /* Line 1455 of yacc.c  */
-#line 7346 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7364 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->users_list.push_back((yyvsp[(1) - (3)].lex_user)) || Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
               MYSQL_YYABORT;
           }
     break;
 
-  case 1032:
+  case 1033:
 
 /* Line 1455 of yacc.c  */
-#line 7351 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7369 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->users_list.push_back((yyvsp[(3) - (5)].lex_user)) || Lex->users_list.push_back((yyvsp[(5) - (5)].lex_user)))
               MYSQL_YYABORT;
           }
     break;
 
-  case 1035:
+  case 1036:
 
 /* Line 1455 of yacc.c  */
-#line 7364 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7382 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             SELECT_LEX *sl= lex->current_select;
@@ -26765,30 +26816,31 @@ yyreduce:
           }
     break;
 
-  case 1036:
+  case 1037:
 
 /* Line 1455 of yacc.c  */
-#line 7377 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7395 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->alter_info.reset();
           }
     break;
 
-  case 1037:
+  case 1038:
 
 /* Line 1455 of yacc.c  */
-#line 7381 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7399 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE;
             lex->ident= (yyvsp[(6) - (6)].lex_str);
+            lex->only_view= FALSE;
           }
     break;
 
-  case 1042:
+  case 1043:
 
 /* Line 1455 of yacc.c  */
-#line 7400 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7419 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!Select->add_table_to_list(thd, (yyvsp[(1) - (2)].table), NULL, 0, TL_READ,
                                            MDL_SHARED_READ,
@@ -26797,10 +26849,10 @@ yyreduce:
           }
     break;
 
-  case 1043:
+  case 1044:
 
 /* Line 1455 of yacc.c  */
-#line 7410 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7429 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!Select->add_table_to_list(thd, (yyvsp[(1) - (3)].table), NULL, 0, TL_READ, 
                                            MDL_SHARED_READ,
@@ -26809,42 +26861,43 @@ yyreduce:
           }
     break;
 
-  case 1044:
+  case 1045:
 
 /* Line 1455 of yacc.c  */
-#line 7419 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7438 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
     break;
 
-  case 1045:
+  case 1046:
 
 /* Line 1455 of yacc.c  */
-#line 7420 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7439 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str) = default_key_cache_base; }
     break;
 
-  case 1046:
+  case 1047:
 
 /* Line 1455 of yacc.c  */
-#line 7425 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7444 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command=SQLCOM_PRELOAD_KEYS;
             lex->alter_info.reset();
+            lex->only_view= FALSE;
           }
     break;
 
-  case 1047:
+  case 1048:
 
 /* Line 1455 of yacc.c  */
-#line 7431 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7451 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1052:
+  case 1053:
 
 /* Line 1455 of yacc.c  */
-#line 7446 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7466 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!Select->add_table_to_list(thd, (yyvsp[(1) - (3)].table), NULL, (yyvsp[(3) - (3)].num), TL_READ,
                                            MDL_SHARED_READ,
@@ -26853,10 +26906,10 @@ yyreduce:
           }
     break;
 
-  case 1053:
+  case 1054:
 
 /* Line 1455 of yacc.c  */
-#line 7456 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7476 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!Select->add_table_to_list(thd, (yyvsp[(1) - (4)].table), NULL, (yyvsp[(4) - (4)].num), TL_READ,
                                            MDL_SHARED_READ,
@@ -26865,19 +26918,19 @@ yyreduce:
           }
     break;
 
-  case 1054:
+  case 1055:
 
 /* Line 1455 of yacc.c  */
-#line 7466 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7486 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->alter_info.flags|= ALTER_ADMIN_PARTITION;
           }
     break;
 
-  case 1056:
+  case 1057:
 
 /* Line 1455 of yacc.c  */
-#line 7473 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7493 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->select_lex.alloc_index_hints(thd);
             Select->set_index_hint_type(INDEX_HINT_USE, 
@@ -26885,61 +26938,61 @@ yyreduce:
           }
     break;
 
-  case 1058:
+  case 1059:
 
 /* Line 1455 of yacc.c  */
-#line 7482 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7502 "/home/buildbot/git/sql/sql_yacc.yy"
     { }
     break;
 
-  case 1060:
+  case 1061:
 
 /* Line 1455 of yacc.c  */
-#line 7488 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7508 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0; }
     break;
 
-  case 1061:
+  case 1062:
 
 /* Line 1455 of yacc.c  */
-#line 7489 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7509 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= TL_OPTION_IGNORE_LEAVES; }
     break;
 
-  case 1062:
+  case 1063:
 
 /* Line 1455 of yacc.c  */
-#line 7499 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7519 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SELECT;
           }
     break;
 
-  case 1065:
+  case 1066:
 
 /* Line 1455 of yacc.c  */
-#line 7513 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7533 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (setup_select_in_parentheses(Lex))
               MYSQL_YYABORT;
           }
     break;
 
-  case 1067:
+  case 1068:
 
 /* Line 1455 of yacc.c  */
-#line 7523 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7543 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (setup_select_in_parentheses(Lex))
               MYSQL_YYABORT;
           }
     break;
 
-  case 1069:
+  case 1070:
 
 /* Line 1455 of yacc.c  */
-#line 7532 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7552 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             SELECT_LEX * sel= lex->current_select;
@@ -26957,10 +27010,10 @@ yyreduce:
           }
     break;
 
-  case 1071:
+  case 1072:
 
 /* Line 1455 of yacc.c  */
-#line 7551 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7571 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             SELECT_LEX *sel= lex->current_select;
@@ -26970,26 +27023,26 @@ yyreduce:
           }
     break;
 
-  case 1072:
+  case 1073:
 
 /* Line 1455 of yacc.c  */
-#line 7559 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7579 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->parsing_place= NO_MATTER;
           }
     break;
 
-  case 1074:
+  case 1075:
 
 /* Line 1455 of yacc.c  */
-#line 7566 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7586 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1079:
+  case 1080:
 
 /* Line 1455 of yacc.c  */
-#line 7576 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7596 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->context.table_list=
               Select->context.first_name_resolution_table=
@@ -26997,10 +27050,10 @@ yyreduce:
           }
     break;
 
-  case 1082:
+  case 1083:
 
 /* Line 1455 of yacc.c  */
-#line 7591 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7611 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Select->options & SELECT_DISTINCT && Select->options & SELECT_ALL)
             {
@@ -27010,10 +27063,10 @@ yyreduce:
           }
     break;
 
-  case 1086:
+  case 1087:
 
 /* Line 1455 of yacc.c  */
-#line 7608 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7628 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* 
               Allow this flag only on the first top-level SELECT statement, if
@@ -27043,10 +27096,10 @@ yyreduce:
           }
     break;
 
-  case 1087:
+  case 1088:
 
 /* Line 1455 of yacc.c  */
-#line 7636 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7656 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* 
               Allow this flag only on the first top-level SELECT statement, if
@@ -27076,10 +27129,10 @@ yyreduce:
           }
     break;
 
-  case 1089:
+  case 1090:
 
 /* Line 1455 of yacc.c  */
-#line 7668 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7688 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->current_select->set_lock_for_tables(TL_WRITE);
@@ -27087,10 +27140,10 @@ yyreduce:
           }
     break;
 
-  case 1090:
+  case 1091:
 
 /* Line 1455 of yacc.c  */
-#line 7674 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7694 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->current_select->
@@ -27099,10 +27152,10 @@ yyreduce:
           }
     break;
 
-  case 1093:
+  case 1094:
 
 /* Line 1455 of yacc.c  */
-#line 7686 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7706 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *item= new (thd->mem_root)
                           Item_field(&thd->lex->current_select->context,
@@ -27115,20 +27168,20 @@ yyreduce:
           }
     break;
 
-  case 1094:
+  case 1095:
 
 /* Line 1455 of yacc.c  */
-#line 7700 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7720 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_item_to_list(thd, (yyvsp[(2) - (3)].item)))
               MYSQL_YYABORT;
           }
     break;
 
-  case 1095:
+  case 1096:
 
 /* Line 1455 of yacc.c  */
-#line 7705 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7725 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             DBUG_ASSERT((yyvsp[(1) - (4)].simple_string) < (yyvsp[(3) - (4)].simple_string));
 
@@ -27152,98 +27205,98 @@ yyreduce:
           }
     break;
 
-  case 1096:
+  case 1097:
 
 /* Line 1455 of yacc.c  */
-#line 7729 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7749 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_start();
           }
     break;
 
-  case 1097:
+  case 1098:
 
 /* Line 1455 of yacc.c  */
-#line 7735 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7755 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.simple_string)= (char*) YYLIP->get_cpp_tok_end();
           }
     break;
 
-  case 1098:
-
-/* Line 1455 of yacc.c  */
-#line 7741 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { (yyval.lex_str)=null_lex_str;}
-    break;
-
   case 1099:
 
 /* Line 1455 of yacc.c  */
-#line 7742 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
+#line 7761 "/home/buildbot/git/sql/sql_yacc.yy"
+    { (yyval.lex_str)=null_lex_str;}
     break;
 
   case 1100:
 
 /* Line 1455 of yacc.c  */
-#line 7743 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7762 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
     break;
 
   case 1101:
 
 /* Line 1455 of yacc.c  */
-#line 7744 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
+#line 7763 "/home/buildbot/git/sql/sql_yacc.yy"
+    { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str); }
     break;
 
   case 1102:
 
 /* Line 1455 of yacc.c  */
-#line 7745 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7764 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
     break;
 
   case 1103:
 
 /* Line 1455 of yacc.c  */
-#line 7749 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { (yyval.num)= 0;  }
+#line 7765 "/home/buildbot/git/sql/sql_yacc.yy"
+    { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
     break;
 
   case 1104:
 
 /* Line 1455 of yacc.c  */
-#line 7750 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7769 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0;  }
     break;
 
   case 1105:
 
 /* Line 1455 of yacc.c  */
-#line 7751 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { (yyval.num)= (yyvsp[(2) - (3)].ulong_num); }
+#line 7770 "/home/buildbot/git/sql/sql_yacc.yy"
+    { (yyval.num)= 0;  }
     break;
 
   case 1106:
 
 /* Line 1455 of yacc.c  */
-#line 7755 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    {}
+#line 7771 "/home/buildbot/git/sql/sql_yacc.yy"
+    { (yyval.num)= (yyvsp[(2) - (3)].ulong_num); }
     break;
 
   case 1107:
 
 /* Line 1455 of yacc.c  */
-#line 7756 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7775 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1108:
 
 /* Line 1455 of yacc.c  */
-#line 7762 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7776 "/home/buildbot/git/sql/sql_yacc.yy"
+    {}
+    break;
+
+  case 1109:
+
+/* Line 1455 of yacc.c  */
+#line 7782 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               Design notes:
@@ -27296,10 +27349,10 @@ yyreduce:
           }
     break;
 
-  case 1109:
+  case 1110:
 
 /* Line 1455 of yacc.c  */
-#line 7813 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7833 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* XOR is a proprietary extension */
             (yyval.item) = new (thd->mem_root) Item_func_xor((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
@@ -27308,10 +27361,10 @@ yyreduce:
           }
     break;
 
-  case 1110:
+  case 1111:
 
 /* Line 1455 of yacc.c  */
-#line 7820 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7840 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* See comments in rule expr: expr or expr */
             Item_cond_and *item1;
@@ -27356,10 +27409,10 @@ yyreduce:
           }
     break;
 
-  case 1111:
+  case 1112:
 
 /* Line 1455 of yacc.c  */
-#line 7863 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7883 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= negate_expression(thd, (yyvsp[(2) - (2)].item));
             if ((yyval.item) == NULL)
@@ -27367,10 +27420,10 @@ yyreduce:
           }
     break;
 
-  case 1112:
+  case 1113:
 
 /* Line 1455 of yacc.c  */
-#line 7869 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7889 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_istrue((yyvsp[(1) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27378,10 +27431,10 @@ yyreduce:
           }
     break;
 
-  case 1113:
+  case 1114:
 
 /* Line 1455 of yacc.c  */
-#line 7875 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7895 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_isnottrue((yyvsp[(1) - (4)].item));
             if ((yyval.item) == NULL)
@@ -27389,10 +27442,10 @@ yyreduce:
           }
     break;
 
-  case 1114:
+  case 1115:
 
 /* Line 1455 of yacc.c  */
-#line 7881 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7901 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_isfalse((yyvsp[(1) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27400,10 +27453,10 @@ yyreduce:
           }
     break;
 
-  case 1115:
+  case 1116:
 
 /* Line 1455 of yacc.c  */
-#line 7887 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7907 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_isnotfalse((yyvsp[(1) - (4)].item));
             if ((yyval.item) == NULL)
@@ -27411,10 +27464,10 @@ yyreduce:
           }
     break;
 
-  case 1116:
+  case 1117:
 
 /* Line 1455 of yacc.c  */
-#line 7893 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7913 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_isnull((yyvsp[(1) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27422,10 +27475,10 @@ yyreduce:
           }
     break;
 
-  case 1117:
+  case 1118:
 
 /* Line 1455 of yacc.c  */
-#line 7899 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7919 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_isnotnull((yyvsp[(1) - (4)].item));
             if ((yyval.item) == NULL)
@@ -27433,10 +27486,10 @@ yyreduce:
           }
     break;
 
-  case 1119:
+  case 1120:
 
 /* Line 1455 of yacc.c  */
-#line 7909 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7929 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_isnull((yyvsp[(1) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27444,10 +27497,10 @@ yyreduce:
           }
     break;
 
-  case 1120:
+  case 1121:
 
 /* Line 1455 of yacc.c  */
-#line 7915 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7935 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_isnotnull((yyvsp[(1) - (4)].item));
             if ((yyval.item) == NULL)
@@ -27455,10 +27508,10 @@ yyreduce:
           }
     break;
 
-  case 1121:
+  case 1122:
 
 /* Line 1455 of yacc.c  */
-#line 7921 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7941 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_equal((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27466,10 +27519,10 @@ yyreduce:
           }
     break;
 
-  case 1122:
+  case 1123:
 
 /* Line 1455 of yacc.c  */
-#line 7927 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7947 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= (*(yyvsp[(2) - (3)].boolfunc2creator))(0)->create((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27477,10 +27530,10 @@ yyreduce:
           }
     break;
 
-  case 1123:
+  case 1124:
 
 /* Line 1455 of yacc.c  */
-#line 7933 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7953 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= all_any_subquery_creator((yyvsp[(1) - (6)].item), (yyvsp[(2) - (6)].boolfunc2creator), (yyvsp[(3) - (6)].num), (yyvsp[(5) - (6)].select_lex));
             if ((yyval.item) == NULL)
@@ -27488,10 +27541,10 @@ yyreduce:
           }
     break;
 
-  case 1125:
+  case 1126:
 
 /* Line 1455 of yacc.c  */
-#line 7943 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7963 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_in_subselect((yyvsp[(1) - (5)].item), (yyvsp[(4) - (5)].select_lex));
             if ((yyval.item) == NULL)
@@ -27499,10 +27552,10 @@ yyreduce:
           }
     break;
 
-  case 1126:
+  case 1127:
 
 /* Line 1455 of yacc.c  */
-#line 7949 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7969 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *item= new (thd->mem_root) Item_in_subselect((yyvsp[(1) - (6)].item), (yyvsp[(5) - (6)].select_lex));
             if (item == NULL)
@@ -27513,10 +27566,10 @@ yyreduce:
           }
     break;
 
-  case 1127:
+  case 1128:
 
 /* Line 1455 of yacc.c  */
-#line 7958 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7978 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= handle_sql2003_note184_exception(thd, (yyvsp[(1) - (5)].item), true, (yyvsp[(4) - (5)].item));
             if ((yyval.item) == NULL)
@@ -27524,10 +27577,10 @@ yyreduce:
           }
     break;
 
-  case 1128:
+  case 1129:
 
 /* Line 1455 of yacc.c  */
-#line 7964 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7984 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(4) - (7)].item));
             (yyvsp[(6) - (7)].item_list)->push_front((yyvsp[(1) - (7)].item));
@@ -27537,10 +27590,10 @@ yyreduce:
           }
     break;
 
-  case 1129:
+  case 1130:
 
 /* Line 1455 of yacc.c  */
-#line 7972 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7992 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= handle_sql2003_note184_exception(thd, (yyvsp[(1) - (6)].item), false, (yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -27548,10 +27601,10 @@ yyreduce:
           }
     break;
 
-  case 1130:
+  case 1131:
 
 /* Line 1455 of yacc.c  */
-#line 7978 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 7998 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
             (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(1) - (8)].item));
@@ -27563,10 +27616,10 @@ yyreduce:
           }
     break;
 
-  case 1131:
+  case 1132:
 
 /* Line 1455 of yacc.c  */
-#line 7988 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8008 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_between((yyvsp[(1) - (5)].item),(yyvsp[(3) - (5)].item),(yyvsp[(5) - (5)].item));
             if ((yyval.item) == NULL)
@@ -27574,10 +27627,10 @@ yyreduce:
           }
     break;
 
-  case 1132:
+  case 1133:
 
 /* Line 1455 of yacc.c  */
-#line 7994 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8014 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item_func_between *item;
             item= new (thd->mem_root) Item_func_between((yyvsp[(1) - (6)].item),(yyvsp[(4) - (6)].item),(yyvsp[(6) - (6)].item));
@@ -27588,10 +27641,10 @@ yyreduce:
           }
     break;
 
-  case 1133:
+  case 1134:
 
 /* Line 1455 of yacc.c  */
-#line 8003 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8023 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *item1= new (thd->mem_root) Item_func_soundex((yyvsp[(1) - (4)].item));
             Item *item4= new (thd->mem_root) Item_func_soundex((yyvsp[(4) - (4)].item));
@@ -27603,10 +27656,10 @@ yyreduce:
           }
     break;
 
-  case 1134:
+  case 1135:
 
 /* Line 1455 of yacc.c  */
-#line 8013 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8033 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_like((yyvsp[(1) - (4)].item),(yyvsp[(3) - (4)].item),(yyvsp[(4) - (4)].item),Lex->escape_used);
             if ((yyval.item) == NULL)
@@ -27614,10 +27667,10 @@ yyreduce:
           }
     break;
 
-  case 1135:
+  case 1136:
 
 /* Line 1455 of yacc.c  */
-#line 8019 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8039 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *item= new (thd->mem_root) Item_func_like((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].item),
                                                              Lex->escape_used);
@@ -27629,10 +27682,10 @@ yyreduce:
           }
     break;
 
-  case 1136:
+  case 1137:
 
 /* Line 1455 of yacc.c  */
-#line 8029 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8049 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_regex((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27640,10 +27693,10 @@ yyreduce:
           }
     break;
 
-  case 1137:
+  case 1138:
 
 /* Line 1455 of yacc.c  */
-#line 8035 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8055 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *item= new (thd->mem_root) Item_func_regex((yyvsp[(1) - (4)].item),(yyvsp[(4) - (4)].item));
             if (item == NULL)
@@ -27654,10 +27707,10 @@ yyreduce:
           }
     break;
 
-  case 1139:
+  case 1140:
 
 /* Line 1455 of yacc.c  */
-#line 8048 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8068 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_bit_or((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27665,10 +27718,10 @@ yyreduce:
           }
     break;
 
-  case 1140:
+  case 1141:
 
 /* Line 1455 of yacc.c  */
-#line 8054 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8074 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_bit_and((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27676,10 +27729,10 @@ yyreduce:
           }
     break;
 
-  case 1141:
+  case 1142:
 
 /* Line 1455 of yacc.c  */
-#line 8060 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8080 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_shift_left((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27687,10 +27740,10 @@ yyreduce:
           }
     break;
 
-  case 1142:
+  case 1143:
 
 /* Line 1455 of yacc.c  */
-#line 8066 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8086 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_shift_right((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27698,10 +27751,10 @@ yyreduce:
           }
     break;
 
-  case 1143:
+  case 1144:
 
 /* Line 1455 of yacc.c  */
-#line 8072 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8092 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_plus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27709,10 +27762,10 @@ yyreduce:
           }
     break;
 
-  case 1144:
+  case 1145:
 
 /* Line 1455 of yacc.c  */
-#line 8078 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8098 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_minus((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27720,10 +27773,10 @@ yyreduce:
           }
     break;
 
-  case 1145:
+  case 1146:
 
 /* Line 1455 of yacc.c  */
-#line 8084 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8104 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),0);
             if ((yyval.item) == NULL)
@@ -27731,10 +27784,10 @@ yyreduce:
           }
     break;
 
-  case 1146:
+  case 1147:
 
 /* Line 1455 of yacc.c  */
-#line 8090 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8110 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(1) - (5)].item),(yyvsp[(4) - (5)].item),(yyvsp[(5) - (5)].interval),1);
             if ((yyval.item) == NULL)
@@ -27742,10 +27795,10 @@ yyreduce:
           }
     break;
 
-  case 1147:
+  case 1148:
 
 /* Line 1455 of yacc.c  */
-#line 8096 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8116 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_mul((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27753,10 +27806,10 @@ yyreduce:
           }
     break;
 
-  case 1148:
+  case 1149:
 
 /* Line 1455 of yacc.c  */
-#line 8102 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8122 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27764,10 +27817,10 @@ yyreduce:
           }
     break;
 
-  case 1149:
+  case 1150:
 
 /* Line 1455 of yacc.c  */
-#line 8108 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8128 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27775,10 +27828,10 @@ yyreduce:
           }
     break;
 
-  case 1150:
+  case 1151:
 
 /* Line 1455 of yacc.c  */
-#line 8114 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8134 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_int_div((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27786,10 +27839,10 @@ yyreduce:
           }
     break;
 
-  case 1151:
+  case 1152:
 
 /* Line 1455 of yacc.c  */
-#line 8120 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8140 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_mod((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27797,10 +27850,10 @@ yyreduce:
           }
     break;
 
-  case 1152:
+  case 1153:
 
 /* Line 1455 of yacc.c  */
-#line 8126 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8146 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_bit_xor((yyvsp[(1) - (3)].item),(yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -27808,66 +27861,66 @@ yyreduce:
           }
     break;
 
-  case 1162:
+  case 1163:
 
 /* Line 1455 of yacc.c  */
-#line 8155 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8175 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.boolfunc2creator) = &comp_eq_creator; }
     break;
 
-  case 1163:
+  case 1164:
 
 /* Line 1455 of yacc.c  */
-#line 8156 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8176 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.boolfunc2creator) = &comp_ge_creator; }
     break;
 
-  case 1164:
+  case 1165:
 
 /* Line 1455 of yacc.c  */
-#line 8157 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8177 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.boolfunc2creator) = &comp_gt_creator; }
     break;
 
-  case 1165:
+  case 1166:
 
 /* Line 1455 of yacc.c  */
-#line 8158 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8178 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.boolfunc2creator) = &comp_le_creator; }
     break;
 
-  case 1166:
+  case 1167:
 
 /* Line 1455 of yacc.c  */
-#line 8159 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8179 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.boolfunc2creator) = &comp_lt_creator; }
     break;
 
-  case 1167:
+  case 1168:
 
 /* Line 1455 of yacc.c  */
-#line 8160 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8180 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.boolfunc2creator) = &comp_ne_creator; }
     break;
 
-  case 1168:
+  case 1169:
 
 /* Line 1455 of yacc.c  */
-#line 8164 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8184 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num) = 1; }
     break;
 
-  case 1169:
+  case 1170:
 
 /* Line 1455 of yacc.c  */
-#line 8165 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8185 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num) = 0; }
     break;
 
-  case 1170:
+  case 1171:
 
 /* Line 1455 of yacc.c  */
-#line 8170 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8190 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 	    (yyval.num)= DYN_COL_NULL; /* automatic type */
@@ -27876,17 +27929,17 @@ yyreduce:
 	  }
     break;
 
-  case 1171:
+  case 1172:
 
 /* Line 1455 of yacc.c  */
-#line 8176 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8196 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= (yyvsp[(2) - (2)].num); }
     break;
 
-  case 1172:
+  case 1173:
 
 /* Line 1455 of yacc.c  */
-#line 8181 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8201 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             (yyval.num)= DYN_COL_INT;
@@ -27895,10 +27948,10 @@ yyreduce:
           }
     break;
 
-  case 1173:
+  case 1174:
 
 /* Line 1455 of yacc.c  */
-#line 8188 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8208 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             (yyval.num)= DYN_COL_UINT;
@@ -27907,10 +27960,10 @@ yyreduce:
           }
     break;
 
-  case 1174:
+  case 1175:
 
 /* Line 1455 of yacc.c  */
-#line 8195 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8215 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             (yyval.num)= DYN_COL_DOUBLE;
@@ -27919,10 +27972,10 @@ yyreduce:
           }
     break;
 
-  case 1175:
+  case 1176:
 
 /* Line 1455 of yacc.c  */
-#line 8202 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8222 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             (yyval.num)= DYN_COL_DOUBLE;
@@ -27931,10 +27984,10 @@ yyreduce:
           }
     break;
 
-  case 1176:
+  case 1177:
 
 /* Line 1455 of yacc.c  */
-#line 8209 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8229 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             (yyval.num)= DYN_COL_DOUBLE;
@@ -27943,20 +27996,20 @@ yyreduce:
           }
     break;
 
-  case 1177:
+  case 1178:
 
 /* Line 1455 of yacc.c  */
-#line 8216 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8236 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.num)= DYN_COL_DECIMAL;
             Lex->charset= NULL;
           }
     break;
 
-  case 1178:
+  case 1179:
 
 /* Line 1455 of yacc.c  */
-#line 8221 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8241 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             (yyval.num)= DYN_COL_STRING;
@@ -27964,10 +28017,10 @@ yyreduce:
           }
     break;
 
-  case 1179:
+  case 1180:
 
 /* Line 1455 of yacc.c  */
-#line 8227 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8247 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             (yyval.num)= DYN_COL_STRING;
@@ -27976,10 +28029,10 @@ yyreduce:
           }
     break;
 
-  case 1180:
+  case 1181:
 
 /* Line 1455 of yacc.c  */
-#line 8234 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8254 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             (yyval.num)= DYN_COL_DATE;
@@ -27988,10 +28041,10 @@ yyreduce:
           }
     break;
 
-  case 1181:
+  case 1182:
 
 /* Line 1455 of yacc.c  */
-#line 8241 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8261 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             (yyval.num)= DYN_COL_TIME;
@@ -28001,10 +28054,10 @@ yyreduce:
           }
     break;
 
-  case 1182:
+  case 1183:
 
 /* Line 1455 of yacc.c  */
-#line 8249 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8269 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             (yyval.num)= DYN_COL_DATETIME;
@@ -28014,10 +28067,10 @@ yyreduce:
           }
     break;
 
-  case 1183:
+  case 1184:
 
 /* Line 1455 of yacc.c  */
-#line 8260 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8280 "/home/buildbot/git/sql/sql_yacc.yy"
     {
      LEX *lex= Lex;
      (yyval.dyncol_def)= (DYNCALL_CREATE_DEF *)
@@ -28039,10 +28092,10 @@ yyreduce:
    }
     break;
 
-  case 1184:
+  case 1185:
 
 /* Line 1455 of yacc.c  */
-#line 8282 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8302 "/home/buildbot/git/sql/sql_yacc.yy"
     {
          (yyval.dyncol_def_list)= new (thd->mem_root) List<DYNCALL_CREATE_DEF>;
          if ((yyval.dyncol_def_list) == NULL)
@@ -28051,20 +28104,20 @@ yyreduce:
        }
     break;
 
-  case 1185:
+  case 1186:
 
 /* Line 1455 of yacc.c  */
-#line 8289 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8309 "/home/buildbot/git/sql/sql_yacc.yy"
     {
          (yyvsp[(1) - (3)].dyncol_def_list)->push_back((yyvsp[(3) - (3)].dyncol_def));
          (yyval.dyncol_def_list)= (yyvsp[(1) - (3)].dyncol_def_list);
        }
     break;
 
-  case 1191:
+  case 1192:
 
 /* Line 1455 of yacc.c  */
-#line 8302 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8322 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *i1= new (thd->mem_root) Item_string((yyvsp[(3) - (3)].lex_str).str,
                                                       (yyvsp[(3) - (3)].lex_str).length,
@@ -28077,10 +28130,10 @@ yyreduce:
           }
     break;
 
-  case 1196:
+  case 1197:
 
 /* Line 1455 of yacc.c  */
-#line 8317 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8337 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_concat((yyvsp[(1) - (3)].item), (yyvsp[(3) - (3)].item));
             if ((yyval.item) == NULL)
@@ -28088,19 +28141,19 @@ yyreduce:
           }
     break;
 
-  case 1197:
+  case 1198:
 
 /* Line 1455 of yacc.c  */
-#line 8323 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8343 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= (yyvsp[(2) - (2)].item);
           }
     break;
 
-  case 1198:
+  case 1199:
 
 /* Line 1455 of yacc.c  */
-#line 8327 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8347 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_neg((yyvsp[(2) - (2)].item));
             if ((yyval.item) == NULL)
@@ -28108,10 +28161,10 @@ yyreduce:
           }
     break;
 
-  case 1199:
+  case 1200:
 
 /* Line 1455 of yacc.c  */
-#line 8333 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8353 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_bit_neg((yyvsp[(2) - (2)].item));
             if ((yyval.item) == NULL)
@@ -28119,10 +28172,10 @@ yyreduce:
           }
     break;
 
-  case 1200:
+  case 1201:
 
 /* Line 1455 of yacc.c  */
-#line 8339 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8359 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= negate_expression(thd, (yyvsp[(2) - (2)].item));
             if ((yyval.item) == NULL)
@@ -28130,10 +28183,10 @@ yyreduce:
           }
     break;
 
-  case 1201:
+  case 1202:
 
 /* Line 1455 of yacc.c  */
-#line 8345 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8365 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             (yyval.item)= new (thd->mem_root) Item_singlerow_subselect((yyvsp[(2) - (3)].select_lex));
             if ((yyval.item) == NULL)
@@ -28141,17 +28194,17 @@ yyreduce:
           }
     break;
 
-  case 1202:
+  case 1203:
 
 /* Line 1455 of yacc.c  */
-#line 8351 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8371 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)= (yyvsp[(2) - (3)].item); }
     break;
 
-  case 1203:
+  case 1204:
 
 /* Line 1455 of yacc.c  */
-#line 8353 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8373 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyvsp[(4) - (5)].item_list)->push_front((yyvsp[(2) - (5)].item));
             (yyval.item)= new (thd->mem_root) Item_row(*(yyvsp[(4) - (5)].item_list));
@@ -28160,10 +28213,10 @@ yyreduce:
           }
     break;
 
-  case 1204:
+  case 1205:
 
 /* Line 1455 of yacc.c  */
-#line 8360 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8380 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyvsp[(5) - (6)].item_list)->push_front((yyvsp[(3) - (6)].item));
             (yyval.item)= new (thd->mem_root) Item_row(*(yyvsp[(5) - (6)].item_list));
@@ -28172,10 +28225,10 @@ yyreduce:
           }
     break;
 
-  case 1205:
+  case 1206:
 
 /* Line 1455 of yacc.c  */
-#line 8367 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8387 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_exists_subselect((yyvsp[(3) - (4)].select_lex));
             if ((yyval.item) == NULL)
@@ -28183,17 +28236,17 @@ yyreduce:
           }
     break;
 
-  case 1206:
+  case 1207:
 
 /* Line 1455 of yacc.c  */
-#line 8373 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8393 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)= (yyvsp[(3) - (4)].item); }
     break;
 
-  case 1207:
+  case 1208:
 
 /* Line 1455 of yacc.c  */
-#line 8375 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8395 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyvsp[(2) - (7)].item_list)->push_front((yyvsp[(5) - (7)].item));
             Item_func_match *i1= new (thd->mem_root) Item_func_match(*(yyvsp[(2) - (7)].item_list), (yyvsp[(6) - (7)].num));
@@ -28204,10 +28257,10 @@ yyreduce:
           }
     break;
 
-  case 1208:
+  case 1209:
 
 /* Line 1455 of yacc.c  */
-#line 8384 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8404 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= create_func_cast(thd, (yyvsp[(2) - (2)].item), ITEM_CAST_CHAR, NULL, NULL,
                                  &my_charset_bin);
@@ -28216,10 +28269,10 @@ yyreduce:
           }
     break;
 
-  case 1209:
+  case 1210:
 
 /* Line 1455 of yacc.c  */
-#line 8391 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8411 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             (yyval.item)= create_func_cast(thd, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), lex->length, lex->dec,
@@ -28229,10 +28282,10 @@ yyreduce:
           }
     break;
 
-  case 1210:
+  case 1211:
 
 /* Line 1455 of yacc.c  */
-#line 8399 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8419 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_case(* (yyvsp[(3) - (5)].item_list), (yyvsp[(2) - (5)].item), (yyvsp[(4) - (5)].item) );
             if ((yyval.item) == NULL)
@@ -28240,10 +28293,10 @@ yyreduce:
           }
     break;
 
-  case 1211:
+  case 1212:
 
 /* Line 1455 of yacc.c  */
-#line 8405 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8425 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= create_func_cast(thd, (yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].cast_type), Lex->length, Lex->dec,
                                  Lex->charset);
@@ -28252,10 +28305,10 @@ yyreduce:
           }
     break;
 
-  case 1212:
+  case 1213:
 
 /* Line 1455 of yacc.c  */
-#line 8412 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8432 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_conv_charset((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].charset));
             if ((yyval.item) == NULL)
@@ -28263,10 +28316,10 @@ yyreduce:
           }
     break;
 
-  case 1213:
+  case 1214:
 
 /* Line 1455 of yacc.c  */
-#line 8418 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8438 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if ((yyvsp[(3) - (4)].item)->is_splocal())
             {
@@ -28282,10 +28335,10 @@ yyreduce:
           }
     break;
 
-  case 1214:
+  case 1215:
 
 /* Line 1455 of yacc.c  */
-#line 8432 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8452 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_insert_value(Lex->current_context(),
                                                         (yyvsp[(3) - (4)].item));
@@ -28294,10 +28347,10 @@ yyreduce:
           }
     break;
 
-  case 1215:
+  case 1216:
 
 /* Line 1455 of yacc.c  */
-#line 8440 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8460 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(5) - (5)].item),(yyvsp[(2) - (5)].item),(yyvsp[(3) - (5)].interval),0);
             if ((yyval.item) == NULL)
@@ -28305,10 +28358,10 @@ yyreduce:
           }
     break;
 
-  case 1216:
+  case 1217:
 
 /* Line 1455 of yacc.c  */
-#line 8455 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8475 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_char(*(yyvsp[(3) - (4)].item_list));
             if ((yyval.item) == NULL)
@@ -28316,10 +28369,10 @@ yyreduce:
           }
     break;
 
-  case 1217:
+  case 1218:
 
 /* Line 1455 of yacc.c  */
-#line 8461 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8481 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_char(*(yyvsp[(3) - (6)].item_list), (yyvsp[(5) - (6)].charset));
             if ((yyval.item) == NULL)
@@ -28327,10 +28380,10 @@ yyreduce:
           }
     break;
 
-  case 1218:
+  case 1219:
 
 /* Line 1455 of yacc.c  */
-#line 8467 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8487 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_current_user(Lex->current_context());
             if ((yyval.item) == NULL)
@@ -28340,10 +28393,10 @@ yyreduce:
           }
     break;
 
-  case 1219:
+  case 1220:
 
 /* Line 1455 of yacc.c  */
-#line 8475 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8495 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_date_typecast((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -28351,10 +28404,10 @@ yyreduce:
           }
     break;
 
-  case 1220:
+  case 1221:
 
 /* Line 1455 of yacc.c  */
-#line 8481 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8501 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_dayofmonth((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -28362,10 +28415,10 @@ yyreduce:
           }
     break;
 
-  case 1221:
+  case 1222:
 
 /* Line 1455 of yacc.c  */
-#line 8487 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8507 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_hour((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -28373,10 +28426,10 @@ yyreduce:
           }
     break;
 
-  case 1222:
+  case 1223:
 
 /* Line 1455 of yacc.c  */
-#line 8493 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8513 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_insert((yyvsp[(3) - (10)].item),(yyvsp[(5) - (10)].item),(yyvsp[(7) - (10)].item),(yyvsp[(9) - (10)].item));
             if ((yyval.item) == NULL)
@@ -28384,10 +28437,10 @@ yyreduce:
           }
     break;
 
-  case 1223:
+  case 1224:
 
 /* Line 1455 of yacc.c  */
-#line 8499 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8519 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             List<Item> *list= new (thd->mem_root) List<Item>;
             if (list == NULL)
@@ -28403,10 +28456,10 @@ yyreduce:
           }
     break;
 
-  case 1224:
+  case 1225:
 
 /* Line 1455 of yacc.c  */
-#line 8513 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8533 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(5) - (8)].item));
             (yyvsp[(7) - (8)].item_list)->push_front((yyvsp[(3) - (8)].item));
@@ -28419,10 +28472,10 @@ yyreduce:
           }
     break;
 
-  case 1225:
+  case 1226:
 
 /* Line 1455 of yacc.c  */
-#line 8524 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8544 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_left((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -28430,10 +28483,10 @@ yyreduce:
           }
     break;
 
-  case 1226:
+  case 1227:
 
 /* Line 1455 of yacc.c  */
-#line 8530 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8550 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_minute((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -28441,10 +28494,10 @@ yyreduce:
           }
     break;
 
-  case 1227:
+  case 1228:
 
 /* Line 1455 of yacc.c  */
-#line 8536 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8556 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_month((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -28452,10 +28505,10 @@ yyreduce:
           }
     break;
 
-  case 1228:
+  case 1229:
 
 /* Line 1455 of yacc.c  */
-#line 8542 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8562 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_right((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -28463,10 +28516,10 @@ yyreduce:
           }
     break;
 
-  case 1229:
+  case 1230:
 
 /* Line 1455 of yacc.c  */
-#line 8548 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8568 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_second((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -28474,10 +28527,10 @@ yyreduce:
           }
     break;
 
-  case 1230:
+  case 1231:
 
 /* Line 1455 of yacc.c  */
-#line 8554 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8574 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_time_typecast((yyvsp[(3) - (4)].item), AUTO_SEC_PART_DIGITS);
             if ((yyval.item) == NULL)
@@ -28485,10 +28538,10 @@ yyreduce:
           }
     break;
 
-  case 1231:
+  case 1232:
 
 /* Line 1455 of yacc.c  */
-#line 8560 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8580 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_datetime_typecast((yyvsp[(3) - (4)].item), AUTO_SEC_PART_DIGITS);
             if ((yyval.item) == NULL)
@@ -28496,10 +28549,10 @@ yyreduce:
           }
     break;
 
-  case 1232:
+  case 1233:
 
 /* Line 1455 of yacc.c  */
-#line 8566 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8586 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_add_time((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item), 1, 0);
             if ((yyval.item) == NULL)
@@ -28507,10 +28560,10 @@ yyreduce:
           }
     break;
 
-  case 1233:
+  case 1234:
 
 /* Line 1455 of yacc.c  */
-#line 8572 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8592 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_trim((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -28518,10 +28571,10 @@ yyreduce:
           }
     break;
 
-  case 1234:
+  case 1235:
 
 /* Line 1455 of yacc.c  */
-#line 8578 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8598 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_ltrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item));
             if ((yyval.item) == NULL)
@@ -28529,10 +28582,10 @@ yyreduce:
           }
     break;
 
-  case 1235:
+  case 1236:
 
 /* Line 1455 of yacc.c  */
-#line 8584 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8604 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_rtrim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item));
             if ((yyval.item) == NULL)
@@ -28540,10 +28593,10 @@ yyreduce:
           }
     break;
 
-  case 1236:
+  case 1237:
 
 /* Line 1455 of yacc.c  */
-#line 8590 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8610 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_trim((yyvsp[(6) - (7)].item),(yyvsp[(4) - (7)].item));
             if ((yyval.item) == NULL)
@@ -28551,10 +28604,10 @@ yyreduce:
           }
     break;
 
-  case 1237:
+  case 1238:
 
 /* Line 1455 of yacc.c  */
-#line 8596 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8616 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_ltrim((yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -28562,10 +28615,10 @@ yyreduce:
           }
     break;
 
-  case 1238:
+  case 1239:
 
 /* Line 1455 of yacc.c  */
-#line 8602 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8622 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_rtrim((yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -28573,10 +28626,10 @@ yyreduce:
           }
     break;
 
-  case 1239:
+  case 1240:
 
 /* Line 1455 of yacc.c  */
-#line 8608 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8628 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_trim((yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -28584,10 +28637,10 @@ yyreduce:
           }
     break;
 
-  case 1240:
+  case 1241:
 
 /* Line 1455 of yacc.c  */
-#line 8614 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8634 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_trim((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item));
             if ((yyval.item) == NULL)
@@ -28595,10 +28648,10 @@ yyreduce:
           }
     break;
 
-  case 1241:
+  case 1242:
 
 /* Line 1455 of yacc.c  */
-#line 8620 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8640 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_user();
             if ((yyval.item) == NULL)
@@ -28608,10 +28661,10 @@ yyreduce:
           }
     break;
 
-  case 1242:
+  case 1243:
 
 /* Line 1455 of yacc.c  */
-#line 8628 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8648 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_year((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -28619,10 +28672,10 @@ yyreduce:
           }
     break;
 
-  case 1243:
+  case 1244:
 
 /* Line 1455 of yacc.c  */
-#line 8649 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8669 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                                              INTERVAL_DAY, 0);
@@ -28631,10 +28684,10 @@ yyreduce:
           }
     break;
 
-  case 1244:
+  case 1245:
 
 /* Line 1455 of yacc.c  */
-#line 8656 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8676 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 0);
             if ((yyval.item) == NULL)
@@ -28642,10 +28695,10 @@ yyreduce:
           }
     break;
 
-  case 1245:
+  case 1246:
 
 /* Line 1455 of yacc.c  */
-#line 8662 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8682 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_curdate_local();
             if ((yyval.item) == NULL)
@@ -28654,10 +28707,10 @@ yyreduce:
           }
     break;
 
-  case 1246:
+  case 1247:
 
 /* Line 1455 of yacc.c  */
-#line 8669 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8689 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_curtime_local((yyvsp[(2) - (2)].num));
             if ((yyval.item) == NULL)
@@ -28666,10 +28719,10 @@ yyreduce:
           }
     break;
 
-  case 1247:
+  case 1248:
 
 /* Line 1455 of yacc.c  */
-#line 8677 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8697 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),0);
             if ((yyval.item) == NULL)
@@ -28677,10 +28730,10 @@ yyreduce:
           }
     break;
 
-  case 1248:
+  case 1249:
 
 /* Line 1455 of yacc.c  */
-#line 8684 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8704 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item),(yyvsp[(6) - (8)].item),(yyvsp[(7) - (8)].interval),1);
             if ((yyval.item) == NULL)
@@ -28688,10 +28741,10 @@ yyreduce:
           }
     break;
 
-  case 1249:
+  case 1250:
 
 /* Line 1455 of yacc.c  */
-#line 8690 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8710 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)=new (thd->mem_root) Item_extract( (yyvsp[(3) - (6)].interval), (yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -28699,10 +28752,10 @@ yyreduce:
           }
     break;
 
-  case 1250:
+  case 1251:
 
 /* Line 1455 of yacc.c  */
-#line 8696 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8716 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_get_format((yyvsp[(3) - (6)].date_time_type), (yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -28710,10 +28763,10 @@ yyreduce:
           }
     break;
 
-  case 1251:
+  case 1252:
 
 /* Line 1455 of yacc.c  */
-#line 8702 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8722 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_now_local((yyvsp[(2) - (2)].num));
             if ((yyval.item) == NULL)
@@ -28722,10 +28775,10 @@ yyreduce:
           }
     break;
 
-  case 1252:
+  case 1253:
 
 /* Line 1455 of yacc.c  */
-#line 8709 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8729 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item) = new (thd->mem_root) Item_func_locate((yyvsp[(5) - (6)].item),(yyvsp[(3) - (6)].item));
             if ((yyval.item) == NULL)
@@ -28733,10 +28786,10 @@ yyreduce:
           }
     break;
 
-  case 1253:
+  case 1254:
 
 /* Line 1455 of yacc.c  */
-#line 8715 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8735 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
                                                              INTERVAL_DAY, 1);
@@ -28745,10 +28798,10 @@ yyreduce:
           }
     break;
 
-  case 1254:
+  case 1255:
 
 /* Line 1455 of yacc.c  */
-#line 8722 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8742 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(3) - (8)].item), (yyvsp[(6) - (8)].item), (yyvsp[(7) - (8)].interval), 1);
             if ((yyval.item) == NULL)
@@ -28756,10 +28809,10 @@ yyreduce:
           }
     break;
 
-  case 1255:
+  case 1256:
 
 /* Line 1455 of yacc.c  */
-#line 8728 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8748 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_substr((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
             if ((yyval.item) == NULL)
@@ -28767,10 +28820,10 @@ yyreduce:
           }
     break;
 
-  case 1256:
+  case 1257:
 
 /* Line 1455 of yacc.c  */
-#line 8734 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8754 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_substr((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -28778,10 +28831,10 @@ yyreduce:
           }
     break;
 
-  case 1257:
+  case 1258:
 
 /* Line 1455 of yacc.c  */
-#line 8740 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8760 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_substr((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
             if ((yyval.item) == NULL)
@@ -28789,10 +28842,10 @@ yyreduce:
           }
     break;
 
-  case 1258:
+  case 1259:
 
 /* Line 1455 of yacc.c  */
-#line 8746 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8766 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_substr((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -28800,10 +28853,10 @@ yyreduce:
           }
     break;
 
-  case 1259:
+  case 1260:
 
 /* Line 1455 of yacc.c  */
-#line 8752 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8772 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               Unlike other time-related functions, SYSDATE() is
@@ -28823,10 +28876,10 @@ yyreduce:
           }
     break;
 
-  case 1260:
+  case 1261:
 
 /* Line 1455 of yacc.c  */
-#line 8770 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8790 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_date_add_interval((yyvsp[(7) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(3) - (8)].interval_time_st),0);
             if ((yyval.item) == NULL)
@@ -28834,10 +28887,10 @@ yyreduce:
           }
     break;
 
-  case 1261:
+  case 1262:
 
 /* Line 1455 of yacc.c  */
-#line 8776 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8796 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_timestamp_diff((yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item),(yyvsp[(3) - (8)].interval_time_st));
             if ((yyval.item) == NULL)
@@ -28845,10 +28898,10 @@ yyreduce:
           }
     break;
 
-  case 1262:
+  case 1263:
 
 /* Line 1455 of yacc.c  */
-#line 8782 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8802 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_curdate_utc();
             if ((yyval.item) == NULL)
@@ -28857,10 +28910,10 @@ yyreduce:
           }
     break;
 
-  case 1263:
+  case 1264:
 
 /* Line 1455 of yacc.c  */
-#line 8789 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8809 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_curtime_utc((yyvsp[(2) - (2)].num));
             if ((yyval.item) == NULL)
@@ -28869,10 +28922,10 @@ yyreduce:
           }
     break;
 
-  case 1264:
+  case 1265:
 
 /* Line 1455 of yacc.c  */
-#line 8796 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8816 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_now_utc((yyvsp[(2) - (2)].num));
             if ((yyval.item) == NULL)
@@ -28881,10 +28934,10 @@ yyreduce:
           }
     break;
 
-  case 1265:
+  case 1266:
 
 /* Line 1455 of yacc.c  */
-#line 8804 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8824 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= create_func_dyncol_add(thd, (yyvsp[(3) - (6)].item), *(yyvsp[(5) - (6)].dyncol_def_list));
             if ((yyval.item) == NULL)
@@ -28892,10 +28945,10 @@ yyreduce:
           }
     break;
 
-  case 1266:
+  case 1267:
 
 /* Line 1455 of yacc.c  */
-#line 8811 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8831 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= create_func_dyncol_delete(thd, (yyvsp[(3) - (6)].item), *(yyvsp[(5) - (6)].item_list));
             if ((yyval.item) == NULL)
@@ -28903,10 +28956,10 @@ yyreduce:
           }
     break;
 
-  case 1267:
+  case 1268:
 
 /* Line 1455 of yacc.c  */
-#line 8818 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8838 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_dyncol_exists((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -28914,10 +28967,10 @@ yyreduce:
           }
     break;
 
-  case 1268:
+  case 1269:
 
 /* Line 1455 of yacc.c  */
-#line 8825 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8845 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_dyncol_list((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -28925,10 +28978,10 @@ yyreduce:
           }
     break;
 
-  case 1269:
+  case 1270:
 
 /* Line 1455 of yacc.c  */
-#line 8832 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8852 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= create_func_dyncol_create(thd, *(yyvsp[(3) - (4)].dyncol_def_list));
             if ((yyval.item) == NULL)
@@ -28936,10 +28989,10 @@ yyreduce:
           }
     break;
 
-  case 1270:
+  case 1271:
 
 /* Line 1455 of yacc.c  */
-#line 8839 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8859 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             (yyval.item)= create_func_dyncol_get(thd, (yyvsp[(3) - (8)].item), (yyvsp[(5) - (8)].item), (yyvsp[(7) - (8)].cast_type),
@@ -28950,10 +29003,10 @@ yyreduce:
           }
     break;
 
-  case 1271:
+  case 1272:
 
 /* Line 1455 of yacc.c  */
-#line 8856 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8876 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_ascii((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -28961,10 +29014,10 @@ yyreduce:
           }
     break;
 
-  case 1272:
+  case 1273:
 
 /* Line 1455 of yacc.c  */
-#line 8862 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8882 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_charset((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -28972,10 +29025,10 @@ yyreduce:
           }
     break;
 
-  case 1273:
+  case 1274:
 
 /* Line 1455 of yacc.c  */
-#line 8868 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8888 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_coalesce(* (yyvsp[(3) - (4)].item_list));
             if ((yyval.item) == NULL)
@@ -28983,10 +29036,10 @@ yyreduce:
           }
     break;
 
-  case 1274:
+  case 1275:
 
 /* Line 1455 of yacc.c  */
-#line 8874 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8894 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_collation((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -28994,10 +29047,10 @@ yyreduce:
           }
     break;
 
-  case 1275:
+  case 1276:
 
 /* Line 1455 of yacc.c  */
-#line 8880 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8900 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_database();
             if ((yyval.item) == NULL)
@@ -29006,10 +29059,10 @@ yyreduce:
           }
     break;
 
-  case 1276:
+  case 1277:
 
 /* Line 1455 of yacc.c  */
-#line 8887 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8907 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_if((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
             if ((yyval.item) == NULL)
@@ -29017,10 +29070,10 @@ yyreduce:
           }
     break;
 
-  case 1277:
+  case 1278:
 
 /* Line 1455 of yacc.c  */
-#line 8893 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8913 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_last_value(* (yyvsp[(3) - (4)].item_list));
             if ((yyval.item) == NULL)
@@ -29028,10 +29081,10 @@ yyreduce:
           }
     break;
 
-  case 1278:
+  case 1279:
 
 /* Line 1455 of yacc.c  */
-#line 8899 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8919 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_microsecond((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -29039,10 +29092,10 @@ yyreduce:
           }
     break;
 
-  case 1279:
+  case 1280:
 
 /* Line 1455 of yacc.c  */
-#line 8905 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8925 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item) = new (thd->mem_root) Item_func_mod((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -29050,10 +29103,10 @@ yyreduce:
           }
     break;
 
-  case 1280:
+  case 1281:
 
 /* Line 1455 of yacc.c  */
-#line 8911 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8931 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)=  new (thd->mem_root) Item_func_old_password((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -29061,10 +29114,10 @@ yyreduce:
           }
     break;
 
-  case 1281:
+  case 1282:
 
 /* Line 1455 of yacc.c  */
-#line 8917 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8937 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item* i1;
             if (thd->variables.old_passwords)
@@ -29077,10 +29130,10 @@ yyreduce:
           }
     break;
 
-  case 1282:
+  case 1283:
 
 /* Line 1455 of yacc.c  */
-#line 8928 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8948 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item) = new (thd->mem_root) Item_func_quarter((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -29088,10 +29141,10 @@ yyreduce:
           }
     break;
 
-  case 1283:
+  case 1284:
 
 /* Line 1455 of yacc.c  */
-#line 8934 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8954 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_repeat((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -29099,10 +29152,10 @@ yyreduce:
           }
     break;
 
-  case 1284:
+  case 1285:
 
 /* Line 1455 of yacc.c  */
-#line 8940 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8960 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_replace((yyvsp[(3) - (8)].item),(yyvsp[(5) - (8)].item),(yyvsp[(7) - (8)].item));
             if ((yyval.item) == NULL)
@@ -29110,10 +29163,10 @@ yyreduce:
           }
     break;
 
-  case 1285:
+  case 1286:
 
 /* Line 1455 of yacc.c  */
-#line 8946 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8966 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_round((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item),1);
             if ((yyval.item) == NULL)
@@ -29121,10 +29174,10 @@ yyreduce:
           }
     break;
 
-  case 1286:
+  case 1287:
 
 /* Line 1455 of yacc.c  */
-#line 8952 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8972 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *i1= new (thd->mem_root) Item_int((char*) "0",
                                            thd->variables.default_week_format,
@@ -29137,10 +29190,10 @@ yyreduce:
           }
     break;
 
-  case 1287:
+  case 1288:
 
 /* Line 1455 of yacc.c  */
-#line 8963 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8983 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_week((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item));
             if ((yyval.item) == NULL)
@@ -29148,10 +29201,10 @@ yyreduce:
           }
     break;
 
-  case 1288:
+  case 1289:
 
 /* Line 1455 of yacc.c  */
-#line 8969 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 8989 "/home/buildbot/git/sql/sql_yacc.yy"
     {
 #ifdef HAVE_SPATIAL
             (yyval.item)= (yyvsp[(1) - (1)].item);
@@ -29166,10 +29219,10 @@ yyreduce:
           }
     break;
 
-  case 1289:
+  case 1290:
 
 /* Line 1455 of yacc.c  */
-#line 8985 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9005 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= GEOM_NEW(thd,
                          Item_func_spatial_rel((yyvsp[(3) - (6)].item), (yyvsp[(5) - (6)].item),
@@ -29177,10 +29230,10 @@ yyreduce:
           }
     break;
 
-  case 1290:
+  case 1291:
 
 /* Line 1455 of yacc.c  */
-#line 8991 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9011 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= GEOM_NEW(thd,
                          Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
@@ -29189,10 +29242,10 @@ yyreduce:
           }
     break;
 
-  case 1291:
+  case 1292:
 
 /* Line 1455 of yacc.c  */
-#line 8998 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9018 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= GEOM_NEW(thd,
                          Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
@@ -29201,10 +29254,10 @@ yyreduce:
           }
     break;
 
-  case 1292:
+  case 1293:
 
 /* Line 1455 of yacc.c  */
-#line 9005 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9025 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= GEOM_NEW(thd,
                          Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
@@ -29213,10 +29266,10 @@ yyreduce:
           }
     break;
 
-  case 1293:
+  case 1294:
 
 /* Line 1455 of yacc.c  */
-#line 9012 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9032 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= GEOM_NEW(thd,
                          Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
@@ -29225,10 +29278,10 @@ yyreduce:
           }
     break;
 
-  case 1294:
+  case 1295:
 
 /* Line 1455 of yacc.c  */
-#line 9019 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9039 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= GEOM_NEW(thd,
                          Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
@@ -29237,19 +29290,19 @@ yyreduce:
           }
     break;
 
-  case 1295:
+  case 1296:
 
 /* Line 1455 of yacc.c  */
-#line 9026 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9046 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= GEOM_NEW(thd, Item_func_point((yyvsp[(3) - (6)].item),(yyvsp[(5) - (6)].item)));
           }
     break;
 
-  case 1296:
+  case 1297:
 
 /* Line 1455 of yacc.c  */
-#line 9030 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9050 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= GEOM_NEW(thd,
                          Item_func_spatial_collection(* (yyvsp[(3) - (4)].item_list),
@@ -29258,10 +29311,10 @@ yyreduce:
           }
     break;
 
-  case 1297:
+  case 1298:
 
 /* Line 1455 of yacc.c  */
-#line 9049 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9069 "/home/buildbot/git/sql/sql_yacc.yy"
     {
 #ifdef HAVE_DLOPEN
             udf_func *udf= 0;
@@ -29282,10 +29335,10 @@ yyreduce:
           }
     break;
 
-  case 1298:
+  case 1299:
 
 /* Line 1455 of yacc.c  */
-#line 9068 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9088 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Create_func *builder;
             Item *item= NULL;
@@ -29340,10 +29393,10 @@ yyreduce:
           }
     break;
 
-  case 1299:
+  case 1300:
 
 /* Line 1455 of yacc.c  */
-#line 9121 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9141 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Create_qfunc *builder;
             Item *item= NULL;
@@ -29383,66 +29436,66 @@ yyreduce:
           }
     break;
 
-  case 1300:
+  case 1301:
 
 /* Line 1455 of yacc.c  */
-#line 9162 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9182 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= (yyvsp[(1) - (2)].num) | (yyvsp[(2) - (2)].num); }
     break;
 
-  case 1301:
+  case 1302:
 
 /* Line 1455 of yacc.c  */
-#line 9164 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9184 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= FT_BOOL; }
     break;
 
-  case 1302:
+  case 1303:
 
 /* Line 1455 of yacc.c  */
-#line 9168 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9188 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= FT_NL; }
     break;
 
-  case 1303:
+  case 1304:
 
 /* Line 1455 of yacc.c  */
-#line 9169 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9189 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= FT_NL; }
     break;
 
-  case 1304:
+  case 1305:
 
 /* Line 1455 of yacc.c  */
-#line 9173 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9193 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0;         }
     break;
 
-  case 1305:
+  case 1306:
 
 /* Line 1455 of yacc.c  */
-#line 9174 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9194 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= FT_EXPAND; }
     break;
 
-  case 1306:
+  case 1307:
 
 /* Line 1455 of yacc.c  */
-#line 9178 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9198 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item_list)= NULL; }
     break;
 
-  case 1307:
+  case 1308:
 
 /* Line 1455 of yacc.c  */
-#line 9179 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9199 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
     break;
 
-  case 1308:
+  case 1309:
 
 /* Line 1455 of yacc.c  */
-#line 9184 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9204 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item_list)= new (thd->mem_root) List<Item>;
             if ((yyval.item_list) == NULL)
@@ -29451,20 +29504,20 @@ yyreduce:
           }
     break;
 
-  case 1309:
+  case 1310:
 
 /* Line 1455 of yacc.c  */
-#line 9191 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9211 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
             (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
           }
     break;
 
-  case 1310:
+  case 1311:
 
 /* Line 1455 of yacc.c  */
-#line 9199 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9219 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
              Use Item::name as a storage for the attribute value of user
@@ -29483,16 +29536,17 @@ yyreduce:
                parse it out. If we hijack the input stream with
                remember_name we may get quoted or escaped names.
             */
-            else if ((yyvsp[(2) - (4)].item)->type() != Item::FIELD_ITEM)
+            else if ((yyvsp[(2) - (4)].item)->type() != Item::FIELD_ITEM &&
+                     (yyvsp[(2) - (4)].item)->type() != Item::REF_ITEM /* For HAVING */ )
               (yyvsp[(2) - (4)].item)->set_name((yyvsp[(1) - (4)].simple_string), (uint) ((yyvsp[(3) - (4)].simple_string) - (yyvsp[(1) - (4)].simple_string)), thd->charset());
             (yyval.item)= (yyvsp[(2) - (4)].item);
           }
     break;
 
-  case 1311:
+  case 1312:
 
 /* Line 1455 of yacc.c  */
-#line 9225 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9246 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_avg((yyvsp[(3) - (4)].item), FALSE);
             if ((yyval.item) == NULL)
@@ -29500,10 +29554,10 @@ yyreduce:
           }
     break;
 
-  case 1312:
+  case 1313:
 
 /* Line 1455 of yacc.c  */
-#line 9231 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9252 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_avg((yyvsp[(4) - (5)].item), TRUE);
             if ((yyval.item) == NULL)
@@ -29511,10 +29565,10 @@ yyreduce:
           }
     break;
 
-  case 1313:
+  case 1314:
 
 /* Line 1455 of yacc.c  */
-#line 9237 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9258 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_and((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -29522,10 +29576,10 @@ yyreduce:
           }
     break;
 
-  case 1314:
+  case 1315:
 
 /* Line 1455 of yacc.c  */
-#line 9243 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9264 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_or((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -29533,10 +29587,10 @@ yyreduce:
           }
     break;
 
-  case 1315:
+  case 1316:
 
 /* Line 1455 of yacc.c  */
-#line 9249 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9270 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_xor((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -29544,10 +29598,10 @@ yyreduce:
           }
     break;
 
-  case 1316:
+  case 1317:
 
 /* Line 1455 of yacc.c  */
-#line 9255 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9276 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *item= new (thd->mem_root) Item_int((int32) 0L,1);
             if (item == NULL)
@@ -29558,10 +29612,10 @@ yyreduce:
           }
     break;
 
-  case 1317:
+  case 1318:
 
 /* Line 1455 of yacc.c  */
-#line 9264 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9285 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_count((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -29569,24 +29623,24 @@ yyreduce:
           }
     break;
 
-  case 1318:
+  case 1319:
 
 /* Line 1455 of yacc.c  */
-#line 9270 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9291 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->in_sum_expr++; }
     break;
 
-  case 1319:
+  case 1320:
 
 /* Line 1455 of yacc.c  */
-#line 9272 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9293 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->in_sum_expr--; }
     break;
 
-  case 1320:
+  case 1321:
 
 /* Line 1455 of yacc.c  */
-#line 9274 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9295 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_count(* (yyvsp[(5) - (7)].item_list));
             if ((yyval.item) == NULL)
@@ -29594,10 +29648,10 @@ yyreduce:
           }
     break;
 
-  case 1321:
+  case 1322:
 
 /* Line 1455 of yacc.c  */
-#line 9280 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9301 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_min((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -29605,10 +29659,10 @@ yyreduce:
           }
     break;
 
-  case 1322:
+  case 1323:
 
 /* Line 1455 of yacc.c  */
-#line 9291 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9312 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_min((yyvsp[(4) - (5)].item));
             if ((yyval.item) == NULL)
@@ -29616,10 +29670,10 @@ yyreduce:
           }
     break;
 
-  case 1323:
+  case 1324:
 
 /* Line 1455 of yacc.c  */
-#line 9297 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9318 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_max((yyvsp[(3) - (4)].item));
             if ((yyval.item) == NULL)
@@ -29627,10 +29681,10 @@ yyreduce:
           }
     break;
 
-  case 1324:
+  case 1325:
 
 /* Line 1455 of yacc.c  */
-#line 9303 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9324 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_max((yyvsp[(4) - (5)].item));
             if ((yyval.item) == NULL)
@@ -29638,10 +29692,10 @@ yyreduce:
           }
     break;
 
-  case 1325:
+  case 1326:
 
 /* Line 1455 of yacc.c  */
-#line 9309 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9330 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_std((yyvsp[(3) - (4)].item), 0);
             if ((yyval.item) == NULL)
@@ -29649,10 +29703,10 @@ yyreduce:
           }
     break;
 
-  case 1326:
+  case 1327:
 
 /* Line 1455 of yacc.c  */
-#line 9315 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9336 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_variance((yyvsp[(3) - (4)].item), 0);
             if ((yyval.item) == NULL)
@@ -29660,10 +29714,10 @@ yyreduce:
           }
     break;
 
-  case 1327:
+  case 1328:
 
 /* Line 1455 of yacc.c  */
-#line 9321 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9342 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_std((yyvsp[(3) - (4)].item), 1);
             if ((yyval.item) == NULL)
@@ -29671,10 +29725,10 @@ yyreduce:
           }
     break;
 
-  case 1328:
+  case 1329:
 
 /* Line 1455 of yacc.c  */
-#line 9327 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9348 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_variance((yyvsp[(3) - (4)].item), 1);
             if ((yyval.item) == NULL)
@@ -29682,10 +29736,10 @@ yyreduce:
           }
     break;
 
-  case 1329:
+  case 1330:
 
 /* Line 1455 of yacc.c  */
-#line 9333 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9354 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_sum((yyvsp[(3) - (4)].item), FALSE);
             if ((yyval.item) == NULL)
@@ -29693,10 +29747,10 @@ yyreduce:
           }
     break;
 
-  case 1330:
+  case 1331:
 
 /* Line 1455 of yacc.c  */
-#line 9339 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9360 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_sum_sum((yyvsp[(4) - (5)].item), TRUE);
             if ((yyval.item) == NULL)
@@ -29704,17 +29758,17 @@ yyreduce:
           }
     break;
 
-  case 1331:
+  case 1332:
 
 /* Line 1455 of yacc.c  */
-#line 9345 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9366 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->in_sum_expr++; }
     break;
 
-  case 1332:
+  case 1333:
 
 /* Line 1455 of yacc.c  */
-#line 9349 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9370 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             SELECT_LEX *sel= Select;
             sel->in_sum_expr--;
@@ -29728,10 +29782,10 @@ yyreduce:
           }
     break;
 
-  case 1333:
+  case 1334:
 
 /* Line 1455 of yacc.c  */
-#line 9364 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9385 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (! Lex->parsing_options.allows_variable)
             {
@@ -29741,19 +29795,19 @@ yyreduce:
           }
     break;
 
-  case 1334:
+  case 1335:
 
 /* Line 1455 of yacc.c  */
-#line 9372 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9393 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= (yyvsp[(3) - (3)].item);
           }
     break;
 
-  case 1335:
+  case 1336:
 
 /* Line 1455 of yacc.c  */
-#line 9379 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9400 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item_func_set_user_var *item;
             (yyval.item)= item= new (thd->mem_root) Item_func_set_user_var((yyvsp[(1) - (3)].lex_str), (yyvsp[(3) - (3)].item));
@@ -29765,10 +29819,10 @@ yyreduce:
           }
     break;
 
-  case 1336:
+  case 1337:
 
 /* Line 1455 of yacc.c  */
-#line 9389 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9410 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_func_get_user_var((yyvsp[(1) - (1)].lex_str));
             if ((yyval.item) == NULL)
@@ -29778,10 +29832,10 @@ yyreduce:
           }
     break;
 
-  case 1337:
+  case 1338:
 
 /* Line 1455 of yacc.c  */
-#line 9397 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9418 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* disallow "SELECT @@global.global.variable" */
             if ((yyvsp[(3) - (4)].lex_str).str && (yyvsp[(4) - (4)].lex_str).str && check_reserved_words(&(yyvsp[(3) - (4)].lex_str)))
@@ -29796,24 +29850,24 @@ yyreduce:
           }
     break;
 
-  case 1338:
+  case 1339:
 
 /* Line 1455 of yacc.c  */
-#line 9412 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9433 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num) = 0; }
     break;
 
-  case 1339:
+  case 1340:
 
 /* Line 1455 of yacc.c  */
-#line 9413 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9434 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num) = 1; }
     break;
 
-  case 1340:
+  case 1341:
 
 /* Line 1455 of yacc.c  */
-#line 9418 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9439 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.string)= new (thd->mem_root) String(",", 1, &my_charset_latin1);
             if ((yyval.string) == NULL)
@@ -29821,17 +29875,17 @@ yyreduce:
           }
     break;
 
-  case 1341:
+  case 1342:
 
 /* Line 1455 of yacc.c  */
-#line 9423 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9444 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.string) = (yyvsp[(2) - (2)].string); }
     break;
 
-  case 1343:
+  case 1344:
 
 /* Line 1455 of yacc.c  */
-#line 9429 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9450 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             SELECT_LEX *sel= lex->current_select;
@@ -29846,24 +29900,24 @@ yyreduce:
           }
     break;
 
-  case 1345:
+  case 1346:
 
 /* Line 1455 of yacc.c  */
-#line 9446 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9467 "/home/buildbot/git/sql/sql_yacc.yy"
     { if (add_gorder_to_list(thd, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
     break;
 
-  case 1346:
+  case 1347:
 
 /* Line 1455 of yacc.c  */
-#line 9448 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9469 "/home/buildbot/git/sql/sql_yacc.yy"
     { if (add_gorder_to_list(thd, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
     break;
 
-  case 1347:
+  case 1348:
 
 /* Line 1455 of yacc.c  */
-#line 9453 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9474 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->current_select->inc_in_sum_expr())
@@ -29874,83 +29928,83 @@ yyreduce:
           }
     break;
 
-  case 1348:
+  case 1349:
 
 /* Line 1455 of yacc.c  */
-#line 9462 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9483 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->in_sum_expr--;
             (yyval.item)= (yyvsp[(3) - (3)].item);
           }
     break;
 
-  case 1349:
+  case 1350:
 
 /* Line 1455 of yacc.c  */
-#line 9470 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9491 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= &my_charset_bin; Lex->dec= 0; }
     break;
 
-  case 1350:
+  case 1351:
 
 /* Line 1455 of yacc.c  */
-#line 9472 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9493 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->dec= 0; }
     break;
 
-  case 1351:
+  case 1352:
 
 /* Line 1455 of yacc.c  */
-#line 9474 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9495 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= national_charset_info; Lex->dec=0; }
     break;
 
-  case 1352:
+  case 1353:
 
 /* Line 1455 of yacc.c  */
-#line 9476 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9497 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
     break;
 
-  case 1353:
+  case 1354:
 
 /* Line 1455 of yacc.c  */
-#line 9478 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9499 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
     break;
 
-  case 1354:
+  case 1355:
 
 /* Line 1455 of yacc.c  */
-#line 9480 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9501 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
     break;
 
-  case 1355:
+  case 1356:
 
 /* Line 1455 of yacc.c  */
-#line 9482 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9503 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
     break;
 
-  case 1356:
+  case 1357:
 
 /* Line 1455 of yacc.c  */
-#line 9484 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9505 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
     break;
 
-  case 1357:
+  case 1358:
 
 /* Line 1455 of yacc.c  */
-#line 9486 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9507 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.cast_type)=ITEM_CAST_DATE; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; }
     break;
 
-  case 1358:
+  case 1359:
 
 /* Line 1455 of yacc.c  */
-#line 9488 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9509 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.cast_type)=ITEM_CAST_TIME;
             LEX *lex= Lex;
@@ -29958,10 +30012,10 @@ yyreduce:
            }
     break;
 
-  case 1359:
+  case 1360:
 
 /* Line 1455 of yacc.c  */
-#line 9494 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9515 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.cast_type)=ITEM_CAST_DATETIME;
             LEX *lex= Lex;
@@ -29969,45 +30023,45 @@ yyreduce:
            }
     break;
 
-  case 1360:
+  case 1361:
 
 /* Line 1455 of yacc.c  */
-#line 9500 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9521 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex->charset= NULL; }
     break;
 
-  case 1361:
+  case 1362:
 
 /* Line 1455 of yacc.c  */
-#line 9502 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9523 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->charset= NULL; Lex->length= Lex->dec= 0;}
     break;
 
-  case 1362:
+  case 1363:
 
 /* Line 1455 of yacc.c  */
-#line 9504 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9525 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.cast_type)=ITEM_CAST_DOUBLE; }
     break;
 
-  case 1363:
+  case 1364:
 
 /* Line 1455 of yacc.c  */
-#line 9507 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9528 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item_list)= NULL; }
     break;
 
-  case 1364:
+  case 1365:
 
 /* Line 1455 of yacc.c  */
-#line 9508 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9529 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item_list)= (yyvsp[(1) - (1)].item_list);}
     break;
 
-  case 1365:
+  case 1366:
 
 /* Line 1455 of yacc.c  */
-#line 9513 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9534 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item_list)= new (thd->mem_root) List<Item>;
             if ((yyval.item_list) == NULL)
@@ -30016,34 +30070,34 @@ yyreduce:
           }
     break;
 
-  case 1366:
+  case 1367:
 
 /* Line 1455 of yacc.c  */
-#line 9520 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9541 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
             (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
           }
     break;
 
-  case 1367:
+  case 1368:
 
 /* Line 1455 of yacc.c  */
-#line 9527 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9548 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item_list)= (yyvsp[(1) - (1)].item_list); }
     break;
 
-  case 1368:
+  case 1369:
 
 /* Line 1455 of yacc.c  */
-#line 9528 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9549 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item_list)= (yyvsp[(2) - (3)].item_list); }
     break;
 
-  case 1369:
+  case 1370:
 
 /* Line 1455 of yacc.c  */
-#line 9533 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9554 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item_list)= new (thd->mem_root) List<Item>;
             if ((yyval.item_list) == NULL)
@@ -30052,48 +30106,48 @@ yyreduce:
           }
     break;
 
-  case 1370:
+  case 1371:
 
 /* Line 1455 of yacc.c  */
-#line 9540 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9561 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyvsp[(1) - (3)].item_list)->push_back((yyvsp[(3) - (3)].item));
             (yyval.item_list)= (yyvsp[(1) - (3)].item_list);
           }
     break;
 
-  case 1371:
+  case 1372:
 
 /* Line 1455 of yacc.c  */
-#line 9547 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9568 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)= NULL; }
     break;
 
-  case 1372:
+  case 1373:
 
 /* Line 1455 of yacc.c  */
-#line 9548 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9569 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)= (yyvsp[(1) - (1)].item); }
     break;
 
-  case 1373:
+  case 1374:
 
 /* Line 1455 of yacc.c  */
-#line 9552 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9573 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)= NULL; }
     break;
 
-  case 1374:
+  case 1375:
 
 /* Line 1455 of yacc.c  */
-#line 9553 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9574 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)= (yyvsp[(2) - (2)].item); }
     break;
 
-  case 1375:
+  case 1376:
 
 /* Line 1455 of yacc.c  */
-#line 9558 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9579 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item_list)= new List<Item>;
             if ((yyval.item_list) == NULL)
@@ -30103,10 +30157,10 @@ yyreduce:
           }
     break;
 
-  case 1376:
+  case 1377:
 
 /* Line 1455 of yacc.c  */
-#line 9566 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9587 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(3) - (5)].item));
             (yyvsp[(1) - (5)].item_list)->push_back((yyvsp[(5) - (5)].item));
@@ -30114,17 +30168,17 @@ yyreduce:
           }
     break;
 
-  case 1377:
+  case 1378:
 
 /* Line 1455 of yacc.c  */
-#line 9576 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9597 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
     break;
 
-  case 1378:
+  case 1379:
 
 /* Line 1455 of yacc.c  */
-#line 9578 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9599 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (!((yyval.table_list)= lex->current_select->nest_last_join(lex->thd)))
@@ -30135,61 +30189,61 @@ yyreduce:
           }
     break;
 
-  case 1379:
+  case 1380:
 
 /* Line 1455 of yacc.c  */
-#line 9589 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9610 "/home/buildbot/git/sql/sql_yacc.yy"
     { MYSQL_YYABORT_UNLESS((yyval.table_list)=(yyvsp[(1) - (1)].table_list)); }
     break;
 
-  case 1380:
+  case 1381:
 
 /* Line 1455 of yacc.c  */
-#line 9600 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9621 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
     break;
 
-  case 1381:
+  case 1382:
 
 /* Line 1455 of yacc.c  */
-#line 9601 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9622 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.table_list)=(yyvsp[(3) - (4)].table_list); }
     break;
 
-  case 1382:
+  case 1383:
 
 /* Line 1455 of yacc.c  */
-#line 9607 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9628 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.table_list)=(yyvsp[(1) - (1)].table_list); }
     break;
 
-  case 1383:
+  case 1384:
 
 /* Line 1455 of yacc.c  */
-#line 9609 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9630 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list)));
           }
     break;
 
-  case 1384:
+  case 1385:
 
 /* Line 1455 of yacc.c  */
-#line 9629 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9650 "/home/buildbot/git/sql/sql_yacc.yy"
     { MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); }
     break;
 
-  case 1385:
+  case 1386:
 
 /* Line 1455 of yacc.c  */
-#line 9631 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9652 "/home/buildbot/git/sql/sql_yacc.yy"
     { MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].table_list) && ((yyval.table_list)=(yyvsp[(3) - (3)].table_list))); (yyvsp[(3) - (3)].table_list)->straight=1; }
     break;
 
-  case 1386:
+  case 1387:
 
 /* Line 1455 of yacc.c  */
-#line 9634 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9655 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
             /* Change the current name resolution context to a local context. */
@@ -30199,10 +30253,10 @@ yyreduce:
           }
     break;
 
-  case 1387:
+  case 1388:
 
 /* Line 1455 of yacc.c  */
-#line 9642 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9663 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
             Lex->pop_context();
@@ -30210,10 +30264,10 @@ yyreduce:
           }
     break;
 
-  case 1388:
+  case 1389:
 
 /* Line 1455 of yacc.c  */
-#line 9649 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9670 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
             /* Change the current name resolution context to a local context. */
@@ -30223,10 +30277,10 @@ yyreduce:
           }
     break;
 
-  case 1389:
+  case 1390:
 
 /* Line 1455 of yacc.c  */
-#line 9657 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9678 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyvsp[(3) - (6)].table_list)->straight=1;
             add_join_on((yyvsp[(3) - (6)].table_list),(yyvsp[(6) - (6)].item));
@@ -30235,36 +30289,36 @@ yyreduce:
           }
     break;
 
-  case 1390:
+  case 1391:
 
 /* Line 1455 of yacc.c  */
-#line 9665 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9686 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && (yyvsp[(3) - (4)].table_list));
           }
     break;
 
-  case 1391:
+  case 1392:
 
 /* Line 1455 of yacc.c  */
-#line 9669 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9690 "/home/buildbot/git/sql/sql_yacc.yy"
     { add_join_natural((yyvsp[(1) - (8)].table_list),(yyvsp[(3) - (8)].table_list),(yyvsp[(7) - (8)].string_list),Select); (yyval.table_list)=(yyvsp[(3) - (8)].table_list); }
     break;
 
-  case 1392:
+  case 1393:
 
 /* Line 1455 of yacc.c  */
-#line 9671 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9692 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (4)].table_list) && ((yyval.table_list)=(yyvsp[(4) - (4)].table_list)));
             add_join_natural((yyvsp[(1) - (4)].table_list),(yyvsp[(4) - (4)].table_list),NULL,Select);
           }
     break;
 
-  case 1393:
+  case 1394:
 
 /* Line 1455 of yacc.c  */
-#line 9679 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9700 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
             /* Change the current name resolution context to a local context. */
@@ -30274,10 +30328,10 @@ yyreduce:
           }
     break;
 
-  case 1394:
+  case 1395:
 
 /* Line 1455 of yacc.c  */
-#line 9687 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9708 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             add_join_on((yyvsp[(5) - (8)].table_list),(yyvsp[(8) - (8)].item));
             Lex->pop_context();
@@ -30287,19 +30341,19 @@ yyreduce:
           }
     break;
 
-  case 1395:
+  case 1396:
 
 /* Line 1455 of yacc.c  */
-#line 9695 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9716 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
           }
     break;
 
-  case 1396:
+  case 1397:
 
 /* Line 1455 of yacc.c  */
-#line 9699 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9720 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             add_join_natural((yyvsp[(1) - (10)].table_list),(yyvsp[(5) - (10)].table_list),(yyvsp[(9) - (10)].string_list),Select); 
             (yyvsp[(5) - (10)].table_list)->outer_join|=JOIN_TYPE_LEFT; 
@@ -30307,10 +30361,10 @@ yyreduce:
           }
     break;
 
-  case 1397:
+  case 1398:
 
 /* Line 1455 of yacc.c  */
-#line 9705 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9726 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
             add_join_natural((yyvsp[(1) - (6)].table_list),(yyvsp[(6) - (6)].table_list),NULL,Select);
@@ -30319,10 +30373,10 @@ yyreduce:
           }
     break;
 
-  case 1398:
+  case 1399:
 
 /* Line 1455 of yacc.c  */
-#line 9715 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9736 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(5) - (6)].table_list));
             /* Change the current name resolution context to a local context. */
@@ -30332,10 +30386,10 @@ yyreduce:
           }
     break;
 
-  case 1399:
+  case 1400:
 
 /* Line 1455 of yacc.c  */
-#line 9723 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9744 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (!((yyval.table_list)= lex->current_select->convert_right_join()))
@@ -30346,19 +30400,19 @@ yyreduce:
           }
     break;
 
-  case 1400:
+  case 1401:
 
 /* Line 1455 of yacc.c  */
-#line 9732 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9753 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].table_list) && (yyvsp[(5) - (5)].table_list));
           }
     break;
 
-  case 1401:
+  case 1402:
 
 /* Line 1455 of yacc.c  */
-#line 9736 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9757 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (!((yyval.table_list)= lex->current_select->convert_right_join()))
@@ -30367,10 +30421,10 @@ yyreduce:
           }
     break;
 
-  case 1402:
+  case 1403:
 
 /* Line 1455 of yacc.c  */
-#line 9743 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9764 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (6)].table_list) && (yyvsp[(6) - (6)].table_list));
             add_join_natural((yyvsp[(6) - (6)].table_list),(yyvsp[(1) - (6)].table_list),NULL,Select);
@@ -30380,41 +30434,41 @@ yyreduce:
           }
     break;
 
-  case 1403:
+  case 1404:
 
 /* Line 1455 of yacc.c  */
-#line 9753 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9774 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1404:
+  case 1405:
 
 /* Line 1455 of yacc.c  */
-#line 9754 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9775 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1405:
+  case 1406:
 
 /* Line 1455 of yacc.c  */
-#line 9755 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9776 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1406:
+  case 1407:
 
 /* Line 1455 of yacc.c  */
-#line 9767 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9788 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             SELECT_LEX *sel= Select;
             sel->table_join_options= 0;
           }
     break;
 
-  case 1407:
+  case 1408:
 
 /* Line 1455 of yacc.c  */
-#line 9772 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9793 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!((yyval.table_list)= Select->add_table_to_list(thd, (yyvsp[(2) - (4)].table), (yyvsp[(3) - (4)].lex_str_ptr),
                                                 Select->get_table_join_options(),
@@ -30426,10 +30480,10 @@ yyreduce:
           }
     break;
 
-  case 1408:
+  case 1409:
 
 /* Line 1455 of yacc.c  */
-#line 9782 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9803 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             SELECT_LEX *sel= lex->current_select;
@@ -30453,10 +30507,10 @@ yyreduce:
           }
     break;
 
-  case 1409:
+  case 1410:
 
 /* Line 1455 of yacc.c  */
-#line 9822 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9843 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* Use $2 instead of Lex->current_select as derived table will
                alter value of Lex->current_select. */
@@ -30512,10 +30566,10 @@ yyreduce:
           }
     break;
 
-  case 1410:
+  case 1411:
 
 /* Line 1455 of yacc.c  */
-#line 9898 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9919 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if ((yyvsp[(1) - (2)].table_list) && (yyvsp[(2) - (2)].is_not_empty))
             {
@@ -30525,20 +30579,20 @@ yyreduce:
           }
     break;
 
-  case 1411:
+  case 1412:
 
 /* Line 1455 of yacc.c  */
-#line 9908 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9929 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_select_to_union_list(Lex, (bool)(yyvsp[(3) - (3)].num), FALSE))
               MYSQL_YYABORT;
           }
     break;
 
-  case 1412:
+  case 1413:
 
 /* Line 1455 of yacc.c  */
-#line 9913 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9934 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               Remove from the name resolution context stack the context of the
@@ -30548,10 +30602,10 @@ yyreduce:
           }
     break;
 
-  case 1413:
+  case 1414:
 
 /* Line 1455 of yacc.c  */
-#line 9921 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9942 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if ((yyvsp[(1) - (7)].table_list) != NULL)
             {
@@ -30561,10 +30615,10 @@ yyreduce:
           }
     break;
 
-  case 1414:
+  case 1415:
 
 /* Line 1455 of yacc.c  */
-#line 9933 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9954 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             SELECT_LEX * sel= lex->current_select;
@@ -30582,10 +30636,10 @@ yyreduce:
           }
     break;
 
-  case 1415:
+  case 1416:
 
 /* Line 1455 of yacc.c  */
-#line 9952 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9973 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             SELECT_LEX *sel= lex->current_select;
@@ -30595,19 +30649,19 @@ yyreduce:
           }
     break;
 
-  case 1416:
+  case 1417:
 
 /* Line 1455 of yacc.c  */
-#line 9960 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9981 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->parsing_place= NO_MATTER;
           }
     break;
 
-  case 1418:
+  case 1419:
 
 /* Line 1455 of yacc.c  */
-#line 9969 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9990 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if ((yyvsp[(1) - (1)].select_lex)->init_nested_join(lex->thd))
@@ -30615,10 +30669,10 @@ yyreduce:
           }
     break;
 
-  case 1419:
+  case 1420:
 
 /* Line 1455 of yacc.c  */
-#line 9975 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 9996 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             /* for normal joins, $3 != NULL and end_nested_join() != NULL,
@@ -30634,10 +30688,10 @@ yyreduce:
           }
     break;
 
-  case 1420:
+  case 1421:
 
 /* Line 1455 of yacc.c  */
-#line 9991 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10012 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->derived_tables|= DERIVED_SUBQUERY;
@@ -30656,26 +30710,26 @@ yyreduce:
           }
     break;
 
-  case 1421:
+  case 1422:
 
 /* Line 1455 of yacc.c  */
-#line 10008 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10029 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->parsing_place= NO_MATTER;
           }
     break;
 
-  case 1423:
+  case 1424:
 
 /* Line 1455 of yacc.c  */
-#line 10015 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10036 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.select_lex)= Select; }
     break;
 
-  case 1424:
+  case 1425:
 
 /* Line 1455 of yacc.c  */
-#line 10020 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10041 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -30700,128 +30754,128 @@ yyreduce:
           }
     break;
 
-  case 1425:
+  case 1426:
 
 /* Line 1455 of yacc.c  */
-#line 10045 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10066 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1426:
+  case 1427:
 
 /* Line 1455 of yacc.c  */
-#line 10046 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10067 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1427:
+  case 1428:
 
 /* Line 1455 of yacc.c  */
-#line 10051 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10072 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.num)= thd->variables.old_mode ?  INDEX_HINT_MASK_JOIN : INDEX_HINT_MASK_ALL; 
           }
     break;
 
-  case 1428:
+  case 1429:
 
 /* Line 1455 of yacc.c  */
-#line 10054 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10075 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= INDEX_HINT_MASK_JOIN;  }
     break;
 
-  case 1429:
+  case 1430:
 
 /* Line 1455 of yacc.c  */
-#line 10055 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10076 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= INDEX_HINT_MASK_ORDER; }
     break;
 
-  case 1430:
+  case 1431:
 
 /* Line 1455 of yacc.c  */
-#line 10056 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10077 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= INDEX_HINT_MASK_GROUP; }
     break;
 
-  case 1431:
+  case 1432:
 
 /* Line 1455 of yacc.c  */
-#line 10060 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10081 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.index_hint)= INDEX_HINT_FORCE; }
     break;
 
-  case 1432:
+  case 1433:
 
 /* Line 1455 of yacc.c  */
-#line 10061 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10082 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.index_hint)= INDEX_HINT_IGNORE; }
     break;
 
-  case 1433:
+  case 1434:
 
 /* Line 1455 of yacc.c  */
-#line 10066 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10087 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->set_index_hint_type((yyvsp[(1) - (3)].index_hint), (yyvsp[(3) - (3)].num));
           }
     break;
 
-  case 1435:
+  case 1436:
 
 /* Line 1455 of yacc.c  */
-#line 10071 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10092 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[(3) - (3)].num));
           }
     break;
 
-  case 1440:
+  case 1441:
 
 /* Line 1455 of yacc.c  */
-#line 10084 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10105 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->alloc_index_hints(thd); }
     break;
 
-  case 1442:
+  case 1443:
 
 /* Line 1455 of yacc.c  */
-#line 10088 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10109 "/home/buildbot/git/sql/sql_yacc.yy"
     {  Select->clear_index_hints(); }
     break;
 
-  case 1444:
+  case 1445:
 
 /* Line 1455 of yacc.c  */
-#line 10093 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10114 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->add_index_hint(thd, NULL, 0); }
     break;
 
-  case 1445:
+  case 1446:
 
 /* Line 1455 of yacc.c  */
-#line 10094 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10115 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1446:
+  case 1447:
 
 /* Line 1455 of yacc.c  */
-#line 10099 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10120 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->add_index_hint(thd, (yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length); }
     break;
 
-  case 1447:
+  case 1448:
 
 /* Line 1455 of yacc.c  */
-#line 10101 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10122 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->add_index_hint(thd, (char *)"PRIMARY", 7); }
     break;
 
-  case 1450:
+  case 1451:
 
 /* Line 1455 of yacc.c  */
-#line 10111 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10132 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!((yyval.string_list)= new List<String>))
               MYSQL_YYABORT;
@@ -30834,10 +30888,10 @@ yyreduce:
           }
     break;
 
-  case 1451:
+  case 1452:
 
 /* Line 1455 of yacc.c  */
-#line 10122 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10143 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             String *s= new (thd->mem_root) String((const char *) (yyvsp[(3) - (3)].lex_str).str,
                                                     (yyvsp[(3) - (3)].lex_str).length,
@@ -30849,192 +30903,192 @@ yyreduce:
           }
     break;
 
-  case 1452:
+  case 1453:
 
 /* Line 1455 of yacc.c  */
-#line 10134 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10155 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1453:
+  case 1454:
 
 /* Line 1455 of yacc.c  */
-#line 10135 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10156 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval)=INTERVAL_DAY_HOUR; }
     break;
 
-  case 1454:
+  case 1455:
 
 /* Line 1455 of yacc.c  */
-#line 10136 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10157 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval)=INTERVAL_DAY_MICROSECOND; }
     break;
 
-  case 1455:
+  case 1456:
 
 /* Line 1455 of yacc.c  */
-#line 10137 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10158 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval)=INTERVAL_DAY_MINUTE; }
     break;
 
-  case 1456:
+  case 1457:
 
 /* Line 1455 of yacc.c  */
-#line 10138 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10159 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval)=INTERVAL_DAY_SECOND; }
     break;
 
-  case 1457:
+  case 1458:
 
 /* Line 1455 of yacc.c  */
-#line 10139 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10160 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; }
     break;
 
-  case 1458:
+  case 1459:
 
 /* Line 1455 of yacc.c  */
-#line 10140 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10161 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval)=INTERVAL_HOUR_MINUTE; }
     break;
 
-  case 1459:
+  case 1460:
 
 /* Line 1455 of yacc.c  */
-#line 10141 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10162 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval)=INTERVAL_HOUR_SECOND; }
     break;
 
-  case 1460:
+  case 1461:
 
 /* Line 1455 of yacc.c  */
-#line 10142 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10163 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; }
     break;
 
-  case 1461:
+  case 1462:
 
 /* Line 1455 of yacc.c  */
-#line 10143 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10164 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval)=INTERVAL_MINUTE_SECOND; }
     break;
 
-  case 1462:
+  case 1463:
 
 /* Line 1455 of yacc.c  */
-#line 10144 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10165 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; }
     break;
 
-  case 1463:
+  case 1464:
 
 /* Line 1455 of yacc.c  */
-#line 10145 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10166 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval)=INTERVAL_YEAR_MONTH; }
     break;
 
-  case 1464:
+  case 1465:
 
 /* Line 1455 of yacc.c  */
-#line 10149 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10170 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval_time_st)=INTERVAL_DAY; }
     break;
 
-  case 1465:
+  case 1466:
 
 /* Line 1455 of yacc.c  */
-#line 10150 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10171 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval_time_st)=INTERVAL_WEEK; }
     break;
 
-  case 1466:
+  case 1467:
 
 /* Line 1455 of yacc.c  */
-#line 10151 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10172 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval_time_st)=INTERVAL_HOUR; }
     break;
 
-  case 1467:
+  case 1468:
 
 /* Line 1455 of yacc.c  */
-#line 10152 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10173 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval_time_st)=INTERVAL_MINUTE; }
     break;
 
-  case 1468:
+  case 1469:
 
 /* Line 1455 of yacc.c  */
-#line 10153 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10174 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval_time_st)=INTERVAL_MONTH; }
     break;
 
-  case 1469:
+  case 1470:
 
 /* Line 1455 of yacc.c  */
-#line 10154 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10175 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval_time_st)=INTERVAL_QUARTER; }
     break;
 
-  case 1470:
+  case 1471:
 
 /* Line 1455 of yacc.c  */
-#line 10155 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10176 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval_time_st)=INTERVAL_SECOND; }
     break;
 
-  case 1471:
+  case 1472:
 
 /* Line 1455 of yacc.c  */
-#line 10156 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10177 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval_time_st)=INTERVAL_MICROSECOND; }
     break;
 
-  case 1472:
+  case 1473:
 
 /* Line 1455 of yacc.c  */
-#line 10157 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10178 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.interval_time_st)=INTERVAL_YEAR; }
     break;
 
-  case 1473:
+  case 1474:
 
 /* Line 1455 of yacc.c  */
-#line 10161 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10182 "/home/buildbot/git/sql/sql_yacc.yy"
     {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATE;}
     break;
 
-  case 1474:
+  case 1475:
 
 /* Line 1455 of yacc.c  */
-#line 10162 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10183 "/home/buildbot/git/sql/sql_yacc.yy"
     {(yyval.date_time_type)=MYSQL_TIMESTAMP_TIME;}
     break;
 
-  case 1475:
+  case 1476:
 
 /* Line 1455 of yacc.c  */
-#line 10163 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10184 "/home/buildbot/git/sql/sql_yacc.yy"
     {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;}
     break;
 
-  case 1476:
+  case 1477:
 
 /* Line 1455 of yacc.c  */
-#line 10164 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10185 "/home/buildbot/git/sql/sql_yacc.yy"
     {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;}
     break;
 
-  case 1480:
+  case 1481:
 
 /* Line 1455 of yacc.c  */
-#line 10174 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10195 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str_ptr)=0; }
     break;
 
-  case 1481:
+  case 1482:
 
 /* Line 1455 of yacc.c  */
-#line 10176 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10197 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.lex_str_ptr)= (LEX_STRING*) sql_memdup(&(yyvsp[(2) - (2)].lex_str),sizeof(LEX_STRING));
             if ((yyval.lex_str_ptr) == NULL)
@@ -31042,26 +31096,26 @@ yyreduce:
           }
     break;
 
-  case 1484:
+  case 1485:
 
 /* Line 1455 of yacc.c  */
-#line 10189 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10210 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->where= 0; }
     break;
 
-  case 1485:
+  case 1486:
 
 /* Line 1455 of yacc.c  */
-#line 10191 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10212 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->parsing_place= IN_WHERE;
           }
     break;
 
-  case 1486:
+  case 1487:
 
 /* Line 1455 of yacc.c  */
-#line 10195 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10216 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             SELECT_LEX *select= Select;
             select->where= normalize_cond((yyvsp[(3) - (3)].item));
@@ -31071,19 +31125,19 @@ yyreduce:
           }
     break;
 
-  case 1488:
+  case 1489:
 
 /* Line 1455 of yacc.c  */
-#line 10207 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10228 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->parsing_place= IN_HAVING;
           }
     break;
 
-  case 1489:
+  case 1490:
 
 /* Line 1455 of yacc.c  */
-#line 10211 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10232 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             SELECT_LEX *sel= Select;
             sel->having= normalize_cond((yyvsp[(3) - (3)].item));
@@ -31093,20 +31147,20 @@ yyreduce:
           }
     break;
 
-  case 1490:
+  case 1491:
 
 /* Line 1455 of yacc.c  */
-#line 10222 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10243 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->escape_used= TRUE;
             (yyval.item)= (yyvsp[(2) - (2)].item);
           }
     break;
 
-  case 1491:
+  case 1492:
 
 /* Line 1455 of yacc.c  */
-#line 10227 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10248 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->escape_used= FALSE;
             (yyval.item)= ((thd->variables.sql_mode & MODE_NO_BACKSLASH_ESCAPES) ?
@@ -31117,31 +31171,31 @@ yyreduce:
           }
     break;
 
-  case 1494:
+  case 1495:
 
 /* Line 1455 of yacc.c  */
-#line 10248 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10269 "/home/buildbot/git/sql/sql_yacc.yy"
     { if (add_group_to_list(thd, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
     break;
 
-  case 1495:
+  case 1496:
 
 /* Line 1455 of yacc.c  */
-#line 10250 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10271 "/home/buildbot/git/sql/sql_yacc.yy"
     { if (add_group_to_list(thd, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
     break;
 
-  case 1496:
+  case 1497:
 
 /* Line 1455 of yacc.c  */
-#line 10254 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10275 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1497:
+  case 1498:
 
 /* Line 1455 of yacc.c  */
-#line 10256 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10277 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               'WITH CUBE' is reserved in the MySQL syntax, but not implemented,
@@ -31163,10 +31217,10 @@ yyreduce:
           }
     break;
 
-  case 1498:
+  case 1499:
 
 /* Line 1455 of yacc.c  */
-#line 10276 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10297 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               'WITH ROLLUP' is needed for backward compatibility,
@@ -31186,10 +31240,10 @@ yyreduce:
           }
     break;
 
-  case 1502:
+  case 1503:
 
 /* Line 1455 of yacc.c  */
-#line 10310 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10331 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             bool ascending= ((yyvsp[(2) - (2)].num) == 1) ? true : false;
             if (add_order_to_list(thd, (yyvsp[(1) - (2)].item), ascending))
@@ -31197,10 +31251,10 @@ yyreduce:
           }
     break;
 
-  case 1505:
+  case 1506:
 
 /* Line 1455 of yacc.c  */
-#line 10328 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10349 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             SELECT_LEX *sel= lex->current_select;
@@ -31233,45 +31287,45 @@ yyreduce:
           }
     break;
 
-  case 1507:
+  case 1508:
 
 /* Line 1455 of yacc.c  */
-#line 10363 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10384 "/home/buildbot/git/sql/sql_yacc.yy"
     { if (add_order_to_list(thd, (yyvsp[(3) - (4)].item),(bool) (yyvsp[(4) - (4)].num))) MYSQL_YYABORT; }
     break;
 
-  case 1508:
+  case 1509:
 
 /* Line 1455 of yacc.c  */
-#line 10365 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10386 "/home/buildbot/git/sql/sql_yacc.yy"
     { if (add_order_to_list(thd, (yyvsp[(1) - (2)].item),(bool) (yyvsp[(2) - (2)].num))) MYSQL_YYABORT; }
     break;
 
-  case 1509:
+  case 1510:
 
 /* Line 1455 of yacc.c  */
-#line 10369 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10390 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num) =  1; }
     break;
 
-  case 1510:
+  case 1511:
 
 /* Line 1455 of yacc.c  */
-#line 10370 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10391 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num) =1; }
     break;
 
-  case 1511:
+  case 1512:
 
 /* Line 1455 of yacc.c  */
-#line 10371 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10392 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num) =0; }
     break;
 
-  case 1512:
+  case 1513:
 
 /* Line 1455 of yacc.c  */
-#line 10376 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10397 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             SELECT_LEX *sel= lex->current_select;
@@ -31281,58 +31335,58 @@ yyreduce:
           }
     break;
 
-  case 1513:
+  case 1514:
 
 /* Line 1455 of yacc.c  */
-#line 10383 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10404 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1514:
+  case 1515:
 
 /* Line 1455 of yacc.c  */
-#line 10387 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10408 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1515:
+  case 1516:
 
 /* Line 1455 of yacc.c  */
-#line 10388 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10409 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1516:
+  case 1517:
 
 /* Line 1455 of yacc.c  */
-#line 10393 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10414 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT);
           }
     break;
 
-  case 1517:
+  case 1518:
 
 /* Line 1455 of yacc.c  */
-#line 10397 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10418 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT);
           }
     break;
 
-  case 1518:
+  case 1519:
 
 /* Line 1455 of yacc.c  */
-#line 10401 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10422 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->set_stmt_unsafe(LEX::BINLOG_STMT_UNSAFE_LIMIT);
           }
     break;
 
-  case 1519:
+  case 1520:
 
 /* Line 1455 of yacc.c  */
-#line 10408 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10429 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             SELECT_LEX *sel= Select;
             sel->select_limit= (yyvsp[(1) - (1)].item);
@@ -31341,10 +31395,10 @@ yyreduce:
           }
     break;
 
-  case 1520:
+  case 1521:
 
 /* Line 1455 of yacc.c  */
-#line 10415 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10436 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             SELECT_LEX *sel= Select;
             sel->select_limit= (yyvsp[(3) - (3)].item);
@@ -31353,10 +31407,10 @@ yyreduce:
           }
     break;
 
-  case 1521:
+  case 1522:
 
 /* Line 1455 of yacc.c  */
-#line 10422 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10443 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             SELECT_LEX *sel= Select;
             sel->select_limit= (yyvsp[(1) - (3)].item);
@@ -31365,10 +31419,10 @@ yyreduce:
           }
     break;
 
-  case 1522:
+  case 1523:
 
 /* Line 1455 of yacc.c  */
-#line 10432 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10453 "/home/buildbot/git/sql/sql_yacc.yy"
     {
           Item_splocal *splocal;
           LEX *lex= thd->lex;
@@ -31403,19 +31457,19 @@ yyreduce:
         }
     break;
 
-  case 1523:
+  case 1524:
 
 /* Line 1455 of yacc.c  */
-#line 10465 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10486 "/home/buildbot/git/sql/sql_yacc.yy"
     {
           ((Item_param *) (yyvsp[(1) - (1)].item))->limit_clause_param= TRUE;
         }
     break;
 
-  case 1524:
+  case 1525:
 
 /* Line 1455 of yacc.c  */
-#line 10469 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10490 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
             if ((yyval.item) == NULL)
@@ -31423,10 +31477,10 @@ yyreduce:
           }
     break;
 
-  case 1525:
+  case 1526:
 
 /* Line 1455 of yacc.c  */
-#line 10475 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10496 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
             if ((yyval.item) == NULL)
@@ -31434,10 +31488,10 @@ yyreduce:
           }
     break;
 
-  case 1526:
+  case 1527:
 
 /* Line 1455 of yacc.c  */
-#line 10481 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10502 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
             if ((yyval.item) == NULL)
@@ -31445,30 +31499,30 @@ yyreduce:
           }
     break;
 
-  case 1527:
+  case 1528:
 
 /* Line 1455 of yacc.c  */
-#line 10490 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10511 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             LEX *lex=Lex;
             lex->limit_rows_examined= (yyvsp[(1) - (1)].item);
           }
     break;
 
-  case 1528:
+  case 1529:
 
 /* Line 1455 of yacc.c  */
-#line 10497 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10518 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->current_select->select_limit= 0;
           }
     break;
 
-  case 1529:
+  case 1530:
 
 /* Line 1455 of yacc.c  */
-#line 10502 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10523 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             SELECT_LEX *sel= Select;
             sel->select_limit= (yyvsp[(2) - (2)].item);
@@ -31477,213 +31531,213 @@ yyreduce:
           }
     break;
 
-  case 1530:
-
-/* Line 1455 of yacc.c  */
-#line 10508 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; }
-    break;
-
   case 1531:
 
 /* Line 1455 of yacc.c  */
-#line 10509 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10529 "/home/buildbot/git/sql/sql_yacc.yy"
     { my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; }
     break;
 
   case 1532:
 
 /* Line 1455 of yacc.c  */
-#line 10513 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { int error; (yyval.num)= (int) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
+#line 10530 "/home/buildbot/git/sql/sql_yacc.yy"
+    { my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; }
     break;
 
   case 1533:
 
 /* Line 1455 of yacc.c  */
-#line 10514 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { int error; (yyval.num)= -(int) my_strtoll10((yyvsp[(2) - (2)].lex_str).str, (char**) 0, &error); }
+#line 10534 "/home/buildbot/git/sql/sql_yacc.yy"
+    { int error; (yyval.num)= (int) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1534:
 
 /* Line 1455 of yacc.c  */
-#line 10515 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10535 "/home/buildbot/git/sql/sql_yacc.yy"
     { int error; (yyval.num)= -(int) my_strtoll10((yyvsp[(2) - (2)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1535:
 
 /* Line 1455 of yacc.c  */
-#line 10519 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
+#line 10536 "/home/buildbot/git/sql/sql_yacc.yy"
+    { int error; (yyval.num)= -(int) my_strtoll10((yyvsp[(2) - (2)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1536:
 
 /* Line 1455 of yacc.c  */
-#line 10520 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { (yyval.ulong_num)= (ulong) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
+#line 10540 "/home/buildbot/git/sql/sql_yacc.yy"
+    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1537:
 
 /* Line 1455 of yacc.c  */
-#line 10521 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
+#line 10541 "/home/buildbot/git/sql/sql_yacc.yy"
+    { (yyval.ulong_num)= (ulong) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
     break;
 
   case 1538:
 
 /* Line 1455 of yacc.c  */
-#line 10522 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10542 "/home/buildbot/git/sql/sql_yacc.yy"
     { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1539:
 
 /* Line 1455 of yacc.c  */
-#line 10523 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10543 "/home/buildbot/git/sql/sql_yacc.yy"
     { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1540:
 
 /* Line 1455 of yacc.c  */
-#line 10524 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10544 "/home/buildbot/git/sql/sql_yacc.yy"
     { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1541:
 
 /* Line 1455 of yacc.c  */
-#line 10528 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10545 "/home/buildbot/git/sql/sql_yacc.yy"
     { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1542:
 
 /* Line 1455 of yacc.c  */
-#line 10529 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { (yyval.ulong_num)= (ulong) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
+#line 10549 "/home/buildbot/git/sql/sql_yacc.yy"
+    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1543:
 
 /* Line 1455 of yacc.c  */
-#line 10530 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
+#line 10550 "/home/buildbot/git/sql/sql_yacc.yy"
+    { (yyval.ulong_num)= (ulong) strtol((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
     break;
 
   case 1544:
 
 /* Line 1455 of yacc.c  */
-#line 10531 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10551 "/home/buildbot/git/sql/sql_yacc.yy"
     { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1545:
 
 /* Line 1455 of yacc.c  */
-#line 10532 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { MYSQL_YYABORT; }
+#line 10552 "/home/buildbot/git/sql/sql_yacc.yy"
+    { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1546:
 
 /* Line 1455 of yacc.c  */
-#line 10536 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
+#line 10553 "/home/buildbot/git/sql/sql_yacc.yy"
+    { MYSQL_YYABORT; }
     break;
 
   case 1547:
 
 /* Line 1455 of yacc.c  */
-#line 10537 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10557 "/home/buildbot/git/sql/sql_yacc.yy"
     { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1548:
 
 /* Line 1455 of yacc.c  */
-#line 10538 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10558 "/home/buildbot/git/sql/sql_yacc.yy"
     { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1549:
 
 /* Line 1455 of yacc.c  */
-#line 10539 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10559 "/home/buildbot/git/sql/sql_yacc.yy"
     { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1550:
 
 /* Line 1455 of yacc.c  */
-#line 10540 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10560 "/home/buildbot/git/sql/sql_yacc.yy"
     { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1551:
 
 /* Line 1455 of yacc.c  */
-#line 10544 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10561 "/home/buildbot/git/sql/sql_yacc.yy"
     { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1552:
 
 /* Line 1455 of yacc.c  */
-#line 10545 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10565 "/home/buildbot/git/sql/sql_yacc.yy"
     { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1553:
 
 /* Line 1455 of yacc.c  */
-#line 10546 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { (yyval.ulonglong_number)= strtoull((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
+#line 10566 "/home/buildbot/git/sql/sql_yacc.yy"
+    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1554:
 
 /* Line 1455 of yacc.c  */
-#line 10547 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
+#line 10567 "/home/buildbot/git/sql/sql_yacc.yy"
+    { (yyval.ulonglong_number)= strtoull((yyvsp[(1) - (1)].lex_str).str, (char**) 0, 16); }
     break;
 
   case 1555:
 
 /* Line 1455 of yacc.c  */
-#line 10548 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    { MYSQL_YYABORT; }
+#line 10568 "/home/buildbot/git/sql/sql_yacc.yy"
+    { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[(1) - (1)].lex_str).str, (char**) 0, &error); }
     break;
 
   case 1556:
 
 /* Line 1455 of yacc.c  */
-#line 10553 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10569 "/home/buildbot/git/sql/sql_yacc.yy"
+    { MYSQL_YYABORT; }
+    break;
+
+  case 1557:
+
+/* Line 1455 of yacc.c  */
+#line 10574 "/home/buildbot/git/sql/sql_yacc.yy"
     { my_parse_error(ER(ER_ONLY_INTEGERS_ALLOWED)); }
     break;
 
-  case 1559:
+  case 1560:
 
 /* Line 1455 of yacc.c  */
-#line 10562 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10583 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.choice)= (yyvsp[(1) - (1)].ulong_num) != 0 ? HA_CHOICE_YES : HA_CHOICE_NO; }
     break;
 
-  case 1560:
+  case 1561:
 
 /* Line 1455 of yacc.c  */
-#line 10563 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10584 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.choice)= HA_CHOICE_UNDEF; }
     break;
 
-  case 1562:
+  case 1563:
 
 /* Line 1455 of yacc.c  */
-#line 10569 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10590 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
 
@@ -31712,24 +31766,24 @@ yyreduce:
           }
     break;
 
-  case 1564:
+  case 1565:
 
 /* Line 1455 of yacc.c  */
-#line 10599 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10620 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1565:
+  case 1566:
 
 /* Line 1455 of yacc.c  */
-#line 10600 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10621 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1568:
+  case 1569:
 
 /* Line 1455 of yacc.c  */
-#line 10610 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10631 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_proc_to_list(thd, (yyvsp[(2) - (3)].item)))
               MYSQL_YYABORT;
@@ -31738,10 +31792,10 @@ yyreduce:
           }
     break;
 
-  case 1569:
+  case 1570:
 
 /* Line 1455 of yacc.c  */
-#line 10619 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10640 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (!lex->describe && (!(lex->result= new select_dumpvar())))
@@ -31749,24 +31803,24 @@ yyreduce:
           }
     break;
 
-  case 1570:
+  case 1571:
 
 /* Line 1455 of yacc.c  */
-#line 10625 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10646 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1572:
+  case 1573:
 
 /* Line 1455 of yacc.c  */
-#line 10630 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10651 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1573:
+  case 1574:
 
 /* Line 1455 of yacc.c  */
-#line 10635 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10656 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (lex->result) 
@@ -31787,10 +31841,10 @@ yyreduce:
           }
     break;
 
-  case 1574:
+  case 1575:
 
 /* Line 1455 of yacc.c  */
-#line 10654 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10675 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             sp_variable_t *t;
@@ -31821,10 +31875,10 @@ yyreduce:
           }
     break;
 
-  case 1575:
+  case 1576:
 
 /* Line 1455 of yacc.c  */
-#line 10686 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10707 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (! Lex->parsing_options.allows_select_into)
             {
@@ -31834,10 +31888,10 @@ yyreduce:
           }
     break;
 
-  case 1577:
+  case 1578:
 
 /* Line 1455 of yacc.c  */
-#line 10698 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10719 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
@@ -31847,17 +31901,17 @@ yyreduce:
           }
     break;
 
-  case 1578:
+  case 1579:
 
 /* Line 1455 of yacc.c  */
-#line 10706 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10727 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->exchange->cs= (yyvsp[(4) - (4)].charset); }
     break;
 
-  case 1580:
+  case 1581:
 
 /* Line 1455 of yacc.c  */
-#line 10709 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10730 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (!lex->describe)
@@ -31871,19 +31925,19 @@ yyreduce:
           }
     break;
 
-  case 1581:
+  case 1582:
 
 /* Line 1455 of yacc.c  */
-#line 10721 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10742 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->uncacheable(UNCACHEABLE_SIDEEFFECT);
           }
     break;
 
-  case 1582:
+  case 1583:
 
 /* Line 1455 of yacc.c  */
-#line 10732 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10753 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_DO;
@@ -31891,19 +31945,19 @@ yyreduce:
           }
     break;
 
-  case 1583:
+  case 1584:
 
 /* Line 1455 of yacc.c  */
-#line 10738 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10759 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->insert_list= (yyvsp[(3) - (3)].item_list);
           }
     break;
 
-  case 1584:
+  case 1585:
 
 /* Line 1455 of yacc.c  */
-#line 10749 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10770 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_DROP_TABLE;
@@ -31914,24 +31968,24 @@ yyreduce:
           }
     break;
 
-  case 1585:
+  case 1586:
 
 /* Line 1455 of yacc.c  */
-#line 10758 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10779 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1586:
+  case 1587:
 
 /* Line 1455 of yacc.c  */
-#line 10759 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10780 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1587:
+  case 1588:
 
 /* Line 1455 of yacc.c  */
-#line 10760 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10781 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             Alter_drop *ad= new Alter_drop(Alter_drop::KEY, (yyvsp[(3) - (6)].lex_str).str);
@@ -31949,10 +32003,10 @@ yyreduce:
           }
     break;
 
-  case 1588:
+  case 1589:
 
 /* Line 1455 of yacc.c  */
-#line 10776 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10797 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_DROP_DB;
@@ -31961,10 +32015,10 @@ yyreduce:
           }
     break;
 
-  case 1589:
+  case 1590:
 
 /* Line 1455 of yacc.c  */
-#line 10783 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10804 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             sp_name *spname;
@@ -31988,10 +32042,10 @@ yyreduce:
           }
     break;
 
-  case 1590:
+  case 1591:
 
 /* Line 1455 of yacc.c  */
-#line 10805 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10826 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             LEX_STRING db= {0, 0};
@@ -32013,10 +32067,10 @@ yyreduce:
           }
     break;
 
-  case 1591:
+  case 1592:
 
 /* Line 1455 of yacc.c  */
-#line 10825 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10846 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (lex->sphead)
@@ -32030,19 +32084,19 @@ yyreduce:
           }
     break;
 
-  case 1592:
+  case 1593:
 
 /* Line 1455 of yacc.c  */
-#line 10837 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10858 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_DROP_USER;
           }
     break;
 
-  case 1593:
+  case 1594:
 
 /* Line 1455 of yacc.c  */
-#line 10841 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10862 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_DROP_VIEW;
@@ -32052,17 +32106,17 @@ yyreduce:
           }
     break;
 
-  case 1594:
+  case 1595:
 
 /* Line 1455 of yacc.c  */
-#line 10849 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10870 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1595:
+  case 1596:
 
 /* Line 1455 of yacc.c  */
-#line 10851 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10872 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->drop_if_exists= (yyvsp[(3) - (4)].num);
             Lex->spname= (yyvsp[(4) - (4)].spname);
@@ -32070,10 +32124,10 @@ yyreduce:
           }
     break;
 
-  case 1596:
+  case 1597:
 
 /* Line 1455 of yacc.c  */
-#line 10857 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10878 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_DROP_TRIGGER;
@@ -32082,30 +32136,30 @@ yyreduce:
           }
     break;
 
-  case 1597:
+  case 1598:
 
 /* Line 1455 of yacc.c  */
-#line 10864 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10885 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->ts_cmd_type= DROP_TABLESPACE;
           }
     break;
 
-  case 1598:
+  case 1599:
 
 /* Line 1455 of yacc.c  */
-#line 10869 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10890 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->alter_tablespace_info->ts_cmd_type= DROP_LOGFILE_GROUP;
           }
     break;
 
-  case 1599:
+  case 1600:
 
 /* Line 1455 of yacc.c  */
-#line 10874 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10895 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_DROP_SERVER;
             Lex->drop_if_exists= (yyvsp[(3) - (4)].num);
@@ -32114,10 +32168,10 @@ yyreduce:
           }
     break;
 
-  case 1602:
+  case 1603:
 
 /* Line 1455 of yacc.c  */
-#line 10889 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10910 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!Select->add_table_to_list(thd, (yyvsp[(1) - (1)].table), NULL,
                                            TL_OPTION_UPDATING,
@@ -32127,10 +32181,10 @@ yyreduce:
           }
     break;
 
-  case 1605:
+  case 1606:
 
 /* Line 1455 of yacc.c  */
-#line 10905 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10926 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!Select->add_table_to_list(thd, (yyvsp[(1) - (1)].table), NULL,
                                            TL_OPTION_UPDATING | TL_OPTION_ALIAS,
@@ -32140,38 +32194,38 @@ yyreduce:
           }
     break;
 
-  case 1606:
+  case 1607:
 
 /* Line 1455 of yacc.c  */
-#line 10915 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10936 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0; }
     break;
 
-  case 1607:
+  case 1608:
 
 /* Line 1455 of yacc.c  */
-#line 10916 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10937 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 1; }
     break;
 
-  case 1608:
+  case 1609:
 
 /* Line 1455 of yacc.c  */
-#line 10920 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10941 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0; }
     break;
 
-  case 1609:
+  case 1610:
 
 /* Line 1455 of yacc.c  */
-#line 10921 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10942 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 1; }
     break;
 
-  case 1610:
+  case 1611:
 
 /* Line 1455 of yacc.c  */
-#line 10929 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10950 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_INSERT;
@@ -32180,27 +32234,27 @@ yyreduce:
           }
     break;
 
-  case 1611:
+  case 1612:
 
 /* Line 1455 of yacc.c  */
-#line 10937 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10958 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->set_lock_for_tables((yyvsp[(3) - (5)].lock_type));
             Lex->current_select= &Lex->select_lex;
           }
     break;
 
-  case 1612:
+  case 1613:
 
 /* Line 1455 of yacc.c  */
-#line 10942 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10963 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1613:
+  case 1614:
 
 /* Line 1455 of yacc.c  */
-#line 10947 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10968 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_REPLACE;
@@ -32209,27 +32263,27 @@ yyreduce:
           }
     break;
 
-  case 1614:
+  case 1615:
 
 /* Line 1455 of yacc.c  */
-#line 10954 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10975 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->set_lock_for_tables((yyvsp[(3) - (4)].lock_type));
             Lex->current_select= &Lex->select_lex;
           }
     break;
 
-  case 1615:
+  case 1616:
 
 /* Line 1455 of yacc.c  */
-#line 10959 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10980 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1616:
+  case 1617:
 
 /* Line 1455 of yacc.c  */
-#line 10964 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10985 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               If it is SP we do not allow insert optimisation when result of
@@ -32240,17 +32294,17 @@ yyreduce:
           }
     break;
 
-  case 1617:
+  case 1618:
 
 /* Line 1455 of yacc.c  */
-#line 10972 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10993 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
     break;
 
-  case 1618:
+  case 1619:
 
 /* Line 1455 of yacc.c  */
-#line 10974 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 10995 "/home/buildbot/git/sql/sql_yacc.yy"
     {
           Lex->keyword_delayed_begin_offset= (uint)(YYLIP->get_tok_start() -
                                                     thd->query());
@@ -32260,24 +32314,24 @@ yyreduce:
         }
     break;
 
-  case 1619:
+  case 1620:
 
 /* Line 1455 of yacc.c  */
-#line 10981 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11002 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lock_type)= TL_WRITE; }
     break;
 
-  case 1620:
+  case 1621:
 
 /* Line 1455 of yacc.c  */
-#line 10985 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11006 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lock_type)= (yyvsp[(1) - (1)].lock_type); }
     break;
 
-  case 1621:
+  case 1622:
 
 /* Line 1455 of yacc.c  */
-#line 10987 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11008 "/home/buildbot/git/sql/sql_yacc.yy"
     {
           Lex->keyword_delayed_begin_offset= (uint)(YYLIP->get_tok_start() -
                                                     thd->query());
@@ -32287,24 +32341,24 @@ yyreduce:
         }
     break;
 
-  case 1622:
+  case 1623:
 
 /* Line 1455 of yacc.c  */
-#line 10997 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11018 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1623:
+  case 1624:
 
 /* Line 1455 of yacc.c  */
-#line 10998 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11019 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1624:
+  case 1625:
 
 /* Line 1455 of yacc.c  */
-#line 11003 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11024 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->field_list.empty();
@@ -32313,31 +32367,31 @@ yyreduce:
           }
     break;
 
-  case 1625:
+  case 1626:
 
 /* Line 1455 of yacc.c  */
-#line 11011 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11032 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1626:
+  case 1627:
 
 /* Line 1455 of yacc.c  */
-#line 11012 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11033 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1627:
+  case 1628:
 
 /* Line 1455 of yacc.c  */
-#line 11013 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11034 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1628:
+  case 1629:
 
 /* Line 1455 of yacc.c  */
-#line 11015 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11036 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (!(lex->insert_list = new List_item) ||
@@ -32346,66 +32400,66 @@ yyreduce:
           }
     break;
 
-  case 1630:
+  case 1631:
 
 /* Line 1455 of yacc.c  */
-#line 11025 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11046 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->field_list.push_back((yyvsp[(3) - (3)].item)); }
     break;
 
-  case 1631:
+  case 1632:
 
 /* Line 1455 of yacc.c  */
-#line 11026 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11047 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->field_list.push_back((yyvsp[(1) - (1)].item)); }
     break;
 
-  case 1632:
+  case 1633:
 
 /* Line 1455 of yacc.c  */
-#line 11030 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11051 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1633:
+  case 1634:
 
 /* Line 1455 of yacc.c  */
-#line 11031 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11052 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1634:
+  case 1635:
 
 /* Line 1455 of yacc.c  */
-#line 11033 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11054 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->set_braces(0);}
     break;
 
-  case 1635:
+  case 1636:
 
 /* Line 1455 of yacc.c  */
-#line 11034 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11055 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1636:
+  case 1637:
 
 /* Line 1455 of yacc.c  */
-#line 11036 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11057 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->set_braces(1);}
     break;
 
-  case 1637:
+  case 1638:
 
 /* Line 1455 of yacc.c  */
-#line 11037 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11058 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1642:
+  case 1643:
 
 /* Line 1455 of yacc.c  */
-#line 11052 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11073 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (lex->field_list.push_back((yyvsp[(1) - (3)].item)) ||
@@ -32414,48 +32468,48 @@ yyreduce:
           }
     break;
 
-  case 1643:
+  case 1644:
 
 /* Line 1455 of yacc.c  */
-#line 11061 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11082 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1644:
+  case 1645:
 
 /* Line 1455 of yacc.c  */
-#line 11062 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11083 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1645:
+  case 1646:
 
 /* Line 1455 of yacc.c  */
-#line 11066 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11087 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1646:
+  case 1647:
 
 /* Line 1455 of yacc.c  */
-#line 11067 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11088 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1647:
+  case 1648:
 
 /* Line 1455 of yacc.c  */
-#line 11072 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11093 "/home/buildbot/git/sql/sql_yacc.yy"
     {
               if (!(Lex->insert_list = new List_item))
                 MYSQL_YYABORT;
           }
     break;
 
-  case 1648:
+  case 1649:
 
 /* Line 1455 of yacc.c  */
-#line 11077 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11098 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (lex->many_values.push_back(lex->insert_list))
@@ -32463,44 +32517,44 @@ yyreduce:
           }
     break;
 
-  case 1649:
+  case 1650:
 
 /* Line 1455 of yacc.c  */
-#line 11085 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11106 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1651:
+  case 1652:
 
 /* Line 1455 of yacc.c  */
-#line 11091 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11112 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->insert_list->push_back((yyvsp[(3) - (3)].item)))
               MYSQL_YYABORT;
           }
     break;
 
-  case 1652:
+  case 1653:
 
 /* Line 1455 of yacc.c  */
-#line 11096 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11117 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->insert_list->push_back((yyvsp[(1) - (1)].item)))
               MYSQL_YYABORT;
           }
     break;
 
-  case 1653:
+  case 1654:
 
 /* Line 1455 of yacc.c  */
-#line 11103 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11124 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)= (yyvsp[(1) - (1)].item);}
     break;
 
-  case 1654:
+  case 1655:
 
 /* Line 1455 of yacc.c  */
-#line 11105 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11126 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_default_value(Lex->current_context());
             if ((yyval.item) == NULL)
@@ -32508,17 +32562,17 @@ yyreduce:
           }
     break;
 
-  case 1656:
+  case 1657:
 
 /* Line 1455 of yacc.c  */
-#line 11114 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11135 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->duplicates= DUP_UPDATE; }
     break;
 
-  case 1658:
+  case 1659:
 
 /* Line 1455 of yacc.c  */
-#line 11122 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11143 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             mysql_init_select(lex);
@@ -32527,10 +32581,10 @@ yyreduce:
           }
     break;
 
-  case 1659:
+  case 1660:
 
 /* Line 1455 of yacc.c  */
-#line 11130 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11151 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->select_lex.table_list.elements > 1)
@@ -32551,27 +32605,27 @@ yyreduce:
           }
     break;
 
-  case 1660:
+  case 1661:
 
 /* Line 1455 of yacc.c  */
-#line 11148 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11169 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1663:
+  case 1664:
 
 /* Line 1455 of yacc.c  */
-#line 11158 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11179 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_item_to_list(thd, (yyvsp[(1) - (3)].item)) || add_value_to_list(thd, (yyvsp[(3) - (3)].item)))
               MYSQL_YYABORT;
           }
     break;
 
-  case 1666:
+  case 1667:
 
 /* Line 1455 of yacc.c  */
-#line 11171 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11192 "/home/buildbot/git/sql/sql_yacc.yy"
     {
           LEX *lex= Lex;
           if (lex->update_list.push_back((yyvsp[(1) - (3)].item)) || 
@@ -32580,24 +32634,24 @@ yyreduce:
           }
     break;
 
-  case 1667:
+  case 1668:
 
 /* Line 1455 of yacc.c  */
-#line 11180 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11201 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lock_type)= TL_WRITE_DEFAULT; }
     break;
 
-  case 1668:
+  case 1669:
 
 /* Line 1455 of yacc.c  */
-#line 11181 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11202 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
     break;
 
-  case 1669:
+  case 1670:
 
 /* Line 1455 of yacc.c  */
-#line 11188 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11209 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_DELETE;
@@ -32610,10 +32664,10 @@ yyreduce:
           }
     break;
 
-  case 1671:
+  case 1672:
 
 /* Line 1455 of yacc.c  */
-#line 11203 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11224 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!Select->add_table_to_list(thd, (yyvsp[(2) - (2)].table), NULL, TL_OPTION_UPDATING,
                                            YYPS->m_lock_type,
@@ -32624,17 +32678,17 @@ yyreduce:
           }
     break;
 
-  case 1672:
+  case 1673:
 
 /* Line 1455 of yacc.c  */
-#line 11212 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11233 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1673:
+  case 1674:
 
 /* Line 1455 of yacc.c  */
-#line 11214 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11235 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             mysql_init_multi_delete(Lex);
             YYPS->m_lock_type= TL_READ_DEFAULT;
@@ -32642,20 +32696,20 @@ yyreduce:
           }
     break;
 
-  case 1674:
+  case 1675:
 
 /* Line 1455 of yacc.c  */
-#line 11220 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11241 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (multi_delete_set_locks_and_link_aux_tables(Lex))
               MYSQL_YYABORT;
           }
     break;
 
-  case 1675:
+  case 1676:
 
 /* Line 1455 of yacc.c  */
-#line 11225 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11246 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             mysql_init_multi_delete(Lex);
             YYPS->m_lock_type= TL_READ_DEFAULT;
@@ -32663,20 +32717,20 @@ yyreduce:
           }
     break;
 
-  case 1676:
+  case 1677:
 
 /* Line 1455 of yacc.c  */
-#line 11231 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11252 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (multi_delete_set_locks_and_link_aux_tables(Lex))
               MYSQL_YYABORT;
           }
     break;
 
-  case 1679:
+  case 1680:
 
 /* Line 1455 of yacc.c  */
-#line 11244 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11265 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Table_ident *ti= new Table_ident((yyvsp[(1) - (2)].lex_str));
             if (ti == NULL)
@@ -32691,10 +32745,10 @@ yyreduce:
           }
     break;
 
-  case 1680:
+  case 1681:
 
 /* Line 1455 of yacc.c  */
-#line 11257 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11278 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Table_ident *ti= new Table_ident(thd, (yyvsp[(1) - (4)].lex_str), (yyvsp[(3) - (4)].lex_str), 0);
             if (ti == NULL)
@@ -32709,59 +32763,59 @@ yyreduce:
           }
     break;
 
-  case 1681:
+  case 1682:
 
 /* Line 1455 of yacc.c  */
-#line 11272 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11293 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1682:
+  case 1683:
 
 /* Line 1455 of yacc.c  */
-#line 11273 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11294 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1683:
+  case 1684:
 
 /* Line 1455 of yacc.c  */
-#line 11277 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11298 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1684:
+  case 1685:
 
 /* Line 1455 of yacc.c  */
-#line 11278 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11299 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1685:
+  case 1686:
 
 /* Line 1455 of yacc.c  */
-#line 11282 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11303 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->options|= OPTION_QUICK; }
     break;
 
-  case 1686:
+  case 1687:
 
 /* Line 1455 of yacc.c  */
-#line 11283 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11304 "/home/buildbot/git/sql/sql_yacc.yy"
     { YYPS->m_lock_type= TL_WRITE_LOW_PRIORITY; }
     break;
 
-  case 1687:
+  case 1688:
 
 /* Line 1455 of yacc.c  */
-#line 11284 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11305 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ignore= 1; }
     break;
 
-  case 1688:
+  case 1689:
 
 /* Line 1455 of yacc.c  */
-#line 11289 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11310 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX* lex= Lex;
             lex->sql_command= SQLCOM_TRUNCATE;
@@ -32774,10 +32828,10 @@ yyreduce:
           }
     break;
 
-  case 1689:
+  case 1690:
 
 /* Line 1455 of yacc.c  */
-#line 11300 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11321 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX* lex= thd->lex;
             DBUG_ASSERT(!lex->m_stmt);
@@ -32787,109 +32841,109 @@ yyreduce:
           }
     break;
 
-  case 1696:
+  case 1697:
 
 /* Line 1455 of yacc.c  */
-#line 11324 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11345 "/home/buildbot/git/sql/sql_yacc.yy"
     {
       Lex->profile_options|= PROFILE_CPU;
     }
     break;
 
-  case 1697:
+  case 1698:
 
 /* Line 1455 of yacc.c  */
-#line 11328 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11349 "/home/buildbot/git/sql/sql_yacc.yy"
     {
       Lex->profile_options|= PROFILE_MEMORY;
     }
     break;
 
-  case 1698:
+  case 1699:
 
 /* Line 1455 of yacc.c  */
-#line 11332 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11353 "/home/buildbot/git/sql/sql_yacc.yy"
     {
       Lex->profile_options|= PROFILE_BLOCK_IO;
     }
     break;
 
-  case 1699:
+  case 1700:
 
 /* Line 1455 of yacc.c  */
-#line 11336 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11357 "/home/buildbot/git/sql/sql_yacc.yy"
     {
       Lex->profile_options|= PROFILE_CONTEXT;
     }
     break;
 
-  case 1700:
+  case 1701:
 
 /* Line 1455 of yacc.c  */
-#line 11340 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11361 "/home/buildbot/git/sql/sql_yacc.yy"
     {
       Lex->profile_options|= PROFILE_PAGE_FAULTS;
     }
     break;
 
-  case 1701:
+  case 1702:
 
 /* Line 1455 of yacc.c  */
-#line 11344 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11365 "/home/buildbot/git/sql/sql_yacc.yy"
     {
       Lex->profile_options|= PROFILE_IPC;
     }
     break;
 
-  case 1702:
+  case 1703:
 
 /* Line 1455 of yacc.c  */
-#line 11348 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11369 "/home/buildbot/git/sql/sql_yacc.yy"
     {
       Lex->profile_options|= PROFILE_SWAPS;
     }
     break;
 
-  case 1703:
+  case 1704:
 
 /* Line 1455 of yacc.c  */
-#line 11352 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11373 "/home/buildbot/git/sql/sql_yacc.yy"
     {
       Lex->profile_options|= PROFILE_SOURCE;
     }
     break;
 
-  case 1704:
+  case 1705:
 
 /* Line 1455 of yacc.c  */
-#line 11356 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11377 "/home/buildbot/git/sql/sql_yacc.yy"
     {
       Lex->profile_options|= PROFILE_ALL;
     }
     break;
 
-  case 1705:
+  case 1706:
 
 /* Line 1455 of yacc.c  */
-#line 11363 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11384 "/home/buildbot/git/sql/sql_yacc.yy"
     {
       Lex->profile_query_id= 0;
     }
     break;
 
-  case 1706:
+  case 1707:
 
 /* Line 1455 of yacc.c  */
-#line 11367 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11388 "/home/buildbot/git/sql/sql_yacc.yy"
     {
       Lex->profile_query_id= atoi((yyvsp[(3) - (3)].lex_str).str);
     }
     break;
 
-  case 1707:
+  case 1708:
 
 /* Line 1455 of yacc.c  */
-#line 11376 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11397 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->wild=0;
@@ -32899,19 +32953,19 @@ yyreduce:
           }
     break;
 
-  case 1708:
+  case 1709:
 
 /* Line 1455 of yacc.c  */
-#line 11384 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11405 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->parsing_place= NO_MATTER;
           }
     break;
 
-  case 1709:
+  case 1710:
 
 /* Line 1455 of yacc.c  */
-#line 11391 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11412 "/home/buildbot/git/sql/sql_yacc.yy"
     {
              LEX *lex= Lex;
              lex->sql_command= SQLCOM_SHOW_DATABASES;
@@ -32920,10 +32974,10 @@ yyreduce:
            }
     break;
 
-  case 1710:
+  case 1711:
 
 /* Line 1455 of yacc.c  */
-#line 11398 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11419 "/home/buildbot/git/sql/sql_yacc.yy"
     {
              LEX *lex= Lex;
              lex->sql_command= SQLCOM_SHOW_TABLES;
@@ -32933,10 +32987,10 @@ yyreduce:
            }
     break;
 
-  case 1711:
+  case 1712:
 
 /* Line 1455 of yacc.c  */
-#line 11406 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11427 "/home/buildbot/git/sql/sql_yacc.yy"
     {
              LEX *lex= Lex;
              lex->sql_command= SQLCOM_SHOW_TRIGGERS;
@@ -32946,10 +33000,10 @@ yyreduce:
            }
     break;
 
-  case 1712:
+  case 1713:
 
 /* Line 1455 of yacc.c  */
-#line 11414 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11435 "/home/buildbot/git/sql/sql_yacc.yy"
     {
              LEX *lex= Lex;
              lex->sql_command= SQLCOM_SHOW_EVENTS;
@@ -32959,10 +33013,10 @@ yyreduce:
            }
     break;
 
-  case 1713:
+  case 1714:
 
 /* Line 1455 of yacc.c  */
-#line 11422 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11443 "/home/buildbot/git/sql/sql_yacc.yy"
     {
              LEX *lex= Lex;
              lex->sql_command= SQLCOM_SHOW_TABLE_STATUS;
@@ -32972,10 +33026,10 @@ yyreduce:
            }
     break;
 
-  case 1714:
+  case 1715:
 
 /* Line 1455 of yacc.c  */
-#line 11430 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11451 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_OPEN_TABLES;
@@ -32985,10 +33039,10 @@ yyreduce:
           }
     break;
 
-  case 1715:
+  case 1716:
 
 /* Line 1455 of yacc.c  */
-#line 11438 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11459 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_PLUGINS;
@@ -32997,24 +33051,24 @@ yyreduce:
           }
     break;
 
-  case 1716:
+  case 1717:
 
 /* Line 1455 of yacc.c  */
-#line 11445 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11466 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_info.db_type= (yyvsp[(2) - (3)].db_type); }
     break;
 
-  case 1717:
+  case 1718:
 
 /* Line 1455 of yacc.c  */
-#line 11447 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11468 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_info.db_type= NULL; }
     break;
 
-  case 1718:
+  case 1719:
 
 /* Line 1455 of yacc.c  */
-#line 11449 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11470 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_FIELDS;
@@ -33025,48 +33079,48 @@ yyreduce:
           }
     break;
 
-  case 1719:
+  case 1720:
 
 /* Line 1455 of yacc.c  */
-#line 11458 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11479 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_SHOW_BINLOGS;
           }
     break;
 
-  case 1720:
+  case 1721:
 
 /* Line 1455 of yacc.c  */
-#line 11462 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11483 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS;
           }
     break;
 
-  case 1721:
+  case 1722:
 
 /* Line 1455 of yacc.c  */
-#line 11466 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11487 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS;
           }
     break;
 
-  case 1723:
+  case 1724:
 
 /* Line 1455 of yacc.c  */
-#line 11471 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11492 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_RELAYLOG_EVENTS;
           }
     break;
 
-  case 1725:
+  case 1726:
 
 /* Line 1455 of yacc.c  */
-#line 11476 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11497 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_KEYS;
@@ -33077,10 +33131,10 @@ yyreduce:
           }
     break;
 
-  case 1726:
+  case 1727:
 
 /* Line 1455 of yacc.c  */
-#line 11485 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11506 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES;
@@ -33089,10 +33143,10 @@ yyreduce:
           }
     break;
 
-  case 1727:
+  case 1728:
 
 /* Line 1455 of yacc.c  */
-#line 11492 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11513 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_SHOW_AUTHORS;
@@ -33103,10 +33157,10 @@ yyreduce:
           }
     break;
 
-  case 1728:
+  case 1729:
 
 /* Line 1455 of yacc.c  */
-#line 11501 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11522 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS;
@@ -33117,55 +33171,55 @@ yyreduce:
           }
     break;
 
-  case 1729:
+  case 1730:
 
 /* Line 1455 of yacc.c  */
-#line 11510 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11531 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_SHOW_PRIVILEGES;
           }
     break;
 
-  case 1730:
+  case 1731:
 
 /* Line 1455 of yacc.c  */
-#line 11515 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11536 "/home/buildbot/git/sql/sql_yacc.yy"
     { (void) create_select_for_variable("warning_count"); }
     break;
 
-  case 1731:
+  case 1732:
 
 /* Line 1455 of yacc.c  */
-#line 11517 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11538 "/home/buildbot/git/sql/sql_yacc.yy"
     { (void) create_select_for_variable("error_count"); }
     break;
 
-  case 1732:
+  case 1733:
 
 /* Line 1455 of yacc.c  */
-#line 11519 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11540 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sql_command = SQLCOM_SHOW_WARNS;}
     break;
 
-  case 1733:
+  case 1734:
 
 /* Line 1455 of yacc.c  */
-#line 11521 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11542 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sql_command = SQLCOM_SHOW_ERRORS;}
     break;
 
-  case 1734:
+  case 1735:
 
 /* Line 1455 of yacc.c  */
-#line 11523 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11544 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sql_command = SQLCOM_SHOW_PROFILES; }
     break;
 
-  case 1735:
+  case 1736:
 
 /* Line 1455 of yacc.c  */
-#line 11525 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11546 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_PROFILE;
@@ -33174,10 +33228,10 @@ yyreduce:
           }
     break;
 
-  case 1736:
+  case 1737:
 
 /* Line 1455 of yacc.c  */
-#line 11532 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11553 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_STATUS;
@@ -33187,17 +33241,17 @@ yyreduce:
           }
     break;
 
-  case 1737:
+  case 1738:
 
 /* Line 1455 of yacc.c  */
-#line 11540 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11561 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;}
     break;
 
-  case 1738:
+  case 1739:
 
 /* Line 1455 of yacc.c  */
-#line 11542 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11563 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_VARIABLES;
@@ -33207,10 +33261,10 @@ yyreduce:
           }
     break;
 
-  case 1739:
+  case 1740:
 
 /* Line 1455 of yacc.c  */
-#line 11550 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11571 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_CHARSETS;
@@ -33219,10 +33273,10 @@ yyreduce:
           }
     break;
 
-  case 1740:
+  case 1741:
 
 /* Line 1455 of yacc.c  */
-#line 11557 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11578 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_COLLATIONS;
@@ -33231,10 +33285,10 @@ yyreduce:
           }
     break;
 
-  case 1741:
+  case 1742:
 
 /* Line 1455 of yacc.c  */
-#line 11564 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11585 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_SHOW_GRANTS;
@@ -33246,10 +33300,10 @@ yyreduce:
           }
     break;
 
-  case 1742:
+  case 1743:
 
 /* Line 1455 of yacc.c  */
-#line 11574 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11595 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_SHOW_GRANTS;
@@ -33258,10 +33312,10 @@ yyreduce:
           }
     break;
 
-  case 1743:
+  case 1744:
 
 /* Line 1455 of yacc.c  */
-#line 11581 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11602 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command=SQLCOM_SHOW_CREATE_DB;
             Lex->create_info.options=(yyvsp[(3) - (4)].num);
@@ -33269,10 +33323,10 @@ yyreduce:
           }
     break;
 
-  case 1744:
+  case 1745:
 
 /* Line 1455 of yacc.c  */
-#line 11587 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11608 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command = SQLCOM_SHOW_CREATE;
@@ -33283,10 +33337,10 @@ yyreduce:
           }
     break;
 
-  case 1745:
+  case 1746:
 
 /* Line 1455 of yacc.c  */
-#line 11596 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11617 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command = SQLCOM_SHOW_CREATE;
@@ -33296,28 +33350,28 @@ yyreduce:
           }
     break;
 
-  case 1746:
+  case 1747:
 
 /* Line 1455 of yacc.c  */
-#line 11604 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11625 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_SHOW_MASTER_STAT;
           }
     break;
 
-  case 1747:
+  case 1748:
 
 /* Line 1455 of yacc.c  */
-#line 11608 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11629 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
           }
     break;
 
-  case 1748:
+  case 1749:
 
 /* Line 1455 of yacc.c  */
-#line 11612 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11633 "/home/buildbot/git/sql/sql_yacc.yy"
     {
            LEX *lex= Lex;
            lex->sql_command= SQLCOM_SHOW_CLIENT_STATS;
@@ -33326,10 +33380,10 @@ yyreduce:
           }
     break;
 
-  case 1749:
+  case 1750:
 
 /* Line 1455 of yacc.c  */
-#line 11619 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11640 "/home/buildbot/git/sql/sql_yacc.yy"
     {
              LEX *lex= Lex;
              lex->sql_command= SQLCOM_SHOW_USER_STATS;
@@ -33338,10 +33392,10 @@ yyreduce:
           }
     break;
 
-  case 1750:
+  case 1751:
 
 /* Line 1455 of yacc.c  */
-#line 11626 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11647 "/home/buildbot/git/sql/sql_yacc.yy"
     {
              LEX *lex= Lex;
              lex->sql_command= SQLCOM_SHOW_TABLE_STATS;
@@ -33350,10 +33404,10 @@ yyreduce:
           }
     break;
 
-  case 1751:
+  case 1752:
 
 /* Line 1455 of yacc.c  */
-#line 11633 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11654 "/home/buildbot/git/sql/sql_yacc.yy"
     {
              LEX *lex= Lex;
              lex->sql_command= SQLCOM_SHOW_INDEX_STATS;
@@ -33362,10 +33416,10 @@ yyreduce:
           }
     break;
 
-  case 1752:
+  case 1753:
 
 /* Line 1455 of yacc.c  */
-#line 11640 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11661 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -33374,10 +33428,10 @@ yyreduce:
           }
     break;
 
-  case 1753:
+  case 1754:
 
 /* Line 1455 of yacc.c  */
-#line 11647 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11668 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -33386,10 +33440,10 @@ yyreduce:
           }
     break;
 
-  case 1754:
+  case 1755:
 
 /* Line 1455 of yacc.c  */
-#line 11654 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11675 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER;
@@ -33397,10 +33451,10 @@ yyreduce:
           }
     break;
 
-  case 1755:
+  case 1756:
 
 /* Line 1455 of yacc.c  */
-#line 11660 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11681 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_STATUS_PROC;
@@ -33409,10 +33463,10 @@ yyreduce:
           }
     break;
 
-  case 1756:
+  case 1757:
 
 /* Line 1455 of yacc.c  */
-#line 11667 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11688 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_SHOW_STATUS_FUNC;
@@ -33421,117 +33475,117 @@ yyreduce:
           }
     break;
 
-  case 1757:
+  case 1758:
 
 /* Line 1455 of yacc.c  */
-#line 11674 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11695 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command= SQLCOM_SHOW_PROC_CODE;
             Lex->spname= (yyvsp[(3) - (3)].spname);
           }
     break;
 
-  case 1758:
+  case 1759:
 
 /* Line 1455 of yacc.c  */
-#line 11679 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11700 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command= SQLCOM_SHOW_FUNC_CODE;
             Lex->spname= (yyvsp[(3) - (3)].spname);
           }
     break;
 
-  case 1759:
+  case 1760:
 
 /* Line 1455 of yacc.c  */
-#line 11684 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11705 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->spname= (yyvsp[(3) - (3)].spname);
             Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT;
           }
     break;
 
-  case 1760:
+  case 1761:
 
 /* Line 1455 of yacc.c  */
-#line 11692 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11713 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; }
     break;
 
-  case 1761:
+  case 1762:
 
 /* Line 1455 of yacc.c  */
-#line 11694 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11715 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; }
     break;
 
-  case 1762:
+  case 1763:
 
 /* Line 1455 of yacc.c  */
-#line 11696 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11717 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; }
     break;
 
-  case 1767:
+  case 1768:
 
 /* Line 1455 of yacc.c  */
-#line 11710 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11731 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.simple_string)= 0; }
     break;
 
-  case 1768:
+  case 1769:
 
 /* Line 1455 of yacc.c  */
-#line 11711 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11732 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.simple_string)= (yyvsp[(2) - (2)].lex_str).str; }
     break;
 
-  case 1769:
+  case 1770:
 
 /* Line 1455 of yacc.c  */
-#line 11715 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11736 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->verbose=0; }
     break;
 
-  case 1770:
+  case 1771:
 
 /* Line 1455 of yacc.c  */
-#line 11716 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11737 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->verbose=1; }
     break;
 
-  case 1773:
+  case 1774:
 
 /* Line 1455 of yacc.c  */
-#line 11725 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11746 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->mi.log_file_name = 0; }
     break;
 
-  case 1774:
+  case 1775:
 
 /* Line 1455 of yacc.c  */
-#line 11726 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11747 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->mi.log_file_name = (yyvsp[(2) - (2)].lex_str).str; }
     break;
 
-  case 1775:
+  case 1776:
 
 /* Line 1455 of yacc.c  */
-#line 11730 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11751 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->mi.pos = 4; /* skip magic number */ }
     break;
 
-  case 1776:
+  case 1777:
 
 /* Line 1455 of yacc.c  */
-#line 11731 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11752 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->mi.pos = (yyvsp[(2) - (2)].ulonglong_number); }
     break;
 
-  case 1778:
+  case 1779:
 
 /* Line 1455 of yacc.c  */
-#line 11737 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11758 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->wild= new (thd->mem_root) String((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length,
                                                     system_charset_info);
@@ -33540,10 +33594,10 @@ yyreduce:
           }
     break;
 
-  case 1779:
+  case 1780:
 
 /* Line 1455 of yacc.c  */
-#line 11744 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11765 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->where= normalize_cond((yyvsp[(2) - (2)].item));
             if ((yyvsp[(2) - (2)].item))
@@ -33551,10 +33605,10 @@ yyreduce:
           }
     break;
 
-  case 1780:
+  case 1781:
 
 /* Line 1455 of yacc.c  */
-#line 11754 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11775 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             mysql_init_select(lex);
@@ -33567,71 +33621,71 @@ yyreduce:
           }
     break;
 
-  case 1781:
+  case 1782:
 
 /* Line 1455 of yacc.c  */
-#line 11765 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11786 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Select->parsing_place= NO_MATTER;
           }
     break;
 
-  case 1782:
+  case 1783:
 
 /* Line 1455 of yacc.c  */
-#line 11769 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11790 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->describe|= DESCRIBE_NORMAL; }
     break;
 
-  case 1783:
+  case 1784:
 
 /* Line 1455 of yacc.c  */
-#line 11771 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11792 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->select_lex.options|= SELECT_DESCRIBE;
           }
     break;
 
-  case 1786:
+  case 1787:
 
 /* Line 1455 of yacc.c  */
-#line 11783 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11804 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1787:
+  case 1788:
 
 /* Line 1455 of yacc.c  */
-#line 11784 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11805 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->describe|= DESCRIBE_EXTENDED; }
     break;
 
-  case 1788:
+  case 1789:
 
 /* Line 1455 of yacc.c  */
-#line 11785 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11806 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->describe|= DESCRIBE_PARTITIONS; }
     break;
 
-  case 1789:
+  case 1790:
 
 /* Line 1455 of yacc.c  */
-#line 11789 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11810 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1790:
+  case 1791:
 
 /* Line 1455 of yacc.c  */
-#line 11790 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11811 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->wild= (yyvsp[(1) - (1)].string); }
     break;
 
-  case 1791:
+  case 1792:
 
 /* Line 1455 of yacc.c  */
-#line 11792 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11813 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->wild= new (thd->mem_root) String((const char*) (yyvsp[(1) - (1)].lex_str).str,
                                                     (yyvsp[(1) - (1)].lex_str).length,
@@ -33641,10 +33695,10 @@ yyreduce:
           }
     break;
 
-  case 1792:
+  case 1793:
 
 /* Line 1455 of yacc.c  */
-#line 11806 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11827 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_FLUSH;
@@ -33653,17 +33707,17 @@ yyreduce:
           }
     break;
 
-  case 1793:
+  case 1794:
 
 /* Line 1455 of yacc.c  */
-#line 11813 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11834 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1794:
+  case 1795:
 
 /* Line 1455 of yacc.c  */
-#line 11818 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11839 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->type|= REFRESH_TABLES;
             /*
@@ -33675,31 +33729,31 @@ yyreduce:
           }
     break;
 
-  case 1795:
+  case 1796:
 
 /* Line 1455 of yacc.c  */
-#line 11827 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11848 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1796:
+  case 1797:
 
 /* Line 1455 of yacc.c  */
-#line 11828 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11849 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1798:
+  case 1799:
 
 /* Line 1455 of yacc.c  */
-#line 11833 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11854 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1799:
+  case 1800:
 
 /* Line 1455 of yacc.c  */
-#line 11835 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11856 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             TABLE_LIST *tables= Lex->query_tables;
             Lex->type|= REFRESH_READ_LOCK | (yyvsp[(4) - (4)].num);
@@ -33712,240 +33766,240 @@ yyreduce:
           }
     break;
 
-  case 1801:
+  case 1802:
 
 /* Line 1455 of yacc.c  */
-#line 11850 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11871 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1802:
+  case 1803:
 
 /* Line 1455 of yacc.c  */
-#line 11855 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11876 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_ERROR_LOG; }
     break;
 
-  case 1803:
+  case 1804:
 
 /* Line 1455 of yacc.c  */
-#line 11857 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11878 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_ENGINE_LOG; }
     break;
 
-  case 1804:
+  case 1805:
 
 /* Line 1455 of yacc.c  */
-#line 11859 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11880 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_GENERAL_LOG; }
     break;
 
-  case 1805:
+  case 1806:
 
 /* Line 1455 of yacc.c  */
-#line 11861 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11882 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_SLOW_LOG; }
     break;
 
-  case 1806:
+  case 1807:
 
 /* Line 1455 of yacc.c  */
-#line 11863 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11884 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_BINARY_LOG; }
     break;
 
-  case 1807:
+  case 1808:
 
 /* Line 1455 of yacc.c  */
-#line 11865 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11886 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_RELAY_LOG; }
     break;
 
-  case 1808:
+  case 1809:
 
 /* Line 1455 of yacc.c  */
-#line 11867 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11888 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_QUERY_CACHE_FREE; }
     break;
 
-  case 1809:
+  case 1810:
 
 /* Line 1455 of yacc.c  */
-#line 11869 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11890 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_HOSTS; }
     break;
 
-  case 1810:
+  case 1811:
 
 /* Line 1455 of yacc.c  */
-#line 11871 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11892 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_GRANT; }
     break;
 
-  case 1811:
+  case 1812:
 
 /* Line 1455 of yacc.c  */
-#line 11873 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11894 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_LOG; }
     break;
 
-  case 1812:
+  case 1813:
 
 /* Line 1455 of yacc.c  */
-#line 11875 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11896 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_STATUS; }
     break;
 
-  case 1813:
+  case 1814:
 
 /* Line 1455 of yacc.c  */
-#line 11877 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11898 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             Lex->type|= REFRESH_SLAVE;
             Lex->reset_slave_info.all= false;
           }
     break;
 
-  case 1814:
+  case 1815:
 
 /* Line 1455 of yacc.c  */
-#line 11882 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11903 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_CLIENT_STATS; }
     break;
 
-  case 1815:
+  case 1816:
 
 /* Line 1455 of yacc.c  */
-#line 11884 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11905 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_USER_STATS; }
     break;
 
-  case 1816:
+  case 1817:
 
 /* Line 1455 of yacc.c  */
-#line 11886 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11907 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_TABLE_STATS; }
     break;
 
-  case 1817:
+  case 1818:
 
 /* Line 1455 of yacc.c  */
-#line 11888 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11909 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_INDEX_STATS; }
     break;
 
-  case 1818:
+  case 1819:
 
 /* Line 1455 of yacc.c  */
-#line 11890 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11911 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_MASTER; }
     break;
 
-  case 1819:
+  case 1820:
 
 /* Line 1455 of yacc.c  */
-#line 11892 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11913 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_DES_KEY_FILE; }
     break;
 
-  case 1820:
+  case 1821:
 
 /* Line 1455 of yacc.c  */
-#line 11894 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11915 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_USER_RESOURCES; }
     break;
 
-  case 1821:
+  case 1822:
 
 /* Line 1455 of yacc.c  */
-#line 11898 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11919 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1822:
+  case 1823:
 
 /* Line 1455 of yacc.c  */
-#line 11899 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11920 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1823:
+  case 1824:
 
 /* Line 1455 of yacc.c  */
-#line 11903 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11924 "/home/buildbot/git/sql/sql_yacc.yy"
     {(yyval.num)= 0;}
     break;
 
-  case 1824:
+  case 1825:
 
 /* Line 1455 of yacc.c  */
-#line 11904 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11925 "/home/buildbot/git/sql/sql_yacc.yy"
     {(yyval.num)= REFRESH_CHECKPOINT; }
     break;
 
-  case 1825:
+  case 1826:
 
 /* Line 1455 of yacc.c  */
-#line 11908 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11929 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_RESET; lex->type=0;
           }
     break;
 
-  case 1826:
+  case 1827:
 
 /* Line 1455 of yacc.c  */
-#line 11913 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11934 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1829:
+  case 1830:
 
 /* Line 1455 of yacc.c  */
-#line 11922 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11943 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_SLAVE; }
     break;
 
-  case 1830:
+  case 1831:
 
 /* Line 1455 of yacc.c  */
-#line 11923 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11944 "/home/buildbot/git/sql/sql_yacc.yy"
     { }
     break;
 
-  case 1831:
+  case 1832:
 
 /* Line 1455 of yacc.c  */
-#line 11924 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11945 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_MASTER; }
     break;
 
-  case 1832:
+  case 1833:
 
 /* Line 1455 of yacc.c  */
-#line 11925 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11946 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->type|= REFRESH_QUERY_CACHE;}
     break;
 
-  case 1833:
+  case 1834:
 
 /* Line 1455 of yacc.c  */
-#line 11929 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11950 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->reset_slave_info.all= false; }
     break;
 
-  case 1834:
+  case 1835:
 
 /* Line 1455 of yacc.c  */
-#line 11930 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11951 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->reset_slave_info.all= true; }
     break;
 
-  case 1835:
+  case 1836:
 
 /* Line 1455 of yacc.c  */
-#line 11935 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11956 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->type=0;
@@ -33953,26 +34007,26 @@ yyreduce:
           }
     break;
 
-  case 1836:
+  case 1837:
 
 /* Line 1455 of yacc.c  */
-#line 11941 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11962 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1838:
+  case 1839:
 
 /* Line 1455 of yacc.c  */
-#line 11950 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11971 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->to_log = (yyvsp[(2) - (2)].lex_str).str;
           }
     break;
 
-  case 1839:
+  case 1840:
 
 /* Line 1455 of yacc.c  */
-#line 11954 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11975 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->value_list.empty();
@@ -33981,10 +34035,10 @@ yyreduce:
           }
     break;
 
-  case 1840:
+  case 1841:
 
 /* Line 1455 of yacc.c  */
-#line 11966 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11987 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->value_list.empty();
@@ -33993,81 +34047,81 @@ yyreduce:
           }
     break;
 
-  case 1841:
+  case 1842:
 
 /* Line 1455 of yacc.c  */
-#line 11973 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 11994 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->kill_signal= (killed_state) ((yyvsp[(3) - (5)].num) | (yyvsp[(4) - (5)].num));
           }
     break;
 
-  case 1842:
+  case 1843:
 
 /* Line 1455 of yacc.c  */
-#line 11979 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12000 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= (int) KILL_HARD_BIT; }
     break;
 
-  case 1843:
+  case 1844:
 
 /* Line 1455 of yacc.c  */
-#line 11980 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12001 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= (int) KILL_HARD_BIT; }
     break;
 
-  case 1844:
+  case 1845:
 
 /* Line 1455 of yacc.c  */
-#line 11981 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12002 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0; }
     break;
 
-  case 1845:
+  case 1846:
 
 /* Line 1455 of yacc.c  */
-#line 11984 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12005 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= (int) KILL_CONNECTION; }
     break;
 
-  case 1846:
+  case 1847:
 
 /* Line 1455 of yacc.c  */
-#line 11985 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12006 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= (int) KILL_CONNECTION; }
     break;
 
-  case 1847:
+  case 1848:
 
 /* Line 1455 of yacc.c  */
-#line 11986 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12007 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= (int) KILL_QUERY; }
     break;
 
-  case 1848:
+  case 1849:
 
 /* Line 1455 of yacc.c  */
-#line 11991 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12012 "/home/buildbot/git/sql/sql_yacc.yy"
     {
           Lex->value_list.push_front((yyval.item));
           Lex->kill_type= KILL_TYPE_ID;
          }
     break;
 
-  case 1849:
+  case 1850:
 
 /* Line 1455 of yacc.c  */
-#line 11996 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12017 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->users_list.push_back((yyvsp[(2) - (2)].lex_user));
             Lex->kill_type= KILL_TYPE_USER;
           }
     break;
 
-  case 1850:
+  case 1851:
 
 /* Line 1455 of yacc.c  */
-#line 12006 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12027 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command=SQLCOM_CHANGE_DB;
@@ -34075,10 +34129,10 @@ yyreduce:
           }
     break;
 
-  case 1851:
+  case 1852:
 
 /* Line 1455 of yacc.c  */
-#line 12017 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12038 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
 
@@ -34091,10 +34145,10 @@ yyreduce:
           }
     break;
 
-  case 1852:
+  case 1853:
 
 /* Line 1455 of yacc.c  */
-#line 12028 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12049 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_LOAD;
@@ -34106,10 +34160,10 @@ yyreduce:
           }
     break;
 
-  case 1853:
+  case 1854:
 
 /* Line 1455 of yacc.c  */
-#line 12038 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12059 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (!Select->add_table_to_list(thd, (yyvsp[(12) - (12)].table), NULL, TL_OPTION_UPDATING,
@@ -34121,59 +34175,59 @@ yyreduce:
           }
     break;
 
-  case 1854:
+  case 1855:
 
 /* Line 1455 of yacc.c  */
-#line 12048 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12069 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->exchange->cs= (yyvsp[(14) - (14)].charset); }
     break;
 
-  case 1855:
+  case 1856:
 
 /* Line 1455 of yacc.c  */
-#line 12052 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12073 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1856:
+  case 1857:
 
 /* Line 1455 of yacc.c  */
-#line 12056 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12077 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.filetype)= FILETYPE_CSV; }
     break;
 
-  case 1857:
+  case 1858:
 
 /* Line 1455 of yacc.c  */
-#line 12057 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12078 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.filetype)= FILETYPE_XML; }
     break;
 
-  case 1858:
+  case 1859:
 
 /* Line 1455 of yacc.c  */
-#line 12061 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12082 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=0;}
     break;
 
-  case 1859:
+  case 1860:
 
 /* Line 1455 of yacc.c  */
-#line 12062 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12083 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=1;}
     break;
 
-  case 1860:
+  case 1861:
 
 /* Line 1455 of yacc.c  */
-#line 12066 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12087 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lock_type)= TL_WRITE_DEFAULT; }
     break;
 
-  case 1861:
+  case 1862:
 
 /* Line 1455 of yacc.c  */
-#line 12068 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12089 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               Ignore this option in SP to avoid problem with query cache and
@@ -34183,48 +34237,48 @@ yyreduce:
           }
     break;
 
-  case 1862:
+  case 1863:
 
 /* Line 1455 of yacc.c  */
-#line 12075 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12096 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; }
     break;
 
-  case 1863:
+  case 1864:
 
 /* Line 1455 of yacc.c  */
-#line 12079 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12100 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->duplicates=DUP_ERROR; }
     break;
 
-  case 1864:
+  case 1865:
 
 /* Line 1455 of yacc.c  */
-#line 12080 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12101 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->duplicates=DUP_REPLACE; }
     break;
 
-  case 1865:
+  case 1866:
 
 /* Line 1455 of yacc.c  */
-#line 12081 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12102 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ignore= 1; }
     break;
 
-  case 1870:
+  case 1871:
 
 /* Line 1455 of yacc.c  */
-#line 12096 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12117 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             DBUG_ASSERT(Lex->exchange != 0);
             Lex->exchange->field_term= (yyvsp[(3) - (3)].string);
           }
     break;
 
-  case 1871:
+  case 1872:
 
 /* Line 1455 of yacc.c  */
-#line 12101 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12122 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             DBUG_ASSERT(lex->exchange != 0);
@@ -34233,130 +34287,130 @@ yyreduce:
           }
     break;
 
-  case 1872:
+  case 1873:
 
 /* Line 1455 of yacc.c  */
-#line 12108 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12129 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             DBUG_ASSERT(Lex->exchange != 0);
             Lex->exchange->enclosed= (yyvsp[(3) - (3)].string);
           }
     break;
 
-  case 1873:
+  case 1874:
 
 /* Line 1455 of yacc.c  */
-#line 12113 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12134 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             DBUG_ASSERT(Lex->exchange != 0);
             Lex->exchange->escaped= (yyvsp[(3) - (3)].string);
           }
     break;
 
-  case 1878:
+  case 1879:
 
 /* Line 1455 of yacc.c  */
-#line 12131 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12152 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             DBUG_ASSERT(Lex->exchange != 0);
             Lex->exchange->line_term= (yyvsp[(3) - (3)].string);
           }
     break;
 
-  case 1879:
+  case 1880:
 
 /* Line 1455 of yacc.c  */
-#line 12136 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12157 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             DBUG_ASSERT(Lex->exchange != 0);
             Lex->exchange->line_start= (yyvsp[(3) - (3)].string);
           }
     break;
 
-  case 1880:
+  case 1881:
 
 /* Line 1455 of yacc.c  */
-#line 12143 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12164 "/home/buildbot/git/sql/sql_yacc.yy"
     { }
     break;
 
-  case 1881:
+  case 1882:
 
 /* Line 1455 of yacc.c  */
-#line 12145 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12166 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->exchange->line_term = (yyvsp[(4) - (4)].string); }
     break;
 
-  case 1883:
+  case 1884:
 
 /* Line 1455 of yacc.c  */
-#line 12150 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12171 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             DBUG_ASSERT(Lex->exchange != 0);
             Lex->exchange->skip_lines= atol((yyvsp[(2) - (3)].lex_str).str);
           }
     break;
 
-  case 1884:
+  case 1885:
 
 /* Line 1455 of yacc.c  */
-#line 12157 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12178 "/home/buildbot/git/sql/sql_yacc.yy"
     { }
     break;
 
-  case 1885:
+  case 1886:
 
 /* Line 1455 of yacc.c  */
-#line 12159 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12180 "/home/buildbot/git/sql/sql_yacc.yy"
     { }
     break;
 
-  case 1886:
+  case 1887:
 
 /* Line 1455 of yacc.c  */
-#line 12163 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12184 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1887:
+  case 1888:
 
 /* Line 1455 of yacc.c  */
-#line 12164 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12185 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1888:
+  case 1889:
 
 /* Line 1455 of yacc.c  */
-#line 12165 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12186 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1889:
+  case 1890:
 
 /* Line 1455 of yacc.c  */
-#line 12170 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12191 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->field_list.push_back((yyvsp[(3) - (3)].item)); }
     break;
 
-  case 1890:
+  case 1891:
 
 /* Line 1455 of yacc.c  */
-#line 12172 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12193 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->field_list.push_back((yyvsp[(1) - (1)].item)); }
     break;
 
-  case 1891:
+  case 1892:
 
 /* Line 1455 of yacc.c  */
-#line 12176 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12197 "/home/buildbot/git/sql/sql_yacc.yy"
     {(yyval.item)= (yyvsp[(1) - (1)].item);}
     break;
 
-  case 1892:
+  case 1893:
 
 /* Line 1455 of yacc.c  */
-#line 12178 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12199 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_user_var_as_out_param((yyvsp[(2) - (2)].lex_str));
             if ((yyval.item) == NULL)
@@ -34364,24 +34418,24 @@ yyreduce:
           }
     break;
 
-  case 1893:
+  case 1894:
 
 /* Line 1455 of yacc.c  */
-#line 12186 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12207 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1894:
+  case 1895:
 
 /* Line 1455 of yacc.c  */
-#line 12187 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12208 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 1897:
+  case 1898:
 
 /* Line 1455 of yacc.c  */
-#line 12197 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12218 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->update_list.push_back((yyvsp[(1) - (5)].item)) || 
@@ -34391,10 +34445,10 @@ yyreduce:
           }
     break;
 
-  case 1898:
+  case 1899:
 
 /* Line 1455 of yacc.c  */
-#line 12210 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12231 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX_STRING tmp;
             CHARSET_INFO *cs_con= thd->variables.collation_connection;
@@ -34419,10 +34473,10 @@ yyreduce:
           }
     break;
 
-  case 1899:
+  case 1900:
 
 /* Line 1455 of yacc.c  */
-#line 12233 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12254 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             uint repertoire= Lex->text_string_is_7bit ?
                              MY_REPERTOIRE_ASCII : MY_REPERTOIRE_UNICODE30;
@@ -34436,10 +34490,10 @@ yyreduce:
           }
     break;
 
-  case 1900:
+  case 1901:
 
 /* Line 1455 of yacc.c  */
-#line 12245 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12266 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item_string *str= new (thd->mem_root) Item_string((yyvsp[(2) - (2)].lex_str).str,
                                                                 (yyvsp[(2) - (2)].lex_str).length, (yyvsp[(1) - (2)].charset));
@@ -34452,10 +34506,10 @@ yyreduce:
           }
     break;
 
-  case 1901:
+  case 1902:
 
 /* Line 1455 of yacc.c  */
-#line 12256 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12277 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item_string* item= (Item_string*) (yyvsp[(1) - (2)].item);
             item->append((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
@@ -34473,10 +34527,10 @@ yyreduce:
           }
     break;
 
-  case 1902:
+  case 1903:
 
 /* Line 1455 of yacc.c  */
-#line 12275 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12296 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.string)= new (thd->mem_root) String((yyvsp[(1) - (1)].lex_str).str,
                                              (yyvsp[(1) - (1)].lex_str).length,
@@ -34486,10 +34540,10 @@ yyreduce:
           }
     break;
 
-  case 1903:
+  case 1904:
 
 /* Line 1455 of yacc.c  */
-#line 12283 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12304 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *tmp= new (thd->mem_root) Item_hex_hybrid((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
             if (tmp == NULL)
@@ -34503,10 +34557,10 @@ yyreduce:
           }
     break;
 
-  case 1904:
+  case 1905:
 
 /* Line 1455 of yacc.c  */
-#line 12295 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12316 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *tmp= new (thd->mem_root) Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
             if (tmp == NULL)
@@ -34516,10 +34570,10 @@ yyreduce:
           }
     break;
 
-  case 1905:
+  case 1906:
 
 /* Line 1455 of yacc.c  */
-#line 12303 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12324 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *tmp= new (thd->mem_root) Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
             if (tmp == NULL)
@@ -34533,10 +34587,10 @@ yyreduce:
           }
     break;
 
-  case 1906:
+  case 1907:
 
 /* Line 1455 of yacc.c  */
-#line 12318 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12339 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             Lex_input_stream *lip= YYLIP;
@@ -34555,48 +34609,48 @@ yyreduce:
           }
     break;
 
-  case 1907:
+  case 1908:
 
 /* Line 1455 of yacc.c  */
-#line 12337 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12358 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item) = (yyvsp[(1) - (1)].item); }
     break;
 
-  case 1908:
+  case 1909:
 
 /* Line 1455 of yacc.c  */
-#line 12338 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12359 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item) = (yyvsp[(2) - (2)].item_num); }
     break;
 
-  case 1909:
+  case 1910:
 
 /* Line 1455 of yacc.c  */
-#line 12340 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12361 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyvsp[(2) - (2)].item_num)->max_length++;
             (yyval.item)= (yyvsp[(2) - (2)].item_num)->neg();
           }
     break;
 
-  case 1910:
+  case 1911:
 
 /* Line 1455 of yacc.c  */
-#line 12347 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12368 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item) = (yyvsp[(1) - (1)].item); }
     break;
 
-  case 1911:
+  case 1912:
 
 /* Line 1455 of yacc.c  */
-#line 12348 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12369 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item) = (yyvsp[(1) - (1)].item_num); }
     break;
 
-  case 1912:
+  case 1913:
 
 /* Line 1455 of yacc.c  */
-#line 12350 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12371 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item) = new (thd->mem_root) Item_null();
             if ((yyval.item) == NULL)
@@ -34605,10 +34659,10 @@ yyreduce:
           }
     break;
 
-  case 1913:
+  case 1914:
 
 /* Line 1455 of yacc.c  */
-#line 12357 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12378 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_int((char*) "FALSE",0,1);
             if ((yyval.item) == NULL)
@@ -34616,10 +34670,10 @@ yyreduce:
           }
     break;
 
-  case 1914:
+  case 1915:
 
 /* Line 1455 of yacc.c  */
-#line 12363 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12384 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_int((char*) "TRUE",1,1);
             if ((yyval.item) == NULL)
@@ -34627,10 +34681,10 @@ yyreduce:
           }
     break;
 
-  case 1915:
+  case 1916:
 
 /* Line 1455 of yacc.c  */
-#line 12369 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12390 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item) = new (thd->mem_root) Item_hex_hybrid((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
             if ((yyval.item) == NULL)
@@ -34638,10 +34692,10 @@ yyreduce:
           }
     break;
 
-  case 1916:
+  case 1917:
 
 /* Line 1455 of yacc.c  */
-#line 12375 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12396 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item) = new (thd->mem_root) Item_hex_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
             if ((yyval.item) == NULL)
@@ -34649,10 +34703,10 @@ yyreduce:
           }
     break;
 
-  case 1917:
+  case 1918:
 
 /* Line 1455 of yacc.c  */
-#line 12381 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12402 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)= new (thd->mem_root) Item_bin_string((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
             if ((yyval.item) == NULL)
@@ -34660,10 +34714,10 @@ yyreduce:
           }
     break;
 
-  case 1918:
+  case 1919:
 
 /* Line 1455 of yacc.c  */
-#line 12387 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12408 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *tmp= new (thd->mem_root) Item_hex_string((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
             if (tmp == NULL)
@@ -34694,10 +34748,10 @@ yyreduce:
           }
     break;
 
-  case 1919:
+  case 1920:
 
 /* Line 1455 of yacc.c  */
-#line 12416 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12437 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item *tmp= new (thd->mem_root) Item_bin_string((yyvsp[(2) - (2)].lex_str).str, (yyvsp[(2) - (2)].lex_str).length);
             if (tmp == NULL)
@@ -34727,31 +34781,31 @@ yyreduce:
           }
     break;
 
-  case 1920:
+  case 1921:
 
 /* Line 1455 of yacc.c  */
-#line 12443 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12464 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item) = (yyvsp[(2) - (2)].item); }
     break;
 
-  case 1921:
+  case 1922:
 
 /* Line 1455 of yacc.c  */
-#line 12444 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12465 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item) = (yyvsp[(2) - (2)].item); }
     break;
 
-  case 1922:
+  case 1923:
 
 /* Line 1455 of yacc.c  */
-#line 12445 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12466 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item) = (yyvsp[(2) - (2)].item); }
     break;
 
-  case 1923:
+  case 1924:
 
 /* Line 1455 of yacc.c  */
-#line 12450 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12471 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             int error;
             (yyval.item_num)= new (thd->mem_root)
@@ -34763,10 +34817,10 @@ yyreduce:
           }
     break;
 
-  case 1924:
+  case 1925:
 
 /* Line 1455 of yacc.c  */
-#line 12460 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12481 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             int error;
             (yyval.item_num)= new (thd->mem_root)
@@ -34778,10 +34832,10 @@ yyreduce:
           }
     break;
 
-  case 1925:
+  case 1926:
 
 /* Line 1455 of yacc.c  */
-#line 12470 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12491 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item_num)= new (thd->mem_root) Item_uint((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
             if ((yyval.item_num) == NULL)
@@ -34789,10 +34843,10 @@ yyreduce:
           }
     break;
 
-  case 1926:
+  case 1927:
 
 /* Line 1455 of yacc.c  */
-#line 12476 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12497 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item_num)= new (thd->mem_root) Item_decimal((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length,
                                                    thd->charset());
@@ -34803,10 +34857,10 @@ yyreduce:
           }
     break;
 
-  case 1927:
+  case 1928:
 
 /* Line 1455 of yacc.c  */
-#line 12485 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12506 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item_num)= new (thd->mem_root) Item_float((yyvsp[(1) - (1)].lex_str).str, (yyvsp[(1) - (1)].lex_str).length);
             if (((yyval.item_num) == NULL) || (thd->is_error()))
@@ -34816,24 +34870,24 @@ yyreduce:
           }
     break;
 
-  case 1928:
+  case 1929:
 
 /* Line 1455 of yacc.c  */
-#line 12499 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12520 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)=(yyvsp[(1) - (1)].item); }
     break;
 
-  case 1929:
+  case 1930:
 
 /* Line 1455 of yacc.c  */
-#line 12500 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12521 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)=(yyvsp[(1) - (1)].item); }
     break;
 
-  case 1930:
+  case 1931:
 
 /* Line 1455 of yacc.c  */
-#line 12505 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12526 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             SELECT_LEX *sel= Select;
             (yyval.item)= new (thd->mem_root) Item_field(Lex->current_context(),
@@ -34844,10 +34898,10 @@ yyreduce:
           }
     break;
 
-  case 1931:
+  case 1932:
 
 /* Line 1455 of yacc.c  */
-#line 12514 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12535 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             SELECT_LEX *sel= Select;
             const char* schema= thd->client_capabilities & CLIENT_NO_SCHEMA ?
@@ -34861,17 +34915,17 @@ yyreduce:
           }
     break;
 
-  case 1932:
+  case 1933:
 
 /* Line 1455 of yacc.c  */
-#line 12528 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12549 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)=(yyvsp[(1) - (1)].item); }
     break;
 
-  case 1933:
+  case 1934:
 
 /* Line 1455 of yacc.c  */
-#line 12533 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12554 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             Lex_input_stream *lip= YYLIP;
@@ -34919,17 +34973,17 @@ yyreduce:
           }
     break;
 
-  case 1934:
+  case 1935:
 
 /* Line 1455 of yacc.c  */
-#line 12578 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12599 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)= (yyvsp[(1) - (1)].item); }
     break;
 
-  case 1935:
+  case 1936:
 
 /* Line 1455 of yacc.c  */
-#line 12583 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12604 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             SELECT_LEX *sel=Select;
             if ((sel->parsing_place != IN_HAVING) ||
@@ -34948,17 +35002,17 @@ yyreduce:
           }
     break;
 
-  case 1936:
+  case 1937:
 
 /* Line 1455 of yacc.c  */
-#line 12599 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12620 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)= (yyvsp[(1) - (1)].item); }
     break;
 
-  case 1937:
+  case 1938:
 
 /* Line 1455 of yacc.c  */
-#line 12604 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12625 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
 
@@ -35038,10 +35092,10 @@ yyreduce:
           }
     break;
 
-  case 1938:
+  case 1939:
 
 /* Line 1455 of yacc.c  */
-#line 12682 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12703 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             SELECT_LEX *sel= lex->current_select;
@@ -35067,10 +35121,10 @@ yyreduce:
           }
     break;
 
-  case 1939:
+  case 1940:
 
 /* Line 1455 of yacc.c  */
-#line 12706 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12727 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             SELECT_LEX *sel= lex->current_select;
@@ -35099,17 +35153,17 @@ yyreduce:
           }
     break;
 
-  case 1940:
+  case 1941:
 
 /* Line 1455 of yacc.c  */
-#line 12735 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12756 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
     break;
 
-  case 1941:
+  case 1942:
 
 /* Line 1455 of yacc.c  */
-#line 12737 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12758 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             TABLE_LIST *table= Select->table_list.first;
             if (my_strcasecmp(table_alias_charset, (yyvsp[(1) - (5)].lex_str).str, table->db))
@@ -35127,10 +35181,10 @@ yyreduce:
           }
     break;
 
-  case 1942:
+  case 1943:
 
 /* Line 1455 of yacc.c  */
-#line 12753 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12774 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             TABLE_LIST *table= Select->table_list.first;
             if (my_strcasecmp(table_alias_charset, (yyvsp[(1) - (3)].lex_str).str, table->alias))
@@ -35142,17 +35196,17 @@ yyreduce:
           }
     break;
 
-  case 1943:
+  case 1944:
 
 /* Line 1455 of yacc.c  */
-#line 12762 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12783 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)=(yyvsp[(2) - (2)].lex_str);}
     break;
 
-  case 1944:
+  case 1945:
 
 /* Line 1455 of yacc.c  */
-#line 12767 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12788 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.table)= new Table_ident((yyvsp[(1) - (1)].lex_str));
             if ((yyval.table) == NULL)
@@ -35160,10 +35214,10 @@ yyreduce:
           }
     break;
 
-  case 1945:
+  case 1946:
 
 /* Line 1455 of yacc.c  */
-#line 12773 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12794 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.table)= new Table_ident(thd, (yyvsp[(1) - (3)].lex_str),(yyvsp[(3) - (3)].lex_str),0);
             if ((yyval.table) == NULL)
@@ -35171,10 +35225,10 @@ yyreduce:
           }
     break;
 
-  case 1946:
+  case 1947:
 
 /* Line 1455 of yacc.c  */
-#line 12779 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12800 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /* For Delphi */
             (yyval.table)= new Table_ident((yyvsp[(2) - (2)].lex_str));
@@ -35183,10 +35237,10 @@ yyreduce:
           }
     break;
 
-  case 1947:
+  case 1948:
 
 /* Line 1455 of yacc.c  */
-#line 12789 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12810 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.table)= new Table_ident((yyvsp[(1) - (2)].lex_str));
             if ((yyval.table) == NULL)
@@ -35194,10 +35248,10 @@ yyreduce:
           }
     break;
 
-  case 1948:
+  case 1949:
 
 /* Line 1455 of yacc.c  */
-#line 12795 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12816 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.table)= new Table_ident(thd, (yyvsp[(1) - (4)].lex_str),(yyvsp[(3) - (4)].lex_str),0);
             if ((yyval.table) == NULL)
@@ -35205,10 +35259,10 @@ yyreduce:
           }
     break;
 
-  case 1949:
+  case 1950:
 
 /* Line 1455 of yacc.c  */
-#line 12804 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12825 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX_STRING db={(char*) any_db,3};
             (yyval.table)= new Table_ident(thd, db,(yyvsp[(1) - (1)].lex_str),0);
@@ -35217,17 +35271,17 @@ yyreduce:
           }
     break;
 
-  case 1950:
+  case 1951:
 
 /* Line 1455 of yacc.c  */
-#line 12813 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12834 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str); }
     break;
 
-  case 1951:
+  case 1952:
 
 /* Line 1455 of yacc.c  */
-#line 12815 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12836 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (thd->charset_is_system_charset)
             {
@@ -35254,10 +35308,10 @@ yyreduce:
           }
     break;
 
-  case 1952:
+  case 1953:
 
 /* Line 1455 of yacc.c  */
-#line 12843 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12864 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (thd->charset_is_system_charset)
               (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
@@ -35270,10 +35324,10 @@ yyreduce:
           }
     break;
 
-  case 1953:
+  case 1954:
 
 /* Line 1455 of yacc.c  */
-#line 12857 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12878 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (thd->charset_is_collation_connection)
               (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
@@ -35286,10 +35340,10 @@ yyreduce:
           }
     break;
 
-  case 1954:
+  case 1955:
 
 /* Line 1455 of yacc.c  */
-#line 12871 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12892 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (thd->charset_is_character_set_filesystem)
               (yyval.lex_str)= (yyvsp[(1) - (1)].lex_str);
@@ -35303,17 +35357,17 @@ yyreduce:
           }
     break;
 
-  case 1955:
+  case 1956:
 
 /* Line 1455 of yacc.c  */
-#line 12885 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12906 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
     break;
 
-  case 1956:
+  case 1957:
 
 /* Line 1455 of yacc.c  */
-#line 12887 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12908 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.lex_str).str= thd->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
             if ((yyval.lex_str).str == NULL)
@@ -35322,17 +35376,17 @@ yyreduce:
           }
     break;
 
-  case 1957:
+  case 1958:
 
 /* Line 1455 of yacc.c  */
-#line 12896 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12917 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str); }
     break;
 
-  case 1958:
+  case 1959:
 
 /* Line 1455 of yacc.c  */
-#line 12898 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12919 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.lex_str).str= thd->strmake((yyvsp[(1) - (1)].symbol).str, (yyvsp[(1) - (1)].symbol).length);
             if ((yyval.lex_str).str == NULL)
@@ -35341,31 +35395,31 @@ yyreduce:
           }
     break;
 
-  case 1959:
+  case 1960:
 
 /* Line 1455 of yacc.c  */
-#line 12907 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12928 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
     break;
 
-  case 1960:
+  case 1961:
 
 /* Line 1455 of yacc.c  */
-#line 12908 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12929 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
     break;
 
-  case 1961:
+  case 1962:
 
 /* Line 1455 of yacc.c  */
-#line 12909 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12930 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_str)=(yyvsp[(1) - (1)].lex_str);}
     break;
 
-  case 1962:
+  case 1963:
 
 /* Line 1455 of yacc.c  */
-#line 12914 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12935 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
               MYSQL_YYABORT;
@@ -35383,10 +35437,10 @@ yyreduce:
           }
     break;
 
-  case 1963:
+  case 1964:
 
 /* Line 1455 of yacc.c  */
-#line 12930 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12951 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
               MYSQL_YYABORT;
@@ -35409,10 +35463,10 @@ yyreduce:
           }
     break;
 
-  case 1964:
+  case 1965:
 
 /* Line 1455 of yacc.c  */
-#line 12951 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12972 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (!((yyval.lex_user)=(LEX_USER*) thd->alloc(sizeof(st_lex_user))))
               MYSQL_YYABORT;
@@ -35425,2467 +35479,2474 @@ yyreduce:
           }
     break;
 
-  case 1965:
-
-/* Line 1455 of yacc.c  */
-#line 12965 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
-    {}
-    break;
-
   case 1966:
 
 /* Line 1455 of yacc.c  */
-#line 12966 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12986 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1967:
 
 /* Line 1455 of yacc.c  */
-#line 12967 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12987 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1968:
 
 /* Line 1455 of yacc.c  */
-#line 12968 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12988 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1969:
 
 /* Line 1455 of yacc.c  */
-#line 12969 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12989 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1970:
 
 /* Line 1455 of yacc.c  */
-#line 12970 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12990 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1971:
 
 /* Line 1455 of yacc.c  */
-#line 12971 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12991 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1972:
 
 /* Line 1455 of yacc.c  */
-#line 12972 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12992 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1973:
 
 /* Line 1455 of yacc.c  */
-#line 12973 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12993 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1974:
 
 /* Line 1455 of yacc.c  */
-#line 12974 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12994 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1975:
 
 /* Line 1455 of yacc.c  */
-#line 12975 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12995 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1976:
 
 /* Line 1455 of yacc.c  */
-#line 12976 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12996 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1977:
 
 /* Line 1455 of yacc.c  */
-#line 12977 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12997 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1978:
 
 /* Line 1455 of yacc.c  */
-#line 12978 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12998 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1979:
 
 /* Line 1455 of yacc.c  */
-#line 12979 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 12999 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1980:
 
 /* Line 1455 of yacc.c  */
-#line 12980 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13000 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1981:
 
 /* Line 1455 of yacc.c  */
-#line 12981 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13001 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1982:
 
 /* Line 1455 of yacc.c  */
-#line 12982 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13002 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1983:
 
 /* Line 1455 of yacc.c  */
-#line 12983 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13003 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1984:
 
 /* Line 1455 of yacc.c  */
-#line 12984 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13004 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1985:
 
 /* Line 1455 of yacc.c  */
-#line 12985 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13005 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1986:
 
 /* Line 1455 of yacc.c  */
-#line 12986 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13006 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1987:
 
 /* Line 1455 of yacc.c  */
-#line 12987 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13007 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1988:
 
 /* Line 1455 of yacc.c  */
-#line 12988 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13008 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1989:
 
 /* Line 1455 of yacc.c  */
-#line 12989 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13009 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1990:
 
 /* Line 1455 of yacc.c  */
-#line 12990 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13010 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1991:
 
 /* Line 1455 of yacc.c  */
-#line 12991 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13011 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1992:
 
 /* Line 1455 of yacc.c  */
-#line 12992 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13012 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1993:
 
 /* Line 1455 of yacc.c  */
-#line 12993 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13013 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1994:
 
 /* Line 1455 of yacc.c  */
-#line 12994 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13014 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1995:
 
 /* Line 1455 of yacc.c  */
-#line 12995 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13015 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1996:
 
 /* Line 1455 of yacc.c  */
-#line 12996 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13016 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1997:
 
 /* Line 1455 of yacc.c  */
-#line 12997 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13017 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1998:
 
 /* Line 1455 of yacc.c  */
-#line 12998 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13018 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 1999:
 
 /* Line 1455 of yacc.c  */
-#line 12999 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13019 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2000:
 
 /* Line 1455 of yacc.c  */
-#line 13000 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13020 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2001:
 
 /* Line 1455 of yacc.c  */
-#line 13001 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13021 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2002:
 
 /* Line 1455 of yacc.c  */
-#line 13002 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13022 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2003:
 
 /* Line 1455 of yacc.c  */
-#line 13003 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13023 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2004:
 
 /* Line 1455 of yacc.c  */
-#line 13004 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13024 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2005:
 
 /* Line 1455 of yacc.c  */
-#line 13005 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13025 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2006:
 
 /* Line 1455 of yacc.c  */
-#line 13006 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13026 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2007:
 
 /* Line 1455 of yacc.c  */
-#line 13007 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13027 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2008:
 
 /* Line 1455 of yacc.c  */
-#line 13008 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13028 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2009:
 
 /* Line 1455 of yacc.c  */
-#line 13009 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13029 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2010:
 
 /* Line 1455 of yacc.c  */
-#line 13010 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13030 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2011:
 
 /* Line 1455 of yacc.c  */
-#line 13011 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13031 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2012:
 
 /* Line 1455 of yacc.c  */
-#line 13012 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13032 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2013:
 
 /* Line 1455 of yacc.c  */
-#line 13013 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13033 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2014:
 
 /* Line 1455 of yacc.c  */
-#line 13014 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13034 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2015:
 
 /* Line 1455 of yacc.c  */
-#line 13015 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13035 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2016:
 
 /* Line 1455 of yacc.c  */
-#line 13016 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13036 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2017:
 
 /* Line 1455 of yacc.c  */
-#line 13017 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13037 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2018:
 
 /* Line 1455 of yacc.c  */
-#line 13018 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13038 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2019:
 
 /* Line 1455 of yacc.c  */
-#line 13019 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13039 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2020:
 
 /* Line 1455 of yacc.c  */
-#line 13020 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13040 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2021:
 
 /* Line 1455 of yacc.c  */
-#line 13021 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13041 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2022:
 
 /* Line 1455 of yacc.c  */
-#line 13022 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13042 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2023:
 
 /* Line 1455 of yacc.c  */
-#line 13023 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13043 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2024:
 
 /* Line 1455 of yacc.c  */
-#line 13033 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13044 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2025:
 
 /* Line 1455 of yacc.c  */
-#line 13034 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13054 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2026:
 
 /* Line 1455 of yacc.c  */
-#line 13035 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13055 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2027:
 
 /* Line 1455 of yacc.c  */
-#line 13036 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13056 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2028:
 
 /* Line 1455 of yacc.c  */
-#line 13037 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13057 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2029:
 
 /* Line 1455 of yacc.c  */
-#line 13038 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13058 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2030:
 
 /* Line 1455 of yacc.c  */
-#line 13039 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13059 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2031:
 
 /* Line 1455 of yacc.c  */
-#line 13040 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13060 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2032:
 
 /* Line 1455 of yacc.c  */
-#line 13041 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13061 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2033:
 
 /* Line 1455 of yacc.c  */
-#line 13042 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13062 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2034:
 
 /* Line 1455 of yacc.c  */
-#line 13043 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13063 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2035:
 
 /* Line 1455 of yacc.c  */
-#line 13044 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13064 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2036:
 
 /* Line 1455 of yacc.c  */
-#line 13045 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13065 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2037:
 
 /* Line 1455 of yacc.c  */
-#line 13046 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13066 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2038:
 
 /* Line 1455 of yacc.c  */
-#line 13047 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13067 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2039:
 
 /* Line 1455 of yacc.c  */
-#line 13048 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13068 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2040:
 
 /* Line 1455 of yacc.c  */
-#line 13049 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13069 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2041:
 
 /* Line 1455 of yacc.c  */
-#line 13050 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13070 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2042:
 
 /* Line 1455 of yacc.c  */
-#line 13051 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13071 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2043:
 
 /* Line 1455 of yacc.c  */
-#line 13052 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13072 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2044:
 
 /* Line 1455 of yacc.c  */
-#line 13053 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13073 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2045:
 
 /* Line 1455 of yacc.c  */
-#line 13054 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13074 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2046:
 
 /* Line 1455 of yacc.c  */
-#line 13055 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13075 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2047:
 
 /* Line 1455 of yacc.c  */
-#line 13056 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13076 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2048:
 
 /* Line 1455 of yacc.c  */
-#line 13057 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13077 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2049:
 
 /* Line 1455 of yacc.c  */
-#line 13058 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13078 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2050:
 
 /* Line 1455 of yacc.c  */
-#line 13059 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13079 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2051:
 
 /* Line 1455 of yacc.c  */
-#line 13060 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13080 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2052:
 
 /* Line 1455 of yacc.c  */
-#line 13061 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13081 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2053:
 
 /* Line 1455 of yacc.c  */
-#line 13062 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13082 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2054:
 
 /* Line 1455 of yacc.c  */
-#line 13063 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13083 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2055:
 
 /* Line 1455 of yacc.c  */
-#line 13064 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13084 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2056:
 
 /* Line 1455 of yacc.c  */
-#line 13065 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13085 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2057:
 
 /* Line 1455 of yacc.c  */
-#line 13066 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13086 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2058:
 
 /* Line 1455 of yacc.c  */
-#line 13067 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13087 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2059:
 
 /* Line 1455 of yacc.c  */
-#line 13068 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13088 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2060:
 
 /* Line 1455 of yacc.c  */
-#line 13069 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13089 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2061:
 
 /* Line 1455 of yacc.c  */
-#line 13070 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13090 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2062:
 
 /* Line 1455 of yacc.c  */
-#line 13071 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13091 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2063:
 
 /* Line 1455 of yacc.c  */
-#line 13072 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13092 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2064:
 
 /* Line 1455 of yacc.c  */
-#line 13073 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13093 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2065:
 
 /* Line 1455 of yacc.c  */
-#line 13074 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13094 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2066:
 
 /* Line 1455 of yacc.c  */
-#line 13075 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13095 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2067:
 
 /* Line 1455 of yacc.c  */
-#line 13076 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13096 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2068:
 
 /* Line 1455 of yacc.c  */
-#line 13077 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13097 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2069:
 
 /* Line 1455 of yacc.c  */
-#line 13078 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13098 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2070:
 
 /* Line 1455 of yacc.c  */
-#line 13079 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13099 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2071:
 
 /* Line 1455 of yacc.c  */
-#line 13080 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13100 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2072:
 
 /* Line 1455 of yacc.c  */
-#line 13081 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13101 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2073:
 
 /* Line 1455 of yacc.c  */
-#line 13082 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13102 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2074:
 
 /* Line 1455 of yacc.c  */
-#line 13083 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13103 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2075:
 
 /* Line 1455 of yacc.c  */
-#line 13084 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13104 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2076:
 
 /* Line 1455 of yacc.c  */
-#line 13085 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13105 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2077:
 
 /* Line 1455 of yacc.c  */
-#line 13086 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13106 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2078:
 
 /* Line 1455 of yacc.c  */
-#line 13087 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13107 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2079:
 
 /* Line 1455 of yacc.c  */
-#line 13088 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13108 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2080:
 
 /* Line 1455 of yacc.c  */
-#line 13089 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13109 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2081:
 
 /* Line 1455 of yacc.c  */
-#line 13090 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13110 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2082:
 
 /* Line 1455 of yacc.c  */
-#line 13091 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13111 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2083:
 
 /* Line 1455 of yacc.c  */
-#line 13092 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13112 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2084:
 
 /* Line 1455 of yacc.c  */
-#line 13093 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13113 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2085:
 
 /* Line 1455 of yacc.c  */
-#line 13094 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13114 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2086:
 
 /* Line 1455 of yacc.c  */
-#line 13095 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13115 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2087:
 
 /* Line 1455 of yacc.c  */
-#line 13096 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13116 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2088:
 
 /* Line 1455 of yacc.c  */
-#line 13097 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13117 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2089:
 
 /* Line 1455 of yacc.c  */
-#line 13098 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13118 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2090:
 
 /* Line 1455 of yacc.c  */
-#line 13099 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13119 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2091:
 
 /* Line 1455 of yacc.c  */
-#line 13100 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13120 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2092:
 
 /* Line 1455 of yacc.c  */
-#line 13101 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13121 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2093:
 
 /* Line 1455 of yacc.c  */
-#line 13102 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13122 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2094:
 
 /* Line 1455 of yacc.c  */
-#line 13103 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13123 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2095:
 
 /* Line 1455 of yacc.c  */
-#line 13104 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13124 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2096:
 
 /* Line 1455 of yacc.c  */
-#line 13105 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13125 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2097:
 
 /* Line 1455 of yacc.c  */
-#line 13106 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13126 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2098:
 
 /* Line 1455 of yacc.c  */
-#line 13107 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13127 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2099:
 
 /* Line 1455 of yacc.c  */
-#line 13108 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13128 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2100:
 
 /* Line 1455 of yacc.c  */
-#line 13109 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13129 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2101:
 
 /* Line 1455 of yacc.c  */
-#line 13110 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13130 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2102:
 
 /* Line 1455 of yacc.c  */
-#line 13111 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13131 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2103:
 
 /* Line 1455 of yacc.c  */
-#line 13112 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13132 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2104:
 
 /* Line 1455 of yacc.c  */
-#line 13113 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13133 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2105:
 
 /* Line 1455 of yacc.c  */
-#line 13114 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13134 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2106:
 
 /* Line 1455 of yacc.c  */
-#line 13115 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13135 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2107:
 
 /* Line 1455 of yacc.c  */
-#line 13116 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13136 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2108:
 
 /* Line 1455 of yacc.c  */
-#line 13117 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13137 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2109:
 
 /* Line 1455 of yacc.c  */
-#line 13118 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13138 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2110:
 
 /* Line 1455 of yacc.c  */
-#line 13119 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13139 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2111:
 
 /* Line 1455 of yacc.c  */
-#line 13120 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13140 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2112:
 
 /* Line 1455 of yacc.c  */
-#line 13121 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13141 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2113:
 
 /* Line 1455 of yacc.c  */
-#line 13122 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13142 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2114:
 
 /* Line 1455 of yacc.c  */
-#line 13123 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13143 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2115:
 
 /* Line 1455 of yacc.c  */
-#line 13124 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13144 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2116:
 
 /* Line 1455 of yacc.c  */
-#line 13125 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13145 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2117:
 
 /* Line 1455 of yacc.c  */
-#line 13126 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13146 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2118:
 
 /* Line 1455 of yacc.c  */
-#line 13127 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13147 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2119:
 
 /* Line 1455 of yacc.c  */
-#line 13128 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13148 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2120:
 
 /* Line 1455 of yacc.c  */
-#line 13129 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13149 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2121:
 
 /* Line 1455 of yacc.c  */
-#line 13130 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13150 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2122:
 
 /* Line 1455 of yacc.c  */
-#line 13131 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13151 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2123:
 
 /* Line 1455 of yacc.c  */
-#line 13132 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13152 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2124:
 
 /* Line 1455 of yacc.c  */
-#line 13133 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13153 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2125:
 
 /* Line 1455 of yacc.c  */
-#line 13134 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13154 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2126:
 
 /* Line 1455 of yacc.c  */
-#line 13135 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13155 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2127:
 
 /* Line 1455 of yacc.c  */
-#line 13136 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13156 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2128:
 
 /* Line 1455 of yacc.c  */
-#line 13137 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13157 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2129:
 
 /* Line 1455 of yacc.c  */
-#line 13138 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13158 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2130:
 
 /* Line 1455 of yacc.c  */
-#line 13139 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13159 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2131:
 
 /* Line 1455 of yacc.c  */
-#line 13140 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13160 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2132:
 
 /* Line 1455 of yacc.c  */
-#line 13141 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13161 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2133:
 
 /* Line 1455 of yacc.c  */
-#line 13142 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13162 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2134:
 
 /* Line 1455 of yacc.c  */
-#line 13143 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13163 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2135:
 
 /* Line 1455 of yacc.c  */
-#line 13144 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13164 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2136:
 
 /* Line 1455 of yacc.c  */
-#line 13145 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13165 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2137:
 
 /* Line 1455 of yacc.c  */
-#line 13146 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13166 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2138:
 
 /* Line 1455 of yacc.c  */
-#line 13147 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13167 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2139:
 
 /* Line 1455 of yacc.c  */
-#line 13148 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13168 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2140:
 
 /* Line 1455 of yacc.c  */
-#line 13149 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13169 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2141:
 
 /* Line 1455 of yacc.c  */
-#line 13150 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13170 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2142:
 
 /* Line 1455 of yacc.c  */
-#line 13151 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13171 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2143:
 
 /* Line 1455 of yacc.c  */
-#line 13152 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13172 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2144:
 
 /* Line 1455 of yacc.c  */
-#line 13153 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13173 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2145:
 
 /* Line 1455 of yacc.c  */
-#line 13154 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13174 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2146:
 
 /* Line 1455 of yacc.c  */
-#line 13155 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13175 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2147:
 
 /* Line 1455 of yacc.c  */
-#line 13156 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13176 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2148:
 
 /* Line 1455 of yacc.c  */
-#line 13157 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13177 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2149:
 
 /* Line 1455 of yacc.c  */
-#line 13158 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13178 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2150:
 
 /* Line 1455 of yacc.c  */
-#line 13159 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13179 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2151:
 
 /* Line 1455 of yacc.c  */
-#line 13160 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13180 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2152:
 
 /* Line 1455 of yacc.c  */
-#line 13161 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13181 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2153:
 
 /* Line 1455 of yacc.c  */
-#line 13162 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13182 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2154:
 
 /* Line 1455 of yacc.c  */
-#line 13163 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13183 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2155:
 
 /* Line 1455 of yacc.c  */
-#line 13164 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13184 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2156:
 
 /* Line 1455 of yacc.c  */
-#line 13165 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13185 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2157:
 
 /* Line 1455 of yacc.c  */
-#line 13166 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13186 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2158:
 
 /* Line 1455 of yacc.c  */
-#line 13167 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13187 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2159:
 
 /* Line 1455 of yacc.c  */
-#line 13168 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13188 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2160:
 
 /* Line 1455 of yacc.c  */
-#line 13169 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13189 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2161:
 
 /* Line 1455 of yacc.c  */
-#line 13170 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13190 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2162:
 
 /* Line 1455 of yacc.c  */
-#line 13171 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13191 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2163:
 
 /* Line 1455 of yacc.c  */
-#line 13172 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13192 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2164:
 
 /* Line 1455 of yacc.c  */
-#line 13173 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13193 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2165:
 
 /* Line 1455 of yacc.c  */
-#line 13174 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13194 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2166:
 
 /* Line 1455 of yacc.c  */
-#line 13175 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13195 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2167:
 
 /* Line 1455 of yacc.c  */
-#line 13176 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13196 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2168:
 
 /* Line 1455 of yacc.c  */
-#line 13177 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13197 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2169:
 
 /* Line 1455 of yacc.c  */
-#line 13178 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13198 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2170:
 
 /* Line 1455 of yacc.c  */
-#line 13179 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13199 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2171:
 
 /* Line 1455 of yacc.c  */
-#line 13180 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13200 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2172:
 
 /* Line 1455 of yacc.c  */
-#line 13181 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13201 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2173:
 
 /* Line 1455 of yacc.c  */
-#line 13182 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13202 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2174:
 
 /* Line 1455 of yacc.c  */
-#line 13183 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13203 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2175:
 
 /* Line 1455 of yacc.c  */
-#line 13184 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13204 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2176:
 
 /* Line 1455 of yacc.c  */
-#line 13185 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13205 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2177:
 
 /* Line 1455 of yacc.c  */
-#line 13186 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13206 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2178:
 
 /* Line 1455 of yacc.c  */
-#line 13187 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13207 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2179:
 
 /* Line 1455 of yacc.c  */
-#line 13188 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13208 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2180:
 
 /* Line 1455 of yacc.c  */
-#line 13189 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13209 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2181:
 
 /* Line 1455 of yacc.c  */
-#line 13190 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13210 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2182:
 
 /* Line 1455 of yacc.c  */
-#line 13191 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13211 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2183:
 
 /* Line 1455 of yacc.c  */
-#line 13192 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13212 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2184:
 
 /* Line 1455 of yacc.c  */
-#line 13193 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13213 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2185:
 
 /* Line 1455 of yacc.c  */
-#line 13194 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13214 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2186:
 
 /* Line 1455 of yacc.c  */
-#line 13195 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13215 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2187:
 
 /* Line 1455 of yacc.c  */
-#line 13196 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13216 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2188:
 
 /* Line 1455 of yacc.c  */
-#line 13197 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13217 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2189:
 
 /* Line 1455 of yacc.c  */
-#line 13198 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13218 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2190:
 
 /* Line 1455 of yacc.c  */
-#line 13199 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13219 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2191:
 
 /* Line 1455 of yacc.c  */
-#line 13200 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13220 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2192:
 
 /* Line 1455 of yacc.c  */
-#line 13201 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13221 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2193:
 
 /* Line 1455 of yacc.c  */
-#line 13202 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13222 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2194:
 
 /* Line 1455 of yacc.c  */
-#line 13203 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13223 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2195:
 
 /* Line 1455 of yacc.c  */
-#line 13204 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13224 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2196:
 
 /* Line 1455 of yacc.c  */
-#line 13205 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13225 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2197:
 
 /* Line 1455 of yacc.c  */
-#line 13206 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13226 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2198:
 
 /* Line 1455 of yacc.c  */
-#line 13207 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13227 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2199:
 
 /* Line 1455 of yacc.c  */
-#line 13208 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13228 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2200:
 
 /* Line 1455 of yacc.c  */
-#line 13209 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13229 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2201:
 
 /* Line 1455 of yacc.c  */
-#line 13210 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13230 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2202:
 
 /* Line 1455 of yacc.c  */
-#line 13211 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13231 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2203:
 
 /* Line 1455 of yacc.c  */
-#line 13212 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13232 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2204:
 
 /* Line 1455 of yacc.c  */
-#line 13213 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13233 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2205:
 
 /* Line 1455 of yacc.c  */
-#line 13214 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13234 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2206:
 
 /* Line 1455 of yacc.c  */
-#line 13215 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13235 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2207:
 
 /* Line 1455 of yacc.c  */
-#line 13216 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13236 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2208:
 
 /* Line 1455 of yacc.c  */
-#line 13217 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13237 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2209:
 
 /* Line 1455 of yacc.c  */
-#line 13218 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13238 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2210:
 
 /* Line 1455 of yacc.c  */
-#line 13219 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13239 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2211:
 
 /* Line 1455 of yacc.c  */
-#line 13220 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13240 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2212:
 
 /* Line 1455 of yacc.c  */
-#line 13221 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13241 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2213:
 
 /* Line 1455 of yacc.c  */
-#line 13222 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13242 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2214:
 
 /* Line 1455 of yacc.c  */
-#line 13223 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13243 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2215:
 
 /* Line 1455 of yacc.c  */
-#line 13224 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13244 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2216:
 
 /* Line 1455 of yacc.c  */
-#line 13225 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13245 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2217:
 
 /* Line 1455 of yacc.c  */
-#line 13226 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13246 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2218:
 
 /* Line 1455 of yacc.c  */
-#line 13227 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13247 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2219:
 
 /* Line 1455 of yacc.c  */
-#line 13228 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13248 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2220:
 
 /* Line 1455 of yacc.c  */
-#line 13229 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13249 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2221:
 
 /* Line 1455 of yacc.c  */
-#line 13230 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13250 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2222:
 
 /* Line 1455 of yacc.c  */
-#line 13231 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13251 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2223:
 
 /* Line 1455 of yacc.c  */
-#line 13232 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13252 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2224:
 
 /* Line 1455 of yacc.c  */
-#line 13233 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13253 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2225:
 
 /* Line 1455 of yacc.c  */
-#line 13234 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13254 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2226:
 
 /* Line 1455 of yacc.c  */
-#line 13235 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13255 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2227:
 
 /* Line 1455 of yacc.c  */
-#line 13236 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13256 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2228:
 
 /* Line 1455 of yacc.c  */
-#line 13237 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13257 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2229:
 
 /* Line 1455 of yacc.c  */
-#line 13238 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13258 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2230:
 
 /* Line 1455 of yacc.c  */
-#line 13239 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13259 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2231:
 
 /* Line 1455 of yacc.c  */
-#line 13240 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13260 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2232:
 
 /* Line 1455 of yacc.c  */
-#line 13241 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13261 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2233:
 
 /* Line 1455 of yacc.c  */
-#line 13242 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13262 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2234:
 
 /* Line 1455 of yacc.c  */
-#line 13243 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13263 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2235:
 
 /* Line 1455 of yacc.c  */
-#line 13244 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13264 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2236:
 
 /* Line 1455 of yacc.c  */
-#line 13245 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13265 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2237:
 
 /* Line 1455 of yacc.c  */
-#line 13246 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13266 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2238:
 
 /* Line 1455 of yacc.c  */
-#line 13247 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13267 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2239:
 
 /* Line 1455 of yacc.c  */
-#line 13248 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13268 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2240:
 
 /* Line 1455 of yacc.c  */
-#line 13249 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13269 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2241:
 
 /* Line 1455 of yacc.c  */
-#line 13250 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13270 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2242:
 
 /* Line 1455 of yacc.c  */
-#line 13251 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13271 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2243:
 
 /* Line 1455 of yacc.c  */
-#line 13252 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13272 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2244:
 
 /* Line 1455 of yacc.c  */
-#line 13253 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13273 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2245:
 
 /* Line 1455 of yacc.c  */
-#line 13254 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13274 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2246:
 
 /* Line 1455 of yacc.c  */
-#line 13255 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13275 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2247:
 
 /* Line 1455 of yacc.c  */
-#line 13256 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13276 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2248:
 
 /* Line 1455 of yacc.c  */
-#line 13257 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13277 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2249:
 
 /* Line 1455 of yacc.c  */
-#line 13258 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13278 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2250:
 
 /* Line 1455 of yacc.c  */
-#line 13259 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13279 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2251:
 
 /* Line 1455 of yacc.c  */
-#line 13260 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13280 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2252:
 
 /* Line 1455 of yacc.c  */
-#line 13261 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13281 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2253:
 
 /* Line 1455 of yacc.c  */
-#line 13262 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13282 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2254:
 
 /* Line 1455 of yacc.c  */
-#line 13263 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13283 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2255:
 
 /* Line 1455 of yacc.c  */
-#line 13264 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13284 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2256:
 
 /* Line 1455 of yacc.c  */
-#line 13265 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13285 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2257:
 
 /* Line 1455 of yacc.c  */
-#line 13266 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13286 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2258:
 
 /* Line 1455 of yacc.c  */
-#line 13267 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13287 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2259:
 
 /* Line 1455 of yacc.c  */
-#line 13268 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13288 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2260:
 
 /* Line 1455 of yacc.c  */
-#line 13269 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13289 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2261:
 
 /* Line 1455 of yacc.c  */
-#line 13270 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13290 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2262:
 
 /* Line 1455 of yacc.c  */
-#line 13271 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13291 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2263:
 
 /* Line 1455 of yacc.c  */
-#line 13272 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13292 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2264:
 
 /* Line 1455 of yacc.c  */
-#line 13273 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13293 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2265:
 
 /* Line 1455 of yacc.c  */
-#line 13274 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13294 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2266:
 
 /* Line 1455 of yacc.c  */
-#line 13275 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13295 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2267:
 
 /* Line 1455 of yacc.c  */
-#line 13276 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13296 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2268:
 
 /* Line 1455 of yacc.c  */
-#line 13277 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13297 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2269:
 
 /* Line 1455 of yacc.c  */
-#line 13278 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13298 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2270:
 
 /* Line 1455 of yacc.c  */
-#line 13279 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13299 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2271:
 
 /* Line 1455 of yacc.c  */
-#line 13280 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13300 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2272:
 
 /* Line 1455 of yacc.c  */
-#line 13281 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13301 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2273:
 
 /* Line 1455 of yacc.c  */
-#line 13282 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13302 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2274:
 
 /* Line 1455 of yacc.c  */
-#line 13283 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13303 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2275:
 
 /* Line 1455 of yacc.c  */
-#line 13284 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13304 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2276:
 
 /* Line 1455 of yacc.c  */
-#line 13285 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13305 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2277:
 
 /* Line 1455 of yacc.c  */
-#line 13286 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13306 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2278:
 
 /* Line 1455 of yacc.c  */
-#line 13287 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13307 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2279:
 
 /* Line 1455 of yacc.c  */
-#line 13288 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13308 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2280:
 
 /* Line 1455 of yacc.c  */
-#line 13289 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13309 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2281:
 
 /* Line 1455 of yacc.c  */
-#line 13290 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13310 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2282:
 
 /* Line 1455 of yacc.c  */
-#line 13291 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13311 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2283:
 
 /* Line 1455 of yacc.c  */
-#line 13292 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13312 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2284:
 
 /* Line 1455 of yacc.c  */
-#line 13293 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13313 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2285:
 
 /* Line 1455 of yacc.c  */
-#line 13294 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13314 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2286:
 
 /* Line 1455 of yacc.c  */
-#line 13295 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13315 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2287:
 
 /* Line 1455 of yacc.c  */
-#line 13296 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13316 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2288:
 
 /* Line 1455 of yacc.c  */
-#line 13297 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13317 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2289:
 
 /* Line 1455 of yacc.c  */
-#line 13298 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13318 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2290:
 
 /* Line 1455 of yacc.c  */
-#line 13299 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13319 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2291:
 
 /* Line 1455 of yacc.c  */
-#line 13300 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13320 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2292:
 
 /* Line 1455 of yacc.c  */
-#line 13301 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13321 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2293:
 
 /* Line 1455 of yacc.c  */
-#line 13302 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13322 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2294:
 
 /* Line 1455 of yacc.c  */
-#line 13303 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13323 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2295:
 
 /* Line 1455 of yacc.c  */
-#line 13304 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13324 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2296:
 
 /* Line 1455 of yacc.c  */
-#line 13305 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13325 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2297:
 
 /* Line 1455 of yacc.c  */
-#line 13306 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13326 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2298:
 
 /* Line 1455 of yacc.c  */
-#line 13307 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13327 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2299:
 
 /* Line 1455 of yacc.c  */
-#line 13308 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13328 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2300:
 
 /* Line 1455 of yacc.c  */
-#line 13309 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13329 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2301:
 
 /* Line 1455 of yacc.c  */
-#line 13310 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13330 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2302:
 
 /* Line 1455 of yacc.c  */
-#line 13311 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13331 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2303:
 
 /* Line 1455 of yacc.c  */
-#line 13312 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13332 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2304:
 
 /* Line 1455 of yacc.c  */
-#line 13313 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13333 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2305:
 
 /* Line 1455 of yacc.c  */
-#line 13314 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13334 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2306:
 
 /* Line 1455 of yacc.c  */
-#line 13315 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13335 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2307:
 
 /* Line 1455 of yacc.c  */
-#line 13316 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13336 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2308:
 
 /* Line 1455 of yacc.c  */
-#line 13317 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13337 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2309:
 
 /* Line 1455 of yacc.c  */
-#line 13318 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13338 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2310:
 
 /* Line 1455 of yacc.c  */
-#line 13319 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13339 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2311:
 
 /* Line 1455 of yacc.c  */
-#line 13320 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13340 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2312:
 
 /* Line 1455 of yacc.c  */
-#line 13321 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13341 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2313:
 
 /* Line 1455 of yacc.c  */
-#line 13322 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13342 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2314:
 
 /* Line 1455 of yacc.c  */
-#line 13323 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13343 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2315:
 
 /* Line 1455 of yacc.c  */
-#line 13324 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13344 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
   case 2316:
 
 /* Line 1455 of yacc.c  */
-#line 13331 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13345 "/home/buildbot/git/sql/sql_yacc.yy"
+    {}
+    break;
+
+  case 2317:
+
+/* Line 1455 of yacc.c  */
+#line 13346 "/home/buildbot/git/sql/sql_yacc.yy"
+    {}
+    break;
+
+  case 2318:
+
+/* Line 1455 of yacc.c  */
+#line 13353 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_SET_OPTION;
@@ -37897,31 +37958,31 @@ yyreduce:
           }
     break;
 
-  case 2317:
+  case 2319:
 
 /* Line 1455 of yacc.c  */
-#line 13341 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13363 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2318:
+  case 2320:
 
 /* Line 1455 of yacc.c  */
-#line 13345 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13367 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2319:
+  case 2321:
 
 /* Line 1455 of yacc.c  */
-#line 13346 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13368 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2322:
+  case 2324:
 
 /* Line 1455 of yacc.c  */
-#line 13355 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13377 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             Lex_input_stream *lip= YYLIP;
@@ -37953,10 +38014,10 @@ yyreduce:
           }
     break;
 
-  case 2323:
+  case 2325:
 
 /* Line 1455 of yacc.c  */
-#line 13385 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13407 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             Lex_input_stream *lip= YYLIP;
@@ -38006,108 +38067,108 @@ yyreduce:
           }
     break;
 
-  case 2324:
+  case 2326:
 
 /* Line 1455 of yacc.c  */
-#line 13435 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13457 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2325:
+  case 2327:
 
 /* Line 1455 of yacc.c  */
-#line 13436 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13458 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.var_type)=OPT_GLOBAL; }
     break;
 
-  case 2326:
+  case 2328:
 
 /* Line 1455 of yacc.c  */
-#line 13437 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13459 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.var_type)=OPT_SESSION; }
     break;
 
-  case 2327:
+  case 2329:
 
 /* Line 1455 of yacc.c  */
-#line 13438 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13460 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.var_type)=OPT_SESSION; }
     break;
 
-  case 2328:
+  case 2330:
 
 /* Line 1455 of yacc.c  */
-#line 13442 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13464 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= OPT_DEFAULT; }
     break;
 
-  case 2329:
+  case 2331:
 
 /* Line 1455 of yacc.c  */
-#line 13443 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13465 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->one_shot_set= 1; (yyval.num)= OPT_SESSION; }
     break;
 
-  case 2330:
+  case 2332:
 
 /* Line 1455 of yacc.c  */
-#line 13447 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13469 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.var_type)=OPT_SESSION; }
     break;
 
-  case 2331:
+  case 2333:
 
 /* Line 1455 of yacc.c  */
-#line 13448 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13470 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.var_type)=OPT_GLOBAL; }
     break;
 
-  case 2332:
+  case 2334:
 
 /* Line 1455 of yacc.c  */
-#line 13449 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13471 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.var_type)=OPT_SESSION; }
     break;
 
-  case 2333:
+  case 2335:
 
 /* Line 1455 of yacc.c  */
-#line 13450 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13472 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.var_type)=OPT_SESSION; }
     break;
 
-  case 2334:
+  case 2336:
 
 /* Line 1455 of yacc.c  */
-#line 13454 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13476 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.var_type)=OPT_DEFAULT; }
     break;
 
-  case 2335:
+  case 2337:
 
 /* Line 1455 of yacc.c  */
-#line 13455 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13477 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.var_type)=OPT_GLOBAL; }
     break;
 
-  case 2336:
+  case 2338:
 
 /* Line 1455 of yacc.c  */
-#line 13456 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13478 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.var_type)=OPT_SESSION; }
     break;
 
-  case 2337:
+  case 2339:
 
 /* Line 1455 of yacc.c  */
-#line 13457 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13479 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.var_type)=OPT_SESSION; }
     break;
 
-  case 2340:
+  case 2342:
 
 /* Line 1455 of yacc.c  */
-#line 13467 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13489 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             LEX_STRING *name= &(yyvsp[(2) - (4)].variable).base_name;
@@ -38150,10 +38211,10 @@ yyreduce:
           }
     break;
 
-  case 2341:
+  case 2343:
 
 /* Line 1455 of yacc.c  */
-#line 13508 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13530 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->option_type= (yyvsp[(1) - (5)].var_type);
@@ -38170,10 +38231,10 @@ yyreduce:
           }
     break;
 
-  case 2342:
+  case 2344:
 
 /* Line 1455 of yacc.c  */
-#line 13526 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13548 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Item_func_set_user_var *item;
             item= new (thd->mem_root) Item_func_set_user_var((yyvsp[(2) - (4)].lex_str), (yyvsp[(4) - (4)].item));
@@ -38186,10 +38247,10 @@ yyreduce:
           }
     break;
 
-  case 2343:
+  case 2345:
 
 /* Line 1455 of yacc.c  */
-#line 13537 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13559 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             struct sys_var_with_base tmp= (yyvsp[(4) - (6)].variable);
             /* Lookup if necessary: must be a system variable. */
@@ -38203,10 +38264,10 @@ yyreduce:
           }
     break;
 
-  case 2344:
+  case 2346:
 
 /* Line 1455 of yacc.c  */
-#line 13549 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13571 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             CHARSET_INFO *cs2;
@@ -38221,10 +38282,10 @@ yyreduce:
           }
     break;
 
-  case 2345:
+  case 2347:
 
 /* Line 1455 of yacc.c  */
-#line 13562 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13584 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_pcontext *spc= lex->spcont;
@@ -38241,10 +38302,10 @@ yyreduce:
           }
     break;
 
-  case 2346:
+  case 2348:
 
 /* Line 1455 of yacc.c  */
-#line 13577 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13599 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             CHARSET_INFO *cs2;
@@ -38265,10 +38326,10 @@ yyreduce:
           }
     break;
 
-  case 2347:
+  case 2349:
 
 /* Line 1455 of yacc.c  */
-#line 13596 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13618 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             LEX_USER *user;
@@ -38296,10 +38357,10 @@ yyreduce:
           }
     break;
 
-  case 2348:
+  case 2350:
 
 /* Line 1455 of yacc.c  */
-#line 13622 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13644 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             set_var_password *var= new set_var_password((yyvsp[(3) - (5)].lex_user),(yyvsp[(5) - (5)].simple_string));
             if (var == NULL)
@@ -38311,10 +38372,10 @@ yyreduce:
           }
     break;
 
-  case 2349:
+  case 2351:
 
 /* Line 1455 of yacc.c  */
-#line 13635 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13657 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             sp_pcontext *spc= thd->lex->spcont;
             sp_variable_t *spv;
@@ -38342,10 +38403,10 @@ yyreduce:
           }
     break;
 
-  case 2350:
+  case 2352:
 
 /* Line 1455 of yacc.c  */
-#line 13661 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13683 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (check_reserved_words(&(yyvsp[(1) - (3)].lex_str)))
@@ -38390,10 +38451,10 @@ yyreduce:
           }
     break;
 
-  case 2351:
+  case 2353:
 
 /* Line 1455 of yacc.c  */
-#line 13704 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13726 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             sys_var *tmp=find_sys_var(thd, (yyvsp[(3) - (3)].lex_str).str, (yyvsp[(3) - (3)].lex_str).length);
             if (!tmp)
@@ -38406,45 +38467,45 @@ yyreduce:
           }
     break;
 
-  case 2352:
+  case 2354:
 
 /* Line 1455 of yacc.c  */
-#line 13717 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13739 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; }
     break;
 
-  case 2353:
+  case 2355:
 
 /* Line 1455 of yacc.c  */
-#line 13718 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13740 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.tx_isolation)= ISO_READ_COMMITTED; }
     break;
 
-  case 2354:
+  case 2356:
 
 /* Line 1455 of yacc.c  */
-#line 13719 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13741 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.tx_isolation)= ISO_REPEATABLE_READ; }
     break;
 
-  case 2355:
+  case 2357:
 
 /* Line 1455 of yacc.c  */
-#line 13720 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13742 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.tx_isolation)= ISO_SERIALIZABLE; }
     break;
 
-  case 2356:
+  case 2358:
 
 /* Line 1455 of yacc.c  */
-#line 13724 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13746 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.simple_string)=(yyvsp[(1) - (1)].lex_str).str;}
     break;
 
-  case 2357:
+  case 2359:
 
 /* Line 1455 of yacc.c  */
-#line 13726 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13748 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.simple_string)= (yyvsp[(3) - (4)].lex_str).length ? thd->variables.old_passwords ?
               Item_func_old_password::alloc(thd, (yyvsp[(3) - (4)].lex_str).str, (yyvsp[(3) - (4)].lex_str).length) :
@@ -38455,10 +38516,10 @@ yyreduce:
           }
     break;
 
-  case 2358:
+  case 2360:
 
 /* Line 1455 of yacc.c  */
-#line 13735 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13757 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.simple_string)= (yyvsp[(3) - (4)].lex_str).length ? Item_func_old_password::alloc(thd, (yyvsp[(3) - (4)].lex_str).str,
                                                           (yyvsp[(3) - (4)].lex_str).length) :
@@ -38468,24 +38529,24 @@ yyreduce:
           }
     break;
 
-  case 2359:
+  case 2361:
 
 /* Line 1455 of yacc.c  */
-#line 13746 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13768 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)=(yyvsp[(1) - (1)].item); }
     break;
 
-  case 2360:
+  case 2362:
 
 /* Line 1455 of yacc.c  */
-#line 13747 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13769 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.item)=0; }
     break;
 
-  case 2361:
+  case 2363:
 
 /* Line 1455 of yacc.c  */
-#line 13749 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13771 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)=new (thd->mem_root) Item_string("ON",  2, system_charset_info);
             if ((yyval.item) == NULL)
@@ -38493,10 +38554,10 @@ yyreduce:
           }
     break;
 
-  case 2362:
+  case 2364:
 
 /* Line 1455 of yacc.c  */
-#line 13755 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13777 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)=new (thd->mem_root) Item_string("ALL", 3, system_charset_info);
             if ((yyval.item) == NULL)
@@ -38504,10 +38565,10 @@ yyreduce:
           }
     break;
 
-  case 2363:
+  case 2365:
 
 /* Line 1455 of yacc.c  */
-#line 13761 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13783 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.item)=new (thd->mem_root) Item_string("binary", 6, system_charset_info);
             if ((yyval.item) == NULL)
@@ -38515,10 +38576,10 @@ yyreduce:
           }
     break;
 
-  case 2364:
+  case 2366:
 
 /* Line 1455 of yacc.c  */
-#line 13772 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13794 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -38531,17 +38592,38 @@ yyreduce:
           }
     break;
 
-  case 2365:
+  case 2367:
 
 /* Line 1455 of yacc.c  */
-#line 13783 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13805 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2370:
+  case 2368:
+
+/* Line 1455 of yacc.c  */
+#line 13809 "/home/buildbot/git/sql/sql_yacc.yy"
+    { Lex->only_view= FALSE; }
+    break;
+
+  case 2369:
+
+/* Line 1455 of yacc.c  */
+#line 13810 "/home/buildbot/git/sql/sql_yacc.yy"
+    { Lex->only_view= FALSE; }
+    break;
+
+  case 2371:
+
+/* Line 1455 of yacc.c  */
+#line 13815 "/home/buildbot/git/sql/sql_yacc.yy"
+    { Lex->only_view= TRUE;  }
+    break;
+
+  case 2374:
 
 /* Line 1455 of yacc.c  */
-#line 13798 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13825 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             thr_lock_type lock_type= (thr_lock_type) (yyvsp[(3) - (3)].num);
             bool lock_for_write= (lock_type >= TL_WRITE_ALLOW_WRITE);
@@ -38555,47 +38637,47 @@ yyreduce:
           }
     break;
 
-  case 2371:
+  case 2375:
 
 /* Line 1455 of yacc.c  */
-#line 13812 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13839 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= TL_READ_NO_INSERT; }
     break;
 
-  case 2372:
+  case 2376:
 
 /* Line 1455 of yacc.c  */
-#line 13813 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13840 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= TL_WRITE_DEFAULT; }
     break;
 
-  case 2373:
+  case 2377:
 
 /* Line 1455 of yacc.c  */
-#line 13815 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13842 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.num)= (Lex->sphead ? TL_WRITE_DEFAULT : TL_WRITE_CONCURRENT_INSERT);
           }
     break;
 
-  case 2374:
+  case 2378:
 
 /* Line 1455 of yacc.c  */
-#line 13819 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13846 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= TL_WRITE_LOW_PRIORITY; }
     break;
 
-  case 2375:
+  case 2379:
 
 /* Line 1455 of yacc.c  */
-#line 13820 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13847 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= TL_READ; }
     break;
 
-  case 2376:
+  case 2380:
 
 /* Line 1455 of yacc.c  */
-#line 13825 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13852 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
 
@@ -38608,17 +38690,17 @@ yyreduce:
           }
     break;
 
-  case 2377:
+  case 2381:
 
 /* Line 1455 of yacc.c  */
-#line 13836 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13863 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2378:
+  case 2382:
 
 /* Line 1455 of yacc.c  */
-#line 13845 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13872 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->sphead)
@@ -38632,10 +38714,10 @@ yyreduce:
           }
     break;
 
-  case 2379:
+  case 2383:
 
 /* Line 1455 of yacc.c  */
-#line 13857 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13884 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->sphead)
@@ -38649,10 +38731,10 @@ yyreduce:
           }
     break;
 
-  case 2380:
+  case 2384:
 
 /* Line 1455 of yacc.c  */
-#line 13869 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13896 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (lex->sphead)
@@ -38674,10 +38756,10 @@ yyreduce:
           }
     break;
 
-  case 2381:
+  case 2385:
 
 /* Line 1455 of yacc.c  */
-#line 13889 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13916 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->expr_allows_subselect= TRUE;
             /* Stored functions are not supported for HANDLER READ. */
@@ -38690,66 +38772,66 @@ yyreduce:
           }
     break;
 
-  case 2382:
+  case 2386:
 
 /* Line 1455 of yacc.c  */
-#line 13902 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13929 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ident= null_lex_str; }
     break;
 
-  case 2383:
+  case 2387:
 
 /* Line 1455 of yacc.c  */
-#line 13903 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13930 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ident= (yyvsp[(1) - (2)].lex_str); }
     break;
 
-  case 2384:
+  case 2388:
 
 /* Line 1455 of yacc.c  */
-#line 13907 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13934 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ha_read_mode = RFIRST; }
     break;
 
-  case 2385:
+  case 2389:
 
 /* Line 1455 of yacc.c  */
-#line 13908 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13935 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ha_read_mode = RNEXT;  }
     break;
 
-  case 2386:
+  case 2390:
 
 /* Line 1455 of yacc.c  */
-#line 13912 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13939 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ha_read_mode = RFIRST; }
     break;
 
-  case 2387:
+  case 2391:
 
 /* Line 1455 of yacc.c  */
-#line 13913 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13940 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ha_read_mode = RNEXT;  }
     break;
 
-  case 2388:
+  case 2392:
 
 /* Line 1455 of yacc.c  */
-#line 13914 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13941 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ha_read_mode = RPREV;  }
     break;
 
-  case 2389:
+  case 2393:
 
 /* Line 1455 of yacc.c  */
-#line 13915 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13942 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->ha_read_mode = RLAST;  }
     break;
 
-  case 2390:
+  case 2394:
 
 /* Line 1455 of yacc.c  */
-#line 13917 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13944 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->ha_read_mode = RKEY;
@@ -38759,59 +38841,59 @@ yyreduce:
           }
     break;
 
-  case 2391:
+  case 2395:
 
 /* Line 1455 of yacc.c  */
-#line 13925 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13952 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2392:
+  case 2396:
 
 /* Line 1455 of yacc.c  */
-#line 13929 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13956 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT;   }
     break;
 
-  case 2393:
+  case 2397:
 
 /* Line 1455 of yacc.c  */
-#line 13930 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13957 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; }
     break;
 
-  case 2394:
+  case 2398:
 
 /* Line 1455 of yacc.c  */
-#line 13931 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13958 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; }
     break;
 
-  case 2395:
+  case 2399:
 
 /* Line 1455 of yacc.c  */
-#line 13932 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13959 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY;   }
     break;
 
-  case 2396:
+  case 2400:
 
 /* Line 1455 of yacc.c  */
-#line 13933 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13960 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY;  }
     break;
 
-  case 2397:
+  case 2401:
 
 /* Line 1455 of yacc.c  */
-#line 13940 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13967 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2398:
+  case 2402:
 
 /* Line 1455 of yacc.c  */
-#line 13945 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13972 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_REVOKE;
@@ -38819,10 +38901,10 @@ yyreduce:
           }
     break;
 
-  case 2399:
+  case 2403:
 
 /* Line 1455 of yacc.c  */
-#line 13951 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13978 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->columns.elements)
@@ -38835,10 +38917,10 @@ yyreduce:
           }
     break;
 
-  case 2400:
+  case 2404:
 
 /* Line 1455 of yacc.c  */
-#line 13962 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 13989 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->columns.elements)
@@ -38851,19 +38933,19 @@ yyreduce:
           }
     break;
 
-  case 2401:
+  case 2405:
 
 /* Line 1455 of yacc.c  */
-#line 13973 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14000 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_REVOKE_ALL;
           }
     break;
 
-  case 2402:
+  case 2406:
 
 /* Line 1455 of yacc.c  */
-#line 13977 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14004 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->users_list.push_front ((yyvsp[(3) - (5)].lex_user));
@@ -38872,17 +38954,17 @@ yyreduce:
           }
     break;
 
-  case 2403:
+  case 2407:
 
 /* Line 1455 of yacc.c  */
-#line 13987 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14014 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2404:
+  case 2408:
 
 /* Line 1455 of yacc.c  */
-#line 13993 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14020 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_GRANT;
@@ -38890,10 +38972,10 @@ yyreduce:
           }
     break;
 
-  case 2405:
+  case 2409:
 
 /* Line 1455 of yacc.c  */
-#line 14000 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14027 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->columns.elements)
@@ -38906,10 +38988,10 @@ yyreduce:
           }
     break;
 
-  case 2406:
+  case 2410:
 
 /* Line 1455 of yacc.c  */
-#line 14012 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14039 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             if (lex->columns.elements)
@@ -38922,10 +39004,10 @@ yyreduce:
           }
     break;
 
-  case 2407:
+  case 2411:
 
 /* Line 1455 of yacc.c  */
-#line 14023 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14050 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->users_list.push_front ((yyvsp[(3) - (6)].lex_user));
@@ -38934,279 +39016,279 @@ yyreduce:
           }
     break;
 
-  case 2410:
+  case 2414:
 
 /* Line 1455 of yacc.c  */
-#line 14037 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14064 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2411:
+  case 2415:
 
 /* Line 1455 of yacc.c  */
-#line 14039 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14066 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             Lex->all_privileges= 1; 
             Lex->grant= GLOBAL_ACLS;
           }
     break;
 
-  case 2416:
+  case 2420:
 
 /* Line 1455 of yacc.c  */
-#line 14057 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14084 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->which_columns = SELECT_ACL;}
     break;
 
-  case 2417:
+  case 2421:
 
 /* Line 1455 of yacc.c  */
-#line 14058 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14085 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2418:
+  case 2422:
 
 /* Line 1455 of yacc.c  */
-#line 14060 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14087 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->which_columns = INSERT_ACL;}
     break;
 
-  case 2419:
+  case 2423:
 
 /* Line 1455 of yacc.c  */
-#line 14061 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14088 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2420:
+  case 2424:
 
 /* Line 1455 of yacc.c  */
-#line 14063 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14090 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->which_columns = UPDATE_ACL; }
     break;
 
-  case 2421:
+  case 2425:
 
 /* Line 1455 of yacc.c  */
-#line 14064 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14091 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2422:
+  case 2426:
 
 /* Line 1455 of yacc.c  */
-#line 14066 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14093 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->which_columns = REFERENCES_ACL;}
     break;
 
-  case 2423:
+  case 2427:
 
 /* Line 1455 of yacc.c  */
-#line 14067 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14094 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2424:
+  case 2428:
 
 /* Line 1455 of yacc.c  */
-#line 14068 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14095 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= DELETE_ACL;}
     break;
 
-  case 2425:
+  case 2429:
 
 /* Line 1455 of yacc.c  */
-#line 14069 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14096 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2426:
+  case 2430:
 
 /* Line 1455 of yacc.c  */
-#line 14070 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14097 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= INDEX_ACL;}
     break;
 
-  case 2427:
+  case 2431:
 
 /* Line 1455 of yacc.c  */
-#line 14071 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14098 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= ALTER_ACL;}
     break;
 
-  case 2428:
+  case 2432:
 
 /* Line 1455 of yacc.c  */
-#line 14072 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14099 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= CREATE_ACL;}
     break;
 
-  case 2429:
+  case 2433:
 
 /* Line 1455 of yacc.c  */
-#line 14073 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14100 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= DROP_ACL;}
     break;
 
-  case 2430:
+  case 2434:
 
 /* Line 1455 of yacc.c  */
-#line 14074 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14101 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= EXECUTE_ACL;}
     break;
 
-  case 2431:
+  case 2435:
 
 /* Line 1455 of yacc.c  */
-#line 14075 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14102 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= RELOAD_ACL;}
     break;
 
-  case 2432:
+  case 2436:
 
 /* Line 1455 of yacc.c  */
-#line 14076 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14103 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= SHUTDOWN_ACL;}
     break;
 
-  case 2433:
+  case 2437:
 
 /* Line 1455 of yacc.c  */
-#line 14077 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14104 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= PROCESS_ACL;}
     break;
 
-  case 2434:
+  case 2438:
 
 /* Line 1455 of yacc.c  */
-#line 14078 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14105 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= FILE_ACL;}
     break;
 
-  case 2435:
+  case 2439:
 
 /* Line 1455 of yacc.c  */
-#line 14079 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14106 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= GRANT_ACL;}
     break;
 
-  case 2436:
+  case 2440:
 
 /* Line 1455 of yacc.c  */
-#line 14080 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14107 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= SHOW_DB_ACL;}
     break;
 
-  case 2437:
+  case 2441:
 
 /* Line 1455 of yacc.c  */
-#line 14081 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14108 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= SUPER_ACL;}
     break;
 
-  case 2438:
+  case 2442:
 
 /* Line 1455 of yacc.c  */
-#line 14082 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14109 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= CREATE_TMP_ACL;}
     break;
 
-  case 2439:
+  case 2443:
 
 /* Line 1455 of yacc.c  */
-#line 14083 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14110 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= LOCK_TABLES_ACL; }
     break;
 
-  case 2440:
+  case 2444:
 
 /* Line 1455 of yacc.c  */
-#line 14084 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14111 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= REPL_SLAVE_ACL; }
     break;
 
-  case 2441:
+  case 2445:
 
 /* Line 1455 of yacc.c  */
-#line 14085 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14112 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= REPL_CLIENT_ACL; }
     break;
 
-  case 2442:
+  case 2446:
 
 /* Line 1455 of yacc.c  */
-#line 14086 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14113 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= CREATE_VIEW_ACL; }
     break;
 
-  case 2443:
+  case 2447:
 
 /* Line 1455 of yacc.c  */
-#line 14087 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14114 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= SHOW_VIEW_ACL; }
     break;
 
-  case 2444:
+  case 2448:
 
 /* Line 1455 of yacc.c  */
-#line 14088 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14115 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= CREATE_PROC_ACL; }
     break;
 
-  case 2445:
+  case 2449:
 
 /* Line 1455 of yacc.c  */
-#line 14089 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14116 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= ALTER_PROC_ACL; }
     break;
 
-  case 2446:
+  case 2450:
 
 /* Line 1455 of yacc.c  */
-#line 14090 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14117 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= CREATE_USER_ACL; }
     break;
 
-  case 2447:
+  case 2451:
 
 /* Line 1455 of yacc.c  */
-#line 14091 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14118 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= EVENT_ACL;}
     break;
 
-  case 2448:
+  case 2452:
 
 /* Line 1455 of yacc.c  */
-#line 14092 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14119 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= TRIGGER_ACL; }
     break;
 
-  case 2449:
+  case 2453:
 
 /* Line 1455 of yacc.c  */
-#line 14093 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14120 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= CREATE_TABLESPACE_ACL; }
     break;
 
-  case 2450:
+  case 2454:
 
 /* Line 1455 of yacc.c  */
-#line 14097 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14124 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2451:
+  case 2455:
 
 /* Line 1455 of yacc.c  */
-#line 14098 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14125 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2454:
+  case 2458:
 
 /* Line 1455 of yacc.c  */
-#line 14108 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14135 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (lex->x509_subject)
@@ -39218,10 +39300,10 @@ yyreduce:
           }
     break;
 
-  case 2455:
+  case 2459:
 
 /* Line 1455 of yacc.c  */
-#line 14118 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14145 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (lex->x509_issuer)
@@ -39233,10 +39315,10 @@ yyreduce:
           }
     break;
 
-  case 2456:
+  case 2460:
 
 /* Line 1455 of yacc.c  */
-#line 14128 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14155 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (lex->ssl_cipher)
@@ -39248,10 +39330,10 @@ yyreduce:
           }
     break;
 
-  case 2457:
+  case 2461:
 
 /* Line 1455 of yacc.c  */
-#line 14141 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14168 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             size_t dummy;
@@ -39268,10 +39350,10 @@ yyreduce:
           }
     break;
 
-  case 2458:
+  case 2462:
 
 /* Line 1455 of yacc.c  */
-#line 14156 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14183 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->current_select->db = (yyvsp[(1) - (3)].lex_str).str;
@@ -39286,10 +39368,10 @@ yyreduce:
           }
     break;
 
-  case 2459:
+  case 2463:
 
 /* Line 1455 of yacc.c  */
-#line 14169 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14196 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->current_select->db = NULL;
@@ -39304,10 +39386,10 @@ yyreduce:
           }
     break;
 
-  case 2460:
+  case 2464:
 
 /* Line 1455 of yacc.c  */
-#line 14182 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14209 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[(1) - (1)].table),NULL,
@@ -39318,50 +39400,50 @@ yyreduce:
           }
     break;
 
-  case 2461:
+  case 2465:
 
 /* Line 1455 of yacc.c  */
-#line 14194 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14221 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->users_list.push_back((yyvsp[(1) - (1)].lex_user)))
               MYSQL_YYABORT;
           }
     break;
 
-  case 2462:
+  case 2466:
 
 /* Line 1455 of yacc.c  */
-#line 14199 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14226 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
               MYSQL_YYABORT;
           }
     break;
 
-  case 2463:
+  case 2467:
 
 /* Line 1455 of yacc.c  */
-#line 14207 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14234 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->users_list.push_back((yyvsp[(1) - (1)].lex_user)))
               MYSQL_YYABORT;
           }
     break;
 
-  case 2464:
+  case 2468:
 
 /* Line 1455 of yacc.c  */
-#line 14212 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14239 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (Lex->users_list.push_back((yyvsp[(3) - (3)].lex_user)))
               MYSQL_YYABORT;
           }
     break;
 
-  case 2469:
+  case 2473:
 
 /* Line 1455 of yacc.c  */
-#line 14223 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14250 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.lex_user)=(yyvsp[(1) - (4)].lex_user); (yyvsp[(1) - (4)].lex_user)->password=(yyvsp[(4) - (4)].lex_str);
             if ((yyvsp[(4) - (4)].lex_str).length)
@@ -39390,20 +39472,20 @@ yyreduce:
           }
     break;
 
-  case 2470:
+  case 2474:
 
 /* Line 1455 of yacc.c  */
-#line 14250 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14277 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             (yyval.lex_user)= (yyvsp[(1) - (5)].lex_user); 
             (yyvsp[(1) - (5)].lex_user)->password= (yyvsp[(5) - (5)].lex_str); 
           }
     break;
 
-  case 2471:
+  case 2475:
 
 /* Line 1455 of yacc.c  */
-#line 14255 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14282 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.lex_user)= (yyvsp[(1) - (4)].lex_user);
             (yyvsp[(1) - (4)].lex_user)->plugin= (yyvsp[(4) - (4)].lex_str);
@@ -39411,10 +39493,10 @@ yyreduce:
           }
     break;
 
-  case 2472:
+  case 2476:
 
 /* Line 1455 of yacc.c  */
-#line 14261 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14288 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.lex_user)= (yyvsp[(1) - (6)].lex_user);
             (yyvsp[(1) - (6)].lex_user)->plugin= (yyvsp[(4) - (6)].lex_str);
@@ -39422,27 +39504,27 @@ yyreduce:
           }
     break;
 
-  case 2473:
+  case 2477:
 
 /* Line 1455 of yacc.c  */
-#line 14267 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14294 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.lex_user)= (yyvsp[(1) - (1)].lex_user); (yyvsp[(1) - (1)].lex_user)->password= null_lex_str; }
     break;
 
-  case 2474:
+  case 2478:
 
 /* Line 1455 of yacc.c  */
-#line 14272 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14299 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->grant |= lex->which_columns;
           }
     break;
 
-  case 2478:
+  case 2482:
 
 /* Line 1455 of yacc.c  */
-#line 14286 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14313 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             String *new_str = new (thd->mem_root) String((const char*) (yyvsp[(1) - (1)].lex_str).str,(yyvsp[(1) - (1)].lex_str).length,system_charset_info);
             if (new_str == NULL)
@@ -39469,88 +39551,88 @@ yyreduce:
           }
     break;
 
-  case 2480:
+  case 2484:
 
 /* Line 1455 of yacc.c  */
-#line 14315 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14342 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->ssl_type=SSL_TYPE_SPECIFIED;
           }
     break;
 
-  case 2481:
+  case 2485:
 
 /* Line 1455 of yacc.c  */
-#line 14319 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14346 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->ssl_type=SSL_TYPE_ANY;
           }
     break;
 
-  case 2482:
+  case 2486:
 
 /* Line 1455 of yacc.c  */
-#line 14323 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14350 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->ssl_type=SSL_TYPE_X509;
           }
     break;
 
-  case 2483:
+  case 2487:
 
 /* Line 1455 of yacc.c  */
-#line 14327 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14354 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->ssl_type=SSL_TYPE_NONE;
           }
     break;
 
-  case 2484:
+  case 2488:
 
 /* Line 1455 of yacc.c  */
-#line 14333 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14360 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2486:
+  case 2490:
 
 /* Line 1455 of yacc.c  */
-#line 14338 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14365 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2487:
+  case 2491:
 
 /* Line 1455 of yacc.c  */
-#line 14339 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14366 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= GRANT_ACL;}
     break;
 
-  case 2488:
+  case 2492:
 
 /* Line 1455 of yacc.c  */
-#line 14343 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14370 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2489:
+  case 2493:
 
 /* Line 1455 of yacc.c  */
-#line 14344 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14371 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2490:
+  case 2494:
 
 /* Line 1455 of yacc.c  */
-#line 14348 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14375 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->grant |= GRANT_ACL;}
     break;
 
-  case 2491:
+  case 2495:
 
 /* Line 1455 of yacc.c  */
-#line 14350 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14377 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->mqh.questions=(yyvsp[(2) - (2)].ulong_num);
@@ -39558,10 +39640,10 @@ yyreduce:
           }
     break;
 
-  case 2492:
+  case 2496:
 
 /* Line 1455 of yacc.c  */
-#line 14356 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14383 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->mqh.updates=(yyvsp[(2) - (2)].ulong_num);
@@ -39569,10 +39651,10 @@ yyreduce:
           }
     break;
 
-  case 2493:
+  case 2497:
 
 /* Line 1455 of yacc.c  */
-#line 14362 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14389 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->mqh.conn_per_hour= (yyvsp[(2) - (2)].ulong_num);
@@ -39580,10 +39662,10 @@ yyreduce:
           }
     break;
 
-  case 2494:
+  case 2498:
 
 /* Line 1455 of yacc.c  */
-#line 14368 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14395 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->mqh.user_conn= (yyvsp[(2) - (2)].num);
@@ -39591,10 +39673,10 @@ yyreduce:
           }
     break;
 
-  case 2495:
+  case 2499:
 
 /* Line 1455 of yacc.c  */
-#line 14377 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14404 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_BEGIN;
@@ -39602,87 +39684,87 @@ yyreduce:
           }
     break;
 
-  case 2496:
+  case 2500:
 
 /* Line 1455 of yacc.c  */
-#line 14382 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14409 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2497:
+  case 2501:
 
 /* Line 1455 of yacc.c  */
-#line 14386 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14413 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2498:
+  case 2502:
 
 /* Line 1455 of yacc.c  */
-#line 14387 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14414 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2499:
+  case 2503:
 
 /* Line 1455 of yacc.c  */
-#line 14392 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14419 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.m_yes_no_unk)= TVL_UNKNOWN; }
     break;
 
-  case 2500:
+  case 2504:
 
 /* Line 1455 of yacc.c  */
-#line 14393 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14420 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.m_yes_no_unk)= TVL_NO; }
     break;
 
-  case 2501:
+  case 2505:
 
 /* Line 1455 of yacc.c  */
-#line 14394 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14421 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.m_yes_no_unk)= TVL_YES; }
     break;
 
-  case 2502:
+  case 2506:
 
 /* Line 1455 of yacc.c  */
-#line 14399 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14426 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.m_yes_no_unk)= TVL_UNKNOWN; }
     break;
 
-  case 2503:
+  case 2507:
 
 /* Line 1455 of yacc.c  */
-#line 14400 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14427 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.m_yes_no_unk)= TVL_YES; }
     break;
 
-  case 2504:
+  case 2508:
 
 /* Line 1455 of yacc.c  */
-#line 14401 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14428 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.m_yes_no_unk)= TVL_NO; }
     break;
 
-  case 2505:
+  case 2509:
 
 /* Line 1455 of yacc.c  */
-#line 14405 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14432 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2506:
+  case 2510:
 
 /* Line 1455 of yacc.c  */
-#line 14406 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14433 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2507:
+  case 2511:
 
 /* Line 1455 of yacc.c  */
-#line 14411 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14438 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_COMMIT;
@@ -39693,10 +39775,10 @@ yyreduce:
           }
     break;
 
-  case 2508:
+  case 2512:
 
 /* Line 1455 of yacc.c  */
-#line 14423 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14450 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_ROLLBACK;
@@ -39707,10 +39789,10 @@ yyreduce:
           }
     break;
 
-  case 2509:
+  case 2513:
 
 /* Line 1455 of yacc.c  */
-#line 14433 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14460 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT;
@@ -39718,10 +39800,10 @@ yyreduce:
           }
     break;
 
-  case 2510:
+  case 2514:
 
 /* Line 1455 of yacc.c  */
-#line 14442 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14469 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_SAVEPOINT;
@@ -39729,10 +39811,10 @@ yyreduce:
           }
     break;
 
-  case 2511:
+  case 2515:
 
 /* Line 1455 of yacc.c  */
-#line 14451 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14478 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_RELEASE_SAVEPOINT;
@@ -39740,27 +39822,27 @@ yyreduce:
           }
     break;
 
-  case 2512:
+  case 2516:
 
 /* Line 1455 of yacc.c  */
-#line 14464 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14491 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2514:
+  case 2518:
 
 /* Line 1455 of yacc.c  */
-#line 14470 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14497 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_select_to_union_list(Lex, (bool)(yyvsp[(2) - (2)].num), TRUE))
               MYSQL_YYABORT;
           }
     break;
 
-  case 2515:
+  case 2519:
 
 /* Line 1455 of yacc.c  */
-#line 14475 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14502 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               Remove from the name resolution context stack the context of the
@@ -39770,45 +39852,45 @@ yyreduce:
           }
     break;
 
-  case 2516:
+  case 2520:
 
 /* Line 1455 of yacc.c  */
-#line 14485 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14512 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 0; }
     break;
 
-  case 2517:
+  case 2521:
 
 /* Line 1455 of yacc.c  */
-#line 14486 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14513 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 1; }
     break;
 
-  case 2518:
+  case 2522:
 
 /* Line 1455 of yacc.c  */
-#line 14487 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14514 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)= 1; }
     break;
 
-  case 2519:
+  case 2523:
 
 /* Line 1455 of yacc.c  */
-#line 14491 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14518 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.is_not_empty)= false; }
     break;
 
-  case 2520:
+  case 2524:
 
 /* Line 1455 of yacc.c  */
-#line 14492 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14519 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.is_not_empty)= true; }
     break;
 
-  case 2521:
+  case 2525:
 
 /* Line 1455 of yacc.c  */
-#line 14496 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14523 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             DBUG_ASSERT(lex->current_select->linkage != GLOBAL_OPTIONS_TYPE);
@@ -39825,88 +39907,88 @@ yyreduce:
           }
     break;
 
-  case 2522:
+  case 2526:
 
 /* Line 1455 of yacc.c  */
-#line 14511 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14538 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             thd->lex->current_select->no_table_names_allowed= 0;
             thd->where= "";
           }
     break;
 
-  case 2525:
+  case 2529:
 
 /* Line 1455 of yacc.c  */
-#line 14523 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14550 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=1; }
     break;
 
-  case 2526:
+  case 2530:
 
 /* Line 1455 of yacc.c  */
-#line 14524 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14551 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=1; }
     break;
 
-  case 2527:
+  case 2531:
 
 /* Line 1455 of yacc.c  */
-#line 14525 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14552 "/home/buildbot/git/sql/sql_yacc.yy"
     { (yyval.num)=0; }
     break;
 
-  case 2528:
+  case 2532:
 
 /* Line 1455 of yacc.c  */
-#line 14530 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14557 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             (yyval.select_lex)= Lex->current_select->master_unit()->first_select();
           }
     break;
 
-  case 2529:
+  case 2533:
 
 /* Line 1455 of yacc.c  */
-#line 14534 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14561 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             (yyval.select_lex)= Lex->current_select->master_unit()->first_select();
           }
     break;
 
-  case 2531:
+  case 2535:
 
 /* Line 1455 of yacc.c  */
-#line 14543 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14570 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (add_select_to_union_list(Lex, (bool)(yyvsp[(3) - (3)].num), FALSE))
               MYSQL_YYABORT;
           }
     break;
 
-  case 2532:
+  case 2536:
 
 /* Line 1455 of yacc.c  */
-#line 14549 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14576 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->pop_context();
             (yyval.select_lex)= (yyvsp[(1) - (6)].select_lex);
           }
     break;
 
-  case 2533:
+  case 2537:
 
 /* Line 1455 of yacc.c  */
-#line 14558 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14585 "/home/buildbot/git/sql/sql_yacc.yy"
     { 
             (yyval.select_lex)= (yyvsp[(2) - (3)].select_lex);
           }
     break;
 
-  case 2534:
+  case 2538:
 
 /* Line 1455 of yacc.c  */
-#line 14564 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14591 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
             if (!lex->expr_allows_subselect ||
@@ -39927,10 +40009,10 @@ yyreduce:
           }
     break;
 
-  case 2535:
+  case 2539:
 
 /* Line 1455 of yacc.c  */
-#line 14585 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14612 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex=Lex;
 
@@ -39945,20 +40027,27 @@ yyreduce:
             */
             lex->current_select->select_n_where_fields+=
             child->select_n_where_fields;
+
+            /*
+              Aggregate functions in having clause may add fields to an outer
+              select. Count them also.
+            */
+            lex->current_select->select_n_having_items+=
+            child->select_n_having_items;
           }
     break;
 
-  case 2540:
+  case 2544:
 
 /* Line 1455 of yacc.c  */
-#line 14613 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14647 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->options|= SELECT_STRAIGHT_JOIN; }
     break;
 
-  case 2541:
+  case 2545:
 
 /* Line 1455 of yacc.c  */
-#line 14615 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14649 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (check_simple_select())
               MYSQL_YYABORT;
@@ -39968,31 +40057,31 @@ yyreduce:
           }
     break;
 
-  case 2542:
+  case 2546:
 
 /* Line 1455 of yacc.c  */
-#line 14622 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14656 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->options|= SELECT_DISTINCT; }
     break;
 
-  case 2543:
+  case 2547:
 
 /* Line 1455 of yacc.c  */
-#line 14623 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14657 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->options|= SELECT_SMALL_RESULT; }
     break;
 
-  case 2544:
+  case 2548:
 
 /* Line 1455 of yacc.c  */
-#line 14624 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14658 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->options|= SELECT_BIG_RESULT; }
     break;
 
-  case 2545:
+  case 2549:
 
 /* Line 1455 of yacc.c  */
-#line 14626 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14660 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (check_simple_select())
               MYSQL_YYABORT;
@@ -40000,10 +40089,10 @@ yyreduce:
           }
     break;
 
-  case 2546:
+  case 2550:
 
 /* Line 1455 of yacc.c  */
-#line 14632 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14666 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             if (check_simple_select())
               MYSQL_YYABORT;
@@ -40011,38 +40100,38 @@ yyreduce:
           }
     break;
 
-  case 2547:
+  case 2551:
 
 /* Line 1455 of yacc.c  */
-#line 14637 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14671 "/home/buildbot/git/sql/sql_yacc.yy"
     { Select->options|= SELECT_ALL; }
     break;
 
-  case 2548:
+  case 2552:
 
 /* Line 1455 of yacc.c  */
-#line 14648 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14682 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2549:
+  case 2553:
 
 /* Line 1455 of yacc.c  */
-#line 14650 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14684 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2550:
+  case 2554:
 
 /* Line 1455 of yacc.c  */
-#line 14652 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14686 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2564:
+  case 2568:
 
 /* Line 1455 of yacc.c  */
-#line 14685 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14719 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             /*
               We have to distinguish missing DEFINER-clause from case when
@@ -40055,89 +40144,89 @@ yyreduce:
           }
     break;
 
-  case 2565:
+  case 2569:
 
 /* Line 1455 of yacc.c  */
-#line 14699 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14733 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             thd->lex->definer= get_current_user(thd, (yyvsp[(3) - (3)].lex_user));
           }
     break;
 
-  case 2566:
+  case 2570:
 
 /* Line 1455 of yacc.c  */
-#line 14712 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14746 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2567:
+  case 2571:
 
 /* Line 1455 of yacc.c  */
-#line 14714 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14748 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2568:
+  case 2572:
 
 /* Line 1455 of yacc.c  */
-#line 14716 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14750 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2569:
+  case 2573:
 
 /* Line 1455 of yacc.c  */
-#line 14721 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14755 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_view_mode= VIEW_CREATE_OR_REPLACE; }
     break;
 
-  case 2570:
+  case 2574:
 
 /* Line 1455 of yacc.c  */
-#line 14726 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14760 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_view_algorithm= DTYPE_ALGORITHM_UNDEFINED; }
     break;
 
-  case 2571:
+  case 2575:
 
 /* Line 1455 of yacc.c  */
-#line 14728 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14762 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; }
     break;
 
-  case 2572:
+  case 2576:
 
 /* Line 1455 of yacc.c  */
-#line 14730 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14764 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; }
     break;
 
-  case 2573:
+  case 2577:
 
 /* Line 1455 of yacc.c  */
-#line 14735 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14769 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_view_suid= VIEW_SUID_DEFAULT; }
     break;
 
-  case 2574:
+  case 2578:
 
 /* Line 1455 of yacc.c  */
-#line 14737 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14771 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_view_suid= VIEW_SUID_DEFINER; }
     break;
 
-  case 2575:
+  case 2579:
 
 /* Line 1455 of yacc.c  */
-#line 14739 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14773 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_view_suid= VIEW_SUID_INVOKER; }
     break;
 
-  case 2576:
+  case 2580:
 
 /* Line 1455 of yacc.c  */
-#line 14744 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14778 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             lex->sql_command= SQLCOM_CREATE_VIEW;
@@ -40151,37 +40240,37 @@ yyreduce:
           }
     break;
 
-  case 2578:
+  case 2582:
 
 /* Line 1455 of yacc.c  */
-#line 14760 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14794 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2580:
+  case 2584:
 
 /* Line 1455 of yacc.c  */
-#line 14766 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14800 "/home/buildbot/git/sql/sql_yacc.yy"
     {
               Lex->view_list.push_back((LEX_STRING*)
               sql_memdup(&(yyvsp[(1) - (1)].lex_str), sizeof(LEX_STRING)));
             }
     break;
 
-  case 2581:
+  case 2585:
 
 /* Line 1455 of yacc.c  */
-#line 14771 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14805 "/home/buildbot/git/sql/sql_yacc.yy"
     {
               Lex->view_list.push_back((LEX_STRING*)
               sql_memdup(&(yyvsp[(3) - (3)].lex_str), sizeof(LEX_STRING)));
             }
     break;
 
-  case 2582:
+  case 2586:
 
 /* Line 1455 of yacc.c  */
-#line 14778 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14812 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->parsing_options.allows_variable= FALSE;
@@ -40192,10 +40281,10 @@ yyreduce:
           }
     break;
 
-  case 2583:
+  case 2587:
 
 /* Line 1455 of yacc.c  */
-#line 14787 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14821 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             uint len= YYLIP->get_cpp_ptr() - lex->create_view_select.str;
@@ -40210,56 +40299,56 @@ yyreduce:
           }
     break;
 
-  case 2586:
+  case 2590:
 
 /* Line 1455 of yacc.c  */
-#line 14808 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14842 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_view_check= VIEW_CHECK_NONE; }
     break;
 
-  case 2587:
+  case 2591:
 
 /* Line 1455 of yacc.c  */
-#line 14810 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14844 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_view_check= VIEW_CHECK_CASCADED; }
     break;
 
-  case 2588:
+  case 2592:
 
 /* Line 1455 of yacc.c  */
-#line 14812 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14846 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_view_check= VIEW_CHECK_CASCADED; }
     break;
 
-  case 2589:
+  case 2593:
 
 /* Line 1455 of yacc.c  */
-#line 14814 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14848 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->create_view_check= VIEW_CHECK_LOCAL; }
     break;
 
-  case 2590:
+  case 2594:
 
 /* Line 1455 of yacc.c  */
-#line 14831 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14865 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* $8 */
             Lex->raw_trg_on_table_name_begin= YYLIP->get_tok_start();
           }
     break;
 
-  case 2591:
+  case 2595:
 
 /* Line 1455 of yacc.c  */
-#line 14837 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14871 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* $12 */
             Lex->raw_trg_on_table_name_end= YYLIP->get_tok_start();
           }
     break;
 
-  case 2592:
+  case 2596:
 
 /* Line 1455 of yacc.c  */
-#line 14842 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14876 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* $15 */
             LEX *lex= thd->lex;
             Lex_input_stream *lip= YYLIP;
@@ -40290,10 +40379,10 @@ yyreduce:
           }
     break;
 
-  case 2593:
+  case 2597:
 
 /* Line 1455 of yacc.c  */
-#line 14871 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14905 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* $17 */
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -40319,10 +40408,10 @@ yyreduce:
           }
     break;
 
-  case 2594:
+  case 2598:
 
 /* Line 1455 of yacc.c  */
-#line 14905 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14939 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             if (is_native_function(thd, & (yyvsp[(4) - (8)].lex_str)))
@@ -40340,10 +40429,10 @@ yyreduce:
           }
     break;
 
-  case 2595:
+  case 2599:
 
 /* Line 1455 of yacc.c  */
-#line 14922 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14956 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             if (is_native_function(thd, & (yyvsp[(3) - (7)].lex_str)))
@@ -40361,10 +40450,10 @@ yyreduce:
           }
     break;
 
-  case 2596:
+  case 2600:
 
 /* Line 1455 of yacc.c  */
-#line 14944 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 14978 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* $5 */
             LEX *lex= thd->lex;
             Lex_input_stream *lip= YYLIP;
@@ -40396,19 +40485,19 @@ yyreduce:
           }
     break;
 
-  case 2597:
+  case 2601:
 
 /* Line 1455 of yacc.c  */
-#line 14975 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15009 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* $8 */
             Lex->sphead->m_param_end= YYLIP->get_cpp_tok_start();
           }
     break;
 
-  case 2598:
+  case 2602:
 
 /* Line 1455 of yacc.c  */
-#line 14979 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15013 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* $10 */
             LEX *lex= Lex;
             lex->charset= NULL;
@@ -40419,10 +40508,10 @@ yyreduce:
           }
     break;
 
-  case 2599:
+  case 2603:
 
 /* Line 1455 of yacc.c  */
-#line 14988 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15022 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* $12 */
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -40447,10 +40536,10 @@ yyreduce:
           }
     break;
 
-  case 2600:
+  case 2604:
 
 /* Line 1455 of yacc.c  */
-#line 15011 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15045 "/home/buildbot/git/sql/sql_yacc.yy"
     { /* $14 */
             LEX *lex= thd->lex;
             Lex_input_stream *lip= YYLIP;
@@ -40460,10 +40549,10 @@ yyreduce:
           }
     break;
 
-  case 2601:
+  case 2605:
 
 /* Line 1455 of yacc.c  */
-#line 15019 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15053 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
             sp_head *sp= lex->sphead;
@@ -40517,10 +40606,10 @@ yyreduce:
           }
     break;
 
-  case 2602:
+  case 2606:
 
 /* Line 1455 of yacc.c  */
-#line 15074 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15108 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp;
@@ -40546,10 +40635,10 @@ yyreduce:
           }
     break;
 
-  case 2603:
+  case 2607:
 
 /* Line 1455 of yacc.c  */
-#line 15098 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15132 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             const char* tmp_param_begin;
 
@@ -40559,10 +40648,10 @@ yyreduce:
           }
     break;
 
-  case 2604:
+  case 2608:
 
 /* Line 1455 of yacc.c  */
-#line 15107 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15141 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
 
@@ -40571,10 +40660,10 @@ yyreduce:
           }
     break;
 
-  case 2605:
+  case 2609:
 
 /* Line 1455 of yacc.c  */
-#line 15114 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15148 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= thd->lex;
 
@@ -40583,10 +40672,10 @@ yyreduce:
           }
     break;
 
-  case 2606:
+  case 2610:
 
 /* Line 1455 of yacc.c  */
-#line 15121 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15155 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             sp_head *sp= lex->sphead;
@@ -40597,64 +40686,64 @@ yyreduce:
           }
     break;
 
-  case 2607:
+  case 2611:
 
 /* Line 1455 of yacc.c  */
-#line 15135 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15169 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_XA_START;
           }
     break;
 
-  case 2608:
+  case 2612:
 
 /* Line 1455 of yacc.c  */
-#line 15139 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15173 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_XA_END;
           }
     break;
 
-  case 2609:
+  case 2613:
 
 /* Line 1455 of yacc.c  */
-#line 15143 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15177 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_XA_PREPARE;
           }
     break;
 
-  case 2610:
+  case 2614:
 
 /* Line 1455 of yacc.c  */
-#line 15147 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15181 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_XA_COMMIT;
           }
     break;
 
-  case 2611:
+  case 2615:
 
 /* Line 1455 of yacc.c  */
-#line 15151 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15185 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_XA_ROLLBACK;
           }
     break;
 
-  case 2612:
+  case 2616:
 
 /* Line 1455 of yacc.c  */
-#line 15155 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15189 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             Lex->sql_command = SQLCOM_XA_RECOVER;
           }
     break;
 
-  case 2613:
+  case 2617:
 
 /* Line 1455 of yacc.c  */
-#line 15162 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15196 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (1)].string)->length() <= MAXGTRIDSIZE);
             if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))
@@ -40663,10 +40752,10 @@ yyreduce:
           }
     break;
 
-  case 2614:
+  case 2618:
 
 /* Line 1455 of yacc.c  */
-#line 15169 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15203 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (3)].string)->length() <= MAXGTRIDSIZE && (yyvsp[(3) - (3)].string)->length() <= MAXBQUALSIZE);
             if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))
@@ -40675,10 +40764,10 @@ yyreduce:
           }
     break;
 
-  case 2615:
+  case 2619:
 
 /* Line 1455 of yacc.c  */
-#line 15176 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15210 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             MYSQL_YYABORT_UNLESS((yyvsp[(1) - (5)].string)->length() <= MAXGTRIDSIZE && (yyvsp[(3) - (5)].string)->length() <= MAXBQUALSIZE);
             if (!(Lex->xid=(XID *)thd->alloc(sizeof(XID))))
@@ -40687,87 +40776,87 @@ yyreduce:
           }
     break;
 
-  case 2616:
+  case 2620:
 
 /* Line 1455 of yacc.c  */
-#line 15185 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15219 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2617:
+  case 2621:
 
 /* Line 1455 of yacc.c  */
-#line 15186 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15220 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2618:
+  case 2622:
 
 /* Line 1455 of yacc.c  */
-#line 15190 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15224 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->xa_opt=XA_NONE;        }
     break;
 
-  case 2619:
+  case 2623:
 
 /* Line 1455 of yacc.c  */
-#line 15191 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15225 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->xa_opt=XA_JOIN;        }
     break;
 
-  case 2620:
+  case 2624:
 
 /* Line 1455 of yacc.c  */
-#line 15192 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15226 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->xa_opt=XA_RESUME;      }
     break;
 
-  case 2621:
+  case 2625:
 
 /* Line 1455 of yacc.c  */
-#line 15196 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15230 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->xa_opt=XA_NONE;        }
     break;
 
-  case 2622:
+  case 2626:
 
 /* Line 1455 of yacc.c  */
-#line 15197 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15231 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->xa_opt=XA_ONE_PHASE;   }
     break;
 
-  case 2623:
+  case 2627:
 
 /* Line 1455 of yacc.c  */
-#line 15202 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15236 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->xa_opt=XA_NONE;        }
     break;
 
-  case 2624:
+  case 2628:
 
 /* Line 1455 of yacc.c  */
-#line 15204 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15238 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->xa_opt=XA_SUSPEND;     }
     break;
 
-  case 2626:
+  case 2630:
 
 /* Line 1455 of yacc.c  */
-#line 15209 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15243 "/home/buildbot/git/sql/sql_yacc.yy"
     {}
     break;
 
-  case 2627:
+  case 2631:
 
 /* Line 1455 of yacc.c  */
-#line 15210 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15244 "/home/buildbot/git/sql/sql_yacc.yy"
     { Lex->xa_opt=XA_FOR_MIGRATE; }
     break;
 
-  case 2628:
+  case 2632:
 
 /* Line 1455 of yacc.c  */
-#line 15215 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15249 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_INSTALL_PLUGIN;
@@ -40776,10 +40865,10 @@ yyreduce:
           }
     break;
 
-  case 2629:
+  case 2633:
 
 /* Line 1455 of yacc.c  */
-#line 15222 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15256 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_INSTALL_PLUGIN;
@@ -40788,10 +40877,10 @@ yyreduce:
           }
     break;
 
-  case 2630:
+  case 2634:
 
 /* Line 1455 of yacc.c  */
-#line 15232 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15266 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_UNINSTALL_PLUGIN;
@@ -40799,10 +40888,10 @@ yyreduce:
           }
     break;
 
-  case 2631:
+  case 2635:
 
 /* Line 1455 of yacc.c  */
-#line 15238 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15272 "/home/buildbot/git/sql/sql_yacc.yy"
     {
             LEX *lex= Lex;
             lex->sql_command= SQLCOM_UNINSTALL_PLUGIN;
@@ -40811,10 +40900,10 @@ yyreduce:
           }
     break;
 
-  case 2632:
+  case 2636:
 
 /* Line 1455 of yacc.c  */
-#line 15249 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 15283 "/home/buildbot/git/sql/sql_yacc.yy"
     {
 	  YYERROR;
 	}
@@ -40823,7 +40912,7 @@ yyreduce:
 
 
 /* Line 1455 of yacc.c  */
-#line 40827 "/home/buildbot/bzr/build/mkdist/sql/sql_yacc.cc"
+#line 40916 "/home/buildbot/git/mkdist/sql/sql_yacc.cc"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
diff --git a/sql/sql_yacc.h b/sql/sql_yacc.h
index 9f140b6..dedb45d 100644
--- a/sql/sql_yacc.h
+++ b/sql/sql_yacc.h
@@ -372,289 +372,290 @@
      MULTIPOINT = 588,
      MULTIPOLYGON = 589,
      MUTEX_SYM = 590,
-     MYSQL_ERRNO_SYM = 591,
-     NAMES_SYM = 592,
-     NAME_SYM = 593,
-     NATIONAL_SYM = 594,
-     NATURAL = 595,
-     NCHAR_STRING = 596,
-     NCHAR_SYM = 597,
-     NDBCLUSTER_SYM = 598,
-     NE = 599,
-     NEG = 600,
-     NEW_SYM = 601,
-     NEXT_SYM = 602,
-     NODEGROUP_SYM = 603,
-     NONE_SYM = 604,
-     NOT2_SYM = 605,
-     NOT_SYM = 606,
-     NOW_SYM = 607,
-     NO_SYM = 608,
-     NO_WAIT_SYM = 609,
-     NO_WRITE_TO_BINLOG = 610,
-     NULL_SYM = 611,
-     NUM = 612,
-     NUMERIC_SYM = 613,
-     NVARCHAR_SYM = 614,
-     OFFSET_SYM = 615,
-     OLD_PASSWORD = 616,
-     ON = 617,
-     ONE_SHOT_SYM = 618,
-     ONE_SYM = 619,
-     ONLINE_SYM = 620,
-     OPEN_SYM = 621,
-     OPTIMIZE = 622,
-     OPTIONS_SYM = 623,
-     OPTION = 624,
-     OPTIONALLY = 625,
-     OR2_SYM = 626,
-     ORDER_SYM = 627,
-     OR_OR_SYM = 628,
-     OR_SYM = 629,
-     OUTER = 630,
-     OUTFILE = 631,
-     OUT_SYM = 632,
-     OWNER_SYM = 633,
-     PACK_KEYS_SYM = 634,
-     PAGE_SYM = 635,
-     PAGE_CHECKSUM_SYM = 636,
-     PARAM_MARKER = 637,
-     PARSER_SYM = 638,
-     PARSE_VCOL_EXPR_SYM = 639,
-     PARTIAL = 640,
-     PARTITIONING_SYM = 641,
-     PARTITIONS_SYM = 642,
-     PARTITION_SYM = 643,
-     PASSWORD = 644,
-     PERSISTENT_SYM = 645,
-     PHASE_SYM = 646,
-     PLUGINS_SYM = 647,
-     PLUGIN_SYM = 648,
-     POINT_SYM = 649,
-     POLYGON = 650,
-     PORT_SYM = 651,
-     POSITION_SYM = 652,
-     PRECISION = 653,
-     PREPARE_SYM = 654,
-     PRESERVE_SYM = 655,
-     PREV_SYM = 656,
-     PRIMARY_SYM = 657,
-     PRIVILEGES = 658,
-     PROCEDURE_SYM = 659,
-     PROCESS = 660,
-     PROCESSLIST_SYM = 661,
-     PROFILE_SYM = 662,
-     PROFILES_SYM = 663,
-     PROXY_SYM = 664,
-     PURGE = 665,
-     QUARTER_SYM = 666,
-     QUERY_SYM = 667,
-     QUICK = 668,
-     RANGE_SYM = 669,
-     READS_SYM = 670,
-     READ_ONLY_SYM = 671,
-     READ_SYM = 672,
-     READ_WRITE_SYM = 673,
-     REAL = 674,
-     REBUILD_SYM = 675,
-     RECOVER_SYM = 676,
-     REDOFILE_SYM = 677,
-     REDO_BUFFER_SIZE_SYM = 678,
-     REDUNDANT_SYM = 679,
-     REFERENCES = 680,
-     REGEXP = 681,
-     RELAY = 682,
-     RELAYLOG_SYM = 683,
-     RELAY_LOG_FILE_SYM = 684,
-     RELAY_LOG_POS_SYM = 685,
-     RELAY_THREAD = 686,
-     RELEASE_SYM = 687,
-     RELOAD = 688,
-     REMOVE_SYM = 689,
-     RENAME = 690,
-     REORGANIZE_SYM = 691,
-     REPAIR = 692,
-     REPEATABLE_SYM = 693,
-     REPEAT_SYM = 694,
-     REPLACE = 695,
-     REPLICATION = 696,
-     REQUIRE_SYM = 697,
-     RESET_SYM = 698,
-     RESIGNAL_SYM = 699,
-     RESOURCES = 700,
-     RESTORE_SYM = 701,
-     RESTRICT = 702,
-     RESUME_SYM = 703,
-     RETURNS_SYM = 704,
-     RETURN_SYM = 705,
-     REVOKE = 706,
-     RIGHT = 707,
-     ROLLBACK_SYM = 708,
-     ROLLUP_SYM = 709,
-     ROUTINE_SYM = 710,
-     ROWS_SYM = 711,
-     ROW_FORMAT_SYM = 712,
-     ROW_SYM = 713,
-     RTREE_SYM = 714,
-     SAVEPOINT_SYM = 715,
-     SCHEDULE_SYM = 716,
-     SCHEMA_NAME_SYM = 717,
-     SECOND_MICROSECOND_SYM = 718,
-     SECOND_SYM = 719,
-     SECURITY_SYM = 720,
-     SELECT_SYM = 721,
-     SENSITIVE_SYM = 722,
-     SEPARATOR_SYM = 723,
-     SERIALIZABLE_SYM = 724,
-     SERIAL_SYM = 725,
-     SESSION_SYM = 726,
-     SERVER_SYM = 727,
-     SERVER_OPTIONS = 728,
-     SET = 729,
-     SET_VAR = 730,
-     SHARE_SYM = 731,
-     SHIFT_LEFT = 732,
-     SHIFT_RIGHT = 733,
-     SHOW = 734,
-     SHUTDOWN = 735,
-     SIGNAL_SYM = 736,
-     SIGNED_SYM = 737,
-     SIMPLE_SYM = 738,
-     SLAVE = 739,
-     SLOW = 740,
-     SMALLINT = 741,
-     SNAPSHOT_SYM = 742,
-     SOCKET_SYM = 743,
-     SOFT_SYM = 744,
-     SONAME_SYM = 745,
-     SOUNDS_SYM = 746,
-     SOURCE_SYM = 747,
-     SPATIAL_SYM = 748,
-     SPECIFIC_SYM = 749,
-     SQLEXCEPTION_SYM = 750,
-     SQLSTATE_SYM = 751,
-     SQLWARNING_SYM = 752,
-     SQL_BIG_RESULT = 753,
-     SQL_BUFFER_RESULT = 754,
-     SQL_CACHE_SYM = 755,
-     SQL_CALC_FOUND_ROWS = 756,
-     SQL_NO_CACHE_SYM = 757,
-     SQL_SMALL_RESULT = 758,
-     SQL_SYM = 759,
-     SQL_THREAD = 760,
-     SSL_SYM = 761,
-     STARTING = 762,
-     STARTS_SYM = 763,
-     START_SYM = 764,
-     STATUS_SYM = 765,
-     STDDEV_SAMP_SYM = 766,
-     STD_SYM = 767,
-     STOP_SYM = 768,
-     STORAGE_SYM = 769,
-     STRAIGHT_JOIN = 770,
-     STRING_SYM = 771,
-     SUBCLASS_ORIGIN_SYM = 772,
-     SUBDATE_SYM = 773,
-     SUBJECT_SYM = 774,
-     SUBPARTITIONS_SYM = 775,
-     SUBPARTITION_SYM = 776,
-     SUBSTRING = 777,
-     SUM_SYM = 778,
-     SUPER_SYM = 779,
-     SUSPEND_SYM = 780,
-     SWAPS_SYM = 781,
-     SWITCHES_SYM = 782,
-     SYSDATE = 783,
-     TABLES = 784,
-     TABLESPACE = 785,
-     TABLE_REF_PRIORITY = 786,
-     TABLE_STATS_SYM = 787,
-     TABLE_SYM = 788,
-     TABLE_CHECKSUM_SYM = 789,
-     TABLE_NAME_SYM = 790,
-     TEMPORARY = 791,
-     TEMPTABLE_SYM = 792,
-     TERMINATED = 793,
-     TEXT_STRING = 794,
-     TEXT_SYM = 795,
-     THAN_SYM = 796,
-     THEN_SYM = 797,
-     TIMESTAMP = 798,
-     TIMESTAMP_ADD = 799,
-     TIMESTAMP_DIFF = 800,
-     TIME_SYM = 801,
-     TINYBLOB = 802,
-     TINYINT = 803,
-     TINYTEXT = 804,
-     TO_SYM = 805,
-     TRAILING = 806,
-     TRANSACTION_SYM = 807,
-     TRANSACTIONAL_SYM = 808,
-     TRIGGERS_SYM = 809,
-     TRIGGER_SYM = 810,
-     TRIM = 811,
-     TRUE_SYM = 812,
-     TRUNCATE_SYM = 813,
-     TYPES_SYM = 814,
-     TYPE_SYM = 815,
-     UDF_RETURNS_SYM = 816,
-     ULONGLONG_NUM = 817,
-     UNCOMMITTED_SYM = 818,
-     UNDEFINED_SYM = 819,
-     UNDERSCORE_CHARSET = 820,
-     UNDOFILE_SYM = 821,
-     UNDO_BUFFER_SIZE_SYM = 822,
-     UNDO_SYM = 823,
-     UNICODE_SYM = 824,
-     UNINSTALL_SYM = 825,
-     UNION_SYM = 826,
-     UNIQUE_SYM = 827,
-     UNKNOWN_SYM = 828,
-     UNLOCK_SYM = 829,
-     UNSIGNED = 830,
-     UNTIL_SYM = 831,
-     UPDATE_SYM = 832,
-     UPGRADE_SYM = 833,
-     USAGE = 834,
-     USER = 835,
-     USER_STATS_SYM = 836,
-     USE_FRM = 837,
-     USE_SYM = 838,
-     USING = 839,
-     UTC_DATE_SYM = 840,
-     UTC_TIMESTAMP_SYM = 841,
-     UTC_TIME_SYM = 842,
-     VALUES = 843,
-     VALUE_SYM = 844,
-     VARBINARY = 845,
-     VARCHAR = 846,
-     VARIABLES = 847,
-     VARIANCE_SYM = 848,
-     VARYING = 849,
-     VAR_SAMP_SYM = 850,
-     VIA_SYM = 851,
-     VIEW_SYM = 852,
-     VIRTUAL_SYM = 853,
-     WAIT_SYM = 854,
-     WARNINGS = 855,
-     WEEK_SYM = 856,
-     WHEN_SYM = 857,
-     WHERE = 858,
-     WHILE_SYM = 859,
-     WITH = 860,
-     WITH_CUBE_SYM = 861,
-     WITH_ROLLUP_SYM = 862,
-     WORK_SYM = 863,
-     WRAPPER_SYM = 864,
-     WRITE_SYM = 865,
-     X509_SYM = 866,
-     XA_SYM = 867,
-     XML_SYM = 868,
-     XOR = 869,
-     YEAR_MONTH_SYM = 870,
-     YEAR_SYM = 871,
-     ZEROFILL = 872,
-     IMPOSSIBLE_ACTION = 873
+     MYSQL_SYM = 591,
+     MYSQL_ERRNO_SYM = 592,
+     NAMES_SYM = 593,
+     NAME_SYM = 594,
+     NATIONAL_SYM = 595,
+     NATURAL = 596,
+     NCHAR_STRING = 597,
+     NCHAR_SYM = 598,
+     NDBCLUSTER_SYM = 599,
+     NE = 600,
+     NEG = 601,
+     NEW_SYM = 602,
+     NEXT_SYM = 603,
+     NODEGROUP_SYM = 604,
+     NONE_SYM = 605,
+     NOT2_SYM = 606,
+     NOT_SYM = 607,
+     NOW_SYM = 608,
+     NO_SYM = 609,
+     NO_WAIT_SYM = 610,
+     NO_WRITE_TO_BINLOG = 611,
+     NULL_SYM = 612,
+     NUM = 613,
+     NUMERIC_SYM = 614,
+     NVARCHAR_SYM = 615,
+     OFFSET_SYM = 616,
+     OLD_PASSWORD = 617,
+     ON = 618,
+     ONE_SHOT_SYM = 619,
+     ONE_SYM = 620,
+     ONLINE_SYM = 621,
+     OPEN_SYM = 622,
+     OPTIMIZE = 623,
+     OPTIONS_SYM = 624,
+     OPTION = 625,
+     OPTIONALLY = 626,
+     OR2_SYM = 627,
+     ORDER_SYM = 628,
+     OR_OR_SYM = 629,
+     OR_SYM = 630,
+     OUTER = 631,
+     OUTFILE = 632,
+     OUT_SYM = 633,
+     OWNER_SYM = 634,
+     PACK_KEYS_SYM = 635,
+     PAGE_SYM = 636,
+     PAGE_CHECKSUM_SYM = 637,
+     PARAM_MARKER = 638,
+     PARSER_SYM = 639,
+     PARSE_VCOL_EXPR_SYM = 640,
+     PARTIAL = 641,
+     PARTITIONING_SYM = 642,
+     PARTITIONS_SYM = 643,
+     PARTITION_SYM = 644,
+     PASSWORD = 645,
+     PERSISTENT_SYM = 646,
+     PHASE_SYM = 647,
+     PLUGINS_SYM = 648,
+     PLUGIN_SYM = 649,
+     POINT_SYM = 650,
+     POLYGON = 651,
+     PORT_SYM = 652,
+     POSITION_SYM = 653,
+     PRECISION = 654,
+     PREPARE_SYM = 655,
+     PRESERVE_SYM = 656,
+     PREV_SYM = 657,
+     PRIMARY_SYM = 658,
+     PRIVILEGES = 659,
+     PROCEDURE_SYM = 660,
+     PROCESS = 661,
+     PROCESSLIST_SYM = 662,
+     PROFILE_SYM = 663,
+     PROFILES_SYM = 664,
+     PROXY_SYM = 665,
+     PURGE = 666,
+     QUARTER_SYM = 667,
+     QUERY_SYM = 668,
+     QUICK = 669,
+     RANGE_SYM = 670,
+     READS_SYM = 671,
+     READ_ONLY_SYM = 672,
+     READ_SYM = 673,
+     READ_WRITE_SYM = 674,
+     REAL = 675,
+     REBUILD_SYM = 676,
+     RECOVER_SYM = 677,
+     REDOFILE_SYM = 678,
+     REDO_BUFFER_SIZE_SYM = 679,
+     REDUNDANT_SYM = 680,
+     REFERENCES = 681,
+     REGEXP = 682,
+     RELAY = 683,
+     RELAYLOG_SYM = 684,
+     RELAY_LOG_FILE_SYM = 685,
+     RELAY_LOG_POS_SYM = 686,
+     RELAY_THREAD = 687,
+     RELEASE_SYM = 688,
+     RELOAD = 689,
+     REMOVE_SYM = 690,
+     RENAME = 691,
+     REORGANIZE_SYM = 692,
+     REPAIR = 693,
+     REPEATABLE_SYM = 694,
+     REPEAT_SYM = 695,
+     REPLACE = 696,
+     REPLICATION = 697,
+     REQUIRE_SYM = 698,
+     RESET_SYM = 699,
+     RESIGNAL_SYM = 700,
+     RESOURCES = 701,
+     RESTORE_SYM = 702,
+     RESTRICT = 703,
+     RESUME_SYM = 704,
+     RETURNS_SYM = 705,
+     RETURN_SYM = 706,
+     REVOKE = 707,
+     RIGHT = 708,
+     ROLLBACK_SYM = 709,
+     ROLLUP_SYM = 710,
+     ROUTINE_SYM = 711,
+     ROWS_SYM = 712,
+     ROW_FORMAT_SYM = 713,
+     ROW_SYM = 714,
+     RTREE_SYM = 715,
+     SAVEPOINT_SYM = 716,
+     SCHEDULE_SYM = 717,
+     SCHEMA_NAME_SYM = 718,
+     SECOND_MICROSECOND_SYM = 719,
+     SECOND_SYM = 720,
+     SECURITY_SYM = 721,
+     SELECT_SYM = 722,
+     SENSITIVE_SYM = 723,
+     SEPARATOR_SYM = 724,
+     SERIALIZABLE_SYM = 725,
+     SERIAL_SYM = 726,
+     SESSION_SYM = 727,
+     SERVER_SYM = 728,
+     SERVER_OPTIONS = 729,
+     SET = 730,
+     SET_VAR = 731,
+     SHARE_SYM = 732,
+     SHIFT_LEFT = 733,
+     SHIFT_RIGHT = 734,
+     SHOW = 735,
+     SHUTDOWN = 736,
+     SIGNAL_SYM = 737,
+     SIGNED_SYM = 738,
+     SIMPLE_SYM = 739,
+     SLAVE = 740,
+     SLOW = 741,
+     SMALLINT = 742,
+     SNAPSHOT_SYM = 743,
+     SOCKET_SYM = 744,
+     SOFT_SYM = 745,
+     SONAME_SYM = 746,
+     SOUNDS_SYM = 747,
+     SOURCE_SYM = 748,
+     SPATIAL_SYM = 749,
+     SPECIFIC_SYM = 750,
+     SQLEXCEPTION_SYM = 751,
+     SQLSTATE_SYM = 752,
+     SQLWARNING_SYM = 753,
+     SQL_BIG_RESULT = 754,
+     SQL_BUFFER_RESULT = 755,
+     SQL_CACHE_SYM = 756,
+     SQL_CALC_FOUND_ROWS = 757,
+     SQL_NO_CACHE_SYM = 758,
+     SQL_SMALL_RESULT = 759,
+     SQL_SYM = 760,
+     SQL_THREAD = 761,
+     SSL_SYM = 762,
+     STARTING = 763,
+     STARTS_SYM = 764,
+     START_SYM = 765,
+     STATUS_SYM = 766,
+     STDDEV_SAMP_SYM = 767,
+     STD_SYM = 768,
+     STOP_SYM = 769,
+     STORAGE_SYM = 770,
+     STRAIGHT_JOIN = 771,
+     STRING_SYM = 772,
+     SUBCLASS_ORIGIN_SYM = 773,
+     SUBDATE_SYM = 774,
+     SUBJECT_SYM = 775,
+     SUBPARTITIONS_SYM = 776,
+     SUBPARTITION_SYM = 777,
+     SUBSTRING = 778,
+     SUM_SYM = 779,
+     SUPER_SYM = 780,
+     SUSPEND_SYM = 781,
+     SWAPS_SYM = 782,
+     SWITCHES_SYM = 783,
+     SYSDATE = 784,
+     TABLES = 785,
+     TABLESPACE = 786,
+     TABLE_REF_PRIORITY = 787,
+     TABLE_STATS_SYM = 788,
+     TABLE_SYM = 789,
+     TABLE_CHECKSUM_SYM = 790,
+     TABLE_NAME_SYM = 791,
+     TEMPORARY = 792,
+     TEMPTABLE_SYM = 793,
+     TERMINATED = 794,
+     TEXT_STRING = 795,
+     TEXT_SYM = 796,
+     THAN_SYM = 797,
+     THEN_SYM = 798,
+     TIMESTAMP = 799,
+     TIMESTAMP_ADD = 800,
+     TIMESTAMP_DIFF = 801,
+     TIME_SYM = 802,
+     TINYBLOB = 803,
+     TINYINT = 804,
+     TINYTEXT = 805,
+     TO_SYM = 806,
+     TRAILING = 807,
+     TRANSACTION_SYM = 808,
+     TRANSACTIONAL_SYM = 809,
+     TRIGGERS_SYM = 810,
+     TRIGGER_SYM = 811,
+     TRIM = 812,
+     TRUE_SYM = 813,
+     TRUNCATE_SYM = 814,
+     TYPES_SYM = 815,
+     TYPE_SYM = 816,
+     UDF_RETURNS_SYM = 817,
+     ULONGLONG_NUM = 818,
+     UNCOMMITTED_SYM = 819,
+     UNDEFINED_SYM = 820,
+     UNDERSCORE_CHARSET = 821,
+     UNDOFILE_SYM = 822,
+     UNDO_BUFFER_SIZE_SYM = 823,
+     UNDO_SYM = 824,
+     UNICODE_SYM = 825,
+     UNINSTALL_SYM = 826,
+     UNION_SYM = 827,
+     UNIQUE_SYM = 828,
+     UNKNOWN_SYM = 829,
+     UNLOCK_SYM = 830,
+     UNSIGNED = 831,
+     UNTIL_SYM = 832,
+     UPDATE_SYM = 833,
+     UPGRADE_SYM = 834,
+     USAGE = 835,
+     USER = 836,
+     USER_STATS_SYM = 837,
+     USE_FRM = 838,
+     USE_SYM = 839,
+     USING = 840,
+     UTC_DATE_SYM = 841,
+     UTC_TIMESTAMP_SYM = 842,
+     UTC_TIME_SYM = 843,
+     VALUES = 844,
+     VALUE_SYM = 845,
+     VARBINARY = 846,
+     VARCHAR = 847,
+     VARIABLES = 848,
+     VARIANCE_SYM = 849,
+     VARYING = 850,
+     VAR_SAMP_SYM = 851,
+     VIA_SYM = 852,
+     VIEW_SYM = 853,
+     VIRTUAL_SYM = 854,
+     WAIT_SYM = 855,
+     WARNINGS = 856,
+     WEEK_SYM = 857,
+     WHEN_SYM = 858,
+     WHERE = 859,
+     WHILE_SYM = 860,
+     WITH = 861,
+     WITH_CUBE_SYM = 862,
+     WITH_ROLLUP_SYM = 863,
+     WORK_SYM = 864,
+     WRAPPER_SYM = 865,
+     WRITE_SYM = 866,
+     X509_SYM = 867,
+     XA_SYM = 868,
+     XML_SYM = 869,
+     XOR = 870,
+     YEAR_MONTH_SYM = 871,
+     YEAR_SYM = 872,
+     ZEROFILL = 873,
+     IMPOSSIBLE_ACTION = 874
    };
 #endif
 /* Tokens.  */
@@ -991,289 +992,290 @@
 #define MULTIPOINT 588
 #define MULTIPOLYGON 589
 #define MUTEX_SYM 590
-#define MYSQL_ERRNO_SYM 591
-#define NAMES_SYM 592
-#define NAME_SYM 593
-#define NATIONAL_SYM 594
-#define NATURAL 595
-#define NCHAR_STRING 596
-#define NCHAR_SYM 597
-#define NDBCLUSTER_SYM 598
-#define NE 599
-#define NEG 600
-#define NEW_SYM 601
-#define NEXT_SYM 602
-#define NODEGROUP_SYM 603
-#define NONE_SYM 604
-#define NOT2_SYM 605
-#define NOT_SYM 606
-#define NOW_SYM 607
-#define NO_SYM 608
-#define NO_WAIT_SYM 609
-#define NO_WRITE_TO_BINLOG 610
-#define NULL_SYM 611
-#define NUM 612
-#define NUMERIC_SYM 613
-#define NVARCHAR_SYM 614
-#define OFFSET_SYM 615
-#define OLD_PASSWORD 616
-#define ON 617
-#define ONE_SHOT_SYM 618
-#define ONE_SYM 619
-#define ONLINE_SYM 620
-#define OPEN_SYM 621
-#define OPTIMIZE 622
-#define OPTIONS_SYM 623
-#define OPTION 624
-#define OPTIONALLY 625
-#define OR2_SYM 626
-#define ORDER_SYM 627
-#define OR_OR_SYM 628
-#define OR_SYM 629
-#define OUTER 630
-#define OUTFILE 631
-#define OUT_SYM 632
-#define OWNER_SYM 633
-#define PACK_KEYS_SYM 634
-#define PAGE_SYM 635
-#define PAGE_CHECKSUM_SYM 636
-#define PARAM_MARKER 637
-#define PARSER_SYM 638
-#define PARSE_VCOL_EXPR_SYM 639
-#define PARTIAL 640
-#define PARTITIONING_SYM 641
-#define PARTITIONS_SYM 642
-#define PARTITION_SYM 643
-#define PASSWORD 644
-#define PERSISTENT_SYM 645
-#define PHASE_SYM 646
-#define PLUGINS_SYM 647
-#define PLUGIN_SYM 648
-#define POINT_SYM 649
-#define POLYGON 650
-#define PORT_SYM 651
-#define POSITION_SYM 652
-#define PRECISION 653
-#define PREPARE_SYM 654
-#define PRESERVE_SYM 655
-#define PREV_SYM 656
-#define PRIMARY_SYM 657
-#define PRIVILEGES 658
-#define PROCEDURE_SYM 659
-#define PROCESS 660
-#define PROCESSLIST_SYM 661
-#define PROFILE_SYM 662
-#define PROFILES_SYM 663
-#define PROXY_SYM 664
-#define PURGE 665
-#define QUARTER_SYM 666
-#define QUERY_SYM 667
-#define QUICK 668
-#define RANGE_SYM 669
-#define READS_SYM 670
-#define READ_ONLY_SYM 671
-#define READ_SYM 672
-#define READ_WRITE_SYM 673
-#define REAL 674
-#define REBUILD_SYM 675
-#define RECOVER_SYM 676
-#define REDOFILE_SYM 677
-#define REDO_BUFFER_SIZE_SYM 678
-#define REDUNDANT_SYM 679
-#define REFERENCES 680
-#define REGEXP 681
-#define RELAY 682
-#define RELAYLOG_SYM 683
-#define RELAY_LOG_FILE_SYM 684
-#define RELAY_LOG_POS_SYM 685
-#define RELAY_THREAD 686
-#define RELEASE_SYM 687
-#define RELOAD 688
-#define REMOVE_SYM 689
-#define RENAME 690
-#define REORGANIZE_SYM 691
-#define REPAIR 692
-#define REPEATABLE_SYM 693
-#define REPEAT_SYM 694
-#define REPLACE 695
-#define REPLICATION 696
-#define REQUIRE_SYM 697
-#define RESET_SYM 698
-#define RESIGNAL_SYM 699
-#define RESOURCES 700
-#define RESTORE_SYM 701
-#define RESTRICT 702
-#define RESUME_SYM 703
-#define RETURNS_SYM 704
-#define RETURN_SYM 705
-#define REVOKE 706
-#define RIGHT 707
-#define ROLLBACK_SYM 708
-#define ROLLUP_SYM 709
-#define ROUTINE_SYM 710
-#define ROWS_SYM 711
-#define ROW_FORMAT_SYM 712
-#define ROW_SYM 713
-#define RTREE_SYM 714
-#define SAVEPOINT_SYM 715
-#define SCHEDULE_SYM 716
-#define SCHEMA_NAME_SYM 717
-#define SECOND_MICROSECOND_SYM 718
-#define SECOND_SYM 719
-#define SECURITY_SYM 720
-#define SELECT_SYM 721
-#define SENSITIVE_SYM 722
-#define SEPARATOR_SYM 723
-#define SERIALIZABLE_SYM 724
-#define SERIAL_SYM 725
-#define SESSION_SYM 726
-#define SERVER_SYM 727
-#define SERVER_OPTIONS 728
-#define SET 729
-#define SET_VAR 730
-#define SHARE_SYM 731
-#define SHIFT_LEFT 732
-#define SHIFT_RIGHT 733
-#define SHOW 734
-#define SHUTDOWN 735
-#define SIGNAL_SYM 736
-#define SIGNED_SYM 737
-#define SIMPLE_SYM 738
-#define SLAVE 739
-#define SLOW 740
-#define SMALLINT 741
-#define SNAPSHOT_SYM 742
-#define SOCKET_SYM 743
-#define SOFT_SYM 744
-#define SONAME_SYM 745
-#define SOUNDS_SYM 746
-#define SOURCE_SYM 747
-#define SPATIAL_SYM 748
-#define SPECIFIC_SYM 749
-#define SQLEXCEPTION_SYM 750
-#define SQLSTATE_SYM 751
-#define SQLWARNING_SYM 752
-#define SQL_BIG_RESULT 753
-#define SQL_BUFFER_RESULT 754
-#define SQL_CACHE_SYM 755
-#define SQL_CALC_FOUND_ROWS 756
-#define SQL_NO_CACHE_SYM 757
-#define SQL_SMALL_RESULT 758
-#define SQL_SYM 759
-#define SQL_THREAD 760
-#define SSL_SYM 761
-#define STARTING 762
-#define STARTS_SYM 763
-#define START_SYM 764
-#define STATUS_SYM 765
-#define STDDEV_SAMP_SYM 766
-#define STD_SYM 767
-#define STOP_SYM 768
-#define STORAGE_SYM 769
-#define STRAIGHT_JOIN 770
-#define STRING_SYM 771
-#define SUBCLASS_ORIGIN_SYM 772
-#define SUBDATE_SYM 773
-#define SUBJECT_SYM 774
-#define SUBPARTITIONS_SYM 775
-#define SUBPARTITION_SYM 776
-#define SUBSTRING 777
-#define SUM_SYM 778
-#define SUPER_SYM 779
-#define SUSPEND_SYM 780
-#define SWAPS_SYM 781
-#define SWITCHES_SYM 782
-#define SYSDATE 783
-#define TABLES 784
-#define TABLESPACE 785
-#define TABLE_REF_PRIORITY 786
-#define TABLE_STATS_SYM 787
-#define TABLE_SYM 788
-#define TABLE_CHECKSUM_SYM 789
-#define TABLE_NAME_SYM 790
-#define TEMPORARY 791
-#define TEMPTABLE_SYM 792
-#define TERMINATED 793
-#define TEXT_STRING 794
-#define TEXT_SYM 795
-#define THAN_SYM 796
-#define THEN_SYM 797
-#define TIMESTAMP 798
-#define TIMESTAMP_ADD 799
-#define TIMESTAMP_DIFF 800
-#define TIME_SYM 801
-#define TINYBLOB 802
-#define TINYINT 803
-#define TINYTEXT 804
-#define TO_SYM 805
-#define TRAILING 806
-#define TRANSACTION_SYM 807
-#define TRANSACTIONAL_SYM 808
-#define TRIGGERS_SYM 809
-#define TRIGGER_SYM 810
-#define TRIM 811
-#define TRUE_SYM 812
-#define TRUNCATE_SYM 813
-#define TYPES_SYM 814
-#define TYPE_SYM 815
-#define UDF_RETURNS_SYM 816
-#define ULONGLONG_NUM 817
-#define UNCOMMITTED_SYM 818
-#define UNDEFINED_SYM 819
-#define UNDERSCORE_CHARSET 820
-#define UNDOFILE_SYM 821
-#define UNDO_BUFFER_SIZE_SYM 822
-#define UNDO_SYM 823
-#define UNICODE_SYM 824
-#define UNINSTALL_SYM 825
-#define UNION_SYM 826
-#define UNIQUE_SYM 827
-#define UNKNOWN_SYM 828
-#define UNLOCK_SYM 829
-#define UNSIGNED 830
-#define UNTIL_SYM 831
-#define UPDATE_SYM 832
-#define UPGRADE_SYM 833
-#define USAGE 834
-#define USER 835
-#define USER_STATS_SYM 836
-#define USE_FRM 837
-#define USE_SYM 838
-#define USING 839
-#define UTC_DATE_SYM 840
-#define UTC_TIMESTAMP_SYM 841
-#define UTC_TIME_SYM 842
-#define VALUES 843
-#define VALUE_SYM 844
-#define VARBINARY 845
-#define VARCHAR 846
-#define VARIABLES 847
-#define VARIANCE_SYM 848
-#define VARYING 849
-#define VAR_SAMP_SYM 850
-#define VIA_SYM 851
-#define VIEW_SYM 852
-#define VIRTUAL_SYM 853
-#define WAIT_SYM 854
-#define WARNINGS 855
-#define WEEK_SYM 856
-#define WHEN_SYM 857
-#define WHERE 858
-#define WHILE_SYM 859
-#define WITH 860
-#define WITH_CUBE_SYM 861
-#define WITH_ROLLUP_SYM 862
-#define WORK_SYM 863
-#define WRAPPER_SYM 864
-#define WRITE_SYM 865
-#define X509_SYM 866
-#define XA_SYM 867
-#define XML_SYM 868
-#define XOR 869
-#define YEAR_MONTH_SYM 870
-#define YEAR_SYM 871
-#define ZEROFILL 872
-#define IMPOSSIBLE_ACTION 873
+#define MYSQL_SYM 591
+#define MYSQL_ERRNO_SYM 592
+#define NAMES_SYM 593
+#define NAME_SYM 594
+#define NATIONAL_SYM 595
+#define NATURAL 596
+#define NCHAR_STRING 597
+#define NCHAR_SYM 598
+#define NDBCLUSTER_SYM 599
+#define NE 600
+#define NEG 601
+#define NEW_SYM 602
+#define NEXT_SYM 603
+#define NODEGROUP_SYM 604
+#define NONE_SYM 605
+#define NOT2_SYM 606
+#define NOT_SYM 607
+#define NOW_SYM 608
+#define NO_SYM 609
+#define NO_WAIT_SYM 610
+#define NO_WRITE_TO_BINLOG 611
+#define NULL_SYM 612
+#define NUM 613
+#define NUMERIC_SYM 614
+#define NVARCHAR_SYM 615
+#define OFFSET_SYM 616
+#define OLD_PASSWORD 617
+#define ON 618
+#define ONE_SHOT_SYM 619
+#define ONE_SYM 620
+#define ONLINE_SYM 621
+#define OPEN_SYM 622
+#define OPTIMIZE 623
+#define OPTIONS_SYM 624
+#define OPTION 625
+#define OPTIONALLY 626
+#define OR2_SYM 627
+#define ORDER_SYM 628
+#define OR_OR_SYM 629
+#define OR_SYM 630
+#define OUTER 631
+#define OUTFILE 632
+#define OUT_SYM 633
+#define OWNER_SYM 634
+#define PACK_KEYS_SYM 635
+#define PAGE_SYM 636
+#define PAGE_CHECKSUM_SYM 637
+#define PARAM_MARKER 638
+#define PARSER_SYM 639
+#define PARSE_VCOL_EXPR_SYM 640
+#define PARTIAL 641
+#define PARTITIONING_SYM 642
+#define PARTITIONS_SYM 643
+#define PARTITION_SYM 644
+#define PASSWORD 645
+#define PERSISTENT_SYM 646
+#define PHASE_SYM 647
+#define PLUGINS_SYM 648
+#define PLUGIN_SYM 649
+#define POINT_SYM 650
+#define POLYGON 651
+#define PORT_SYM 652
+#define POSITION_SYM 653
+#define PRECISION 654
+#define PREPARE_SYM 655
+#define PRESERVE_SYM 656
+#define PREV_SYM 657
+#define PRIMARY_SYM 658
+#define PRIVILEGES 659
+#define PROCEDURE_SYM 660
+#define PROCESS 661
+#define PROCESSLIST_SYM 662
+#define PROFILE_SYM 663
+#define PROFILES_SYM 664
+#define PROXY_SYM 665
+#define PURGE 666
+#define QUARTER_SYM 667
+#define QUERY_SYM 668
+#define QUICK 669
+#define RANGE_SYM 670
+#define READS_SYM 671
+#define READ_ONLY_SYM 672
+#define READ_SYM 673
+#define READ_WRITE_SYM 674
+#define REAL 675
+#define REBUILD_SYM 676
+#define RECOVER_SYM 677
+#define REDOFILE_SYM 678
+#define REDO_BUFFER_SIZE_SYM 679
+#define REDUNDANT_SYM 680
+#define REFERENCES 681
+#define REGEXP 682
+#define RELAY 683
+#define RELAYLOG_SYM 684
+#define RELAY_LOG_FILE_SYM 685
+#define RELAY_LOG_POS_SYM 686
+#define RELAY_THREAD 687
+#define RELEASE_SYM 688
+#define RELOAD 689
+#define REMOVE_SYM 690
+#define RENAME 691
+#define REORGANIZE_SYM 692
+#define REPAIR 693
+#define REPEATABLE_SYM 694
+#define REPEAT_SYM 695
+#define REPLACE 696
+#define REPLICATION 697
+#define REQUIRE_SYM 698
+#define RESET_SYM 699
+#define RESIGNAL_SYM 700
+#define RESOURCES 701
+#define RESTORE_SYM 702
+#define RESTRICT 703
+#define RESUME_SYM 704
+#define RETURNS_SYM 705
+#define RETURN_SYM 706
+#define REVOKE 707
+#define RIGHT 708
+#define ROLLBACK_SYM 709
+#define ROLLUP_SYM 710
+#define ROUTINE_SYM 711
+#define ROWS_SYM 712
+#define ROW_FORMAT_SYM 713
+#define ROW_SYM 714
+#define RTREE_SYM 715
+#define SAVEPOINT_SYM 716
+#define SCHEDULE_SYM 717
+#define SCHEMA_NAME_SYM 718
+#define SECOND_MICROSECOND_SYM 719
+#define SECOND_SYM 720
+#define SECURITY_SYM 721
+#define SELECT_SYM 722
+#define SENSITIVE_SYM 723
+#define SEPARATOR_SYM 724
+#define SERIALIZABLE_SYM 725
+#define SERIAL_SYM 726
+#define SESSION_SYM 727
+#define SERVER_SYM 728
+#define SERVER_OPTIONS 729
+#define SET 730
+#define SET_VAR 731
+#define SHARE_SYM 732
+#define SHIFT_LEFT 733
+#define SHIFT_RIGHT 734
+#define SHOW 735
+#define SHUTDOWN 736
+#define SIGNAL_SYM 737
+#define SIGNED_SYM 738
+#define SIMPLE_SYM 739
+#define SLAVE 740
+#define SLOW 741
+#define SMALLINT 742
+#define SNAPSHOT_SYM 743
+#define SOCKET_SYM 744
+#define SOFT_SYM 745
+#define SONAME_SYM 746
+#define SOUNDS_SYM 747
+#define SOURCE_SYM 748
+#define SPATIAL_SYM 749
+#define SPECIFIC_SYM 750
+#define SQLEXCEPTION_SYM 751
+#define SQLSTATE_SYM 752
+#define SQLWARNING_SYM 753
+#define SQL_BIG_RESULT 754
+#define SQL_BUFFER_RESULT 755
+#define SQL_CACHE_SYM 756
+#define SQL_CALC_FOUND_ROWS 757
+#define SQL_NO_CACHE_SYM 758
+#define SQL_SMALL_RESULT 759
+#define SQL_SYM 760
+#define SQL_THREAD 761
+#define SSL_SYM 762
+#define STARTING 763
+#define STARTS_SYM 764
+#define START_SYM 765
+#define STATUS_SYM 766
+#define STDDEV_SAMP_SYM 767
+#define STD_SYM 768
+#define STOP_SYM 769
+#define STORAGE_SYM 770
+#define STRAIGHT_JOIN 771
+#define STRING_SYM 772
+#define SUBCLASS_ORIGIN_SYM 773
+#define SUBDATE_SYM 774
+#define SUBJECT_SYM 775
+#define SUBPARTITIONS_SYM 776
+#define SUBPARTITION_SYM 777
+#define SUBSTRING 778
+#define SUM_SYM 779
+#define SUPER_SYM 780
+#define SUSPEND_SYM 781
+#define SWAPS_SYM 782
+#define SWITCHES_SYM 783
+#define SYSDATE 784
+#define TABLES 785
+#define TABLESPACE 786
+#define TABLE_REF_PRIORITY 787
+#define TABLE_STATS_SYM 788
+#define TABLE_SYM 789
+#define TABLE_CHECKSUM_SYM 790
+#define TABLE_NAME_SYM 791
+#define TEMPORARY 792
+#define TEMPTABLE_SYM 793
+#define TERMINATED 794
+#define TEXT_STRING 795
+#define TEXT_SYM 796
+#define THAN_SYM 797
+#define THEN_SYM 798
+#define TIMESTAMP 799
+#define TIMESTAMP_ADD 800
+#define TIMESTAMP_DIFF 801
+#define TIME_SYM 802
+#define TINYBLOB 803
+#define TINYINT 804
+#define TINYTEXT 805
+#define TO_SYM 806
+#define TRAILING 807
+#define TRANSACTION_SYM 808
+#define TRANSACTIONAL_SYM 809
+#define TRIGGERS_SYM 810
+#define TRIGGER_SYM 811
+#define TRIM 812
+#define TRUE_SYM 813
+#define TRUNCATE_SYM 814
+#define TYPES_SYM 815
+#define TYPE_SYM 816
+#define UDF_RETURNS_SYM 817
+#define ULONGLONG_NUM 818
+#define UNCOMMITTED_SYM 819
+#define UNDEFINED_SYM 820
+#define UNDERSCORE_CHARSET 821
+#define UNDOFILE_SYM 822
+#define UNDO_BUFFER_SIZE_SYM 823
+#define UNDO_SYM 824
+#define UNICODE_SYM 825
+#define UNINSTALL_SYM 826
+#define UNION_SYM 827
+#define UNIQUE_SYM 828
+#define UNKNOWN_SYM 829
+#define UNLOCK_SYM 830
+#define UNSIGNED 831
+#define UNTIL_SYM 832
+#define UPDATE_SYM 833
+#define UPGRADE_SYM 834
+#define USAGE 835
+#define USER 836
+#define USER_STATS_SYM 837
+#define USE_FRM 838
+#define USE_SYM 839
+#define USING 840
+#define UTC_DATE_SYM 841
+#define UTC_TIMESTAMP_SYM 842
+#define UTC_TIME_SYM 843
+#define VALUES 844
+#define VALUE_SYM 845
+#define VARBINARY 846
+#define VARCHAR 847
+#define VARIABLES 848
+#define VARIANCE_SYM 849
+#define VARYING 850
+#define VAR_SAMP_SYM 851
+#define VIA_SYM 852
+#define VIEW_SYM 853
+#define VIRTUAL_SYM 854
+#define WAIT_SYM 855
+#define WARNINGS 856
+#define WEEK_SYM 857
+#define WHEN_SYM 858
+#define WHERE 859
+#define WHILE_SYM 860
+#define WITH 861
+#define WITH_CUBE_SYM 862
+#define WITH_ROLLUP_SYM 863
+#define WORK_SYM 864
+#define WRAPPER_SYM 865
+#define WRITE_SYM 866
+#define X509_SYM 867
+#define XA_SYM 868
+#define XML_SYM 869
+#define XOR 870
+#define YEAR_MONTH_SYM 871
+#define YEAR_SYM 872
+#define ZEROFILL 873
+#define IMPOSSIBLE_ACTION 874
 
 
 
@@ -1283,7 +1285,7 @@ typedef union YYSTYPE
 {
 
 /* Line 1676 of yacc.c  */
-#line 732 "/home/buildbot/bzr/build/sql/sql_yacc.yy"
+#line 732 "/home/buildbot/git/sql/sql_yacc.yy"
 
   int  num;
   ulong ulong_num;
@@ -1339,7 +1341,7 @@ typedef union YYSTYPE
 
 
 /* Line 1676 of yacc.c  */
-#line 1343 "/home/buildbot/bzr/build/mkdist/sql/sql_yacc.h"
+#line 1345 "/home/buildbot/git/mkdist/sql/sql_yacc.h"
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 777cef5..cc16101 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -1,6 +1,6 @@
 /*
-   Copyright (c) 2000, 2014, Oracle and/or its affiliates.
-   Copyright (c) 2010, 2014, Monty Program Ab.
+   Copyright (c) 2000, 2015, Oracle and/or its affiliates.
+   Copyright (c) 2010, 2015, MariaDB
 
    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
@@ -1145,6 +1145,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
 %token  MULTIPOINT
 %token  MULTIPOLYGON
 %token  MUTEX_SYM
+%token  MYSQL_SYM
 %token  MYSQL_ERRNO_SYM
 %token  NAMES_SYM                     /* SQL-2003-N */
 %token  NAME_SYM                      /* SQL-2003-N */
@@ -7191,7 +7192,7 @@ opt_checksum_type:
         ;
 
 repair:
-          REPAIR opt_no_write_to_binlog table_or_tables
+          REPAIR opt_no_write_to_binlog table_or_view
           {
             LEX *lex=Lex;
             lex->sql_command = SQLCOM_REPAIR;
@@ -7204,6 +7205,15 @@ repair:
           table_list opt_mi_repair_type
           {
             LEX* lex= thd->lex;
+            if ((lex->only_view &&
+                 ((lex->check_opt.flags & (T_QUICK | T_EXTEND)) ||
+                   (lex->check_opt.sql_flags & TT_USEFRM))) ||
+                (!lex->only_view &&
+                 (lex->check_opt.sql_flags & TT_FROM_MYSQL)))
+            {
+              my_parse_error(ER(ER_SYNTAX_ERROR));
+              MYSQL_YYABORT;
+            }
             DBUG_ASSERT(!lex->m_stmt);
             lex->m_stmt= new (thd->mem_root) Repair_table_statement(lex);
             if (lex->m_stmt == NULL)
@@ -7225,6 +7235,7 @@ mi_repair_type:
           QUICK        { Lex->check_opt.flags|= T_QUICK; }
         | EXTENDED_SYM { Lex->check_opt.flags|= T_EXTEND; }
         | USE_FRM      { Lex->check_opt.sql_flags|= TT_USEFRM; }
+        | FROM MYSQL_SYM { Lex->check_opt.sql_flags|= TT_FROM_MYSQL; }
         ;
 
 analyze:
@@ -7257,7 +7268,7 @@ binlog_base64_event:
         ;
 
 check:
-          CHECK_SYM table_or_tables
+          CHECK_SYM table_or_view
           {
             LEX *lex=Lex;
 
@@ -7275,6 +7286,13 @@ check:
           table_list opt_mi_check_type
           {
             LEX* lex= thd->lex;
+            if (lex->only_view &&
+                (lex->check_opt.flags & (T_QUICK | T_FAST | T_EXTEND |
+                                         T_CHECK_ONLY_CHANGED)))
+            {
+              my_parse_error(ER(ER_SYNTAX_ERROR));
+              MYSQL_YYABORT;
+            }
             DBUG_ASSERT(!lex->m_stmt);
             lex->m_stmt= new (thd->mem_root) Check_table_statement(lex);
             if (lex->m_stmt == NULL)
@@ -7382,6 +7400,7 @@ keycache:
             LEX *lex=Lex;
             lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE;
             lex->ident= $6;
+            lex->only_view= FALSE;
           }
         ;
 
@@ -7426,6 +7445,7 @@ preload:
             LEX *lex=Lex;
             lex->sql_command=SQLCOM_PRELOAD_KEYS;
             lex->alter_info.reset();
+            lex->only_view= FALSE;
           }
           preload_list_or_parts
           {}
@@ -9214,7 +9234,8 @@ udf_expr:
                parse it out. If we hijack the input stream with
                remember_name we may get quoted or escaped names.
             */
-            else if ($2->type() != Item::FIELD_ITEM)
+            else if ($2->type() != Item::FIELD_ITEM &&
+                     $2->type() != Item::REF_ITEM /* For HAVING */ )
               $2->set_name($1, (uint) ($3 - $1), thd->charset());
             $$= $2;
           }
@@ -13186,6 +13207,7 @@ keyword_sp:
         | MULTIPOINT               {}
         | MULTIPOLYGON             {}
         | MUTEX_SYM                {}
+        | MYSQL_SYM                {}
         | MYSQL_ERRNO_SYM          {}
         | NAME_SYM                 {}
         | NAMES_SYM                {}
@@ -13784,8 +13806,13 @@ lock:
         ;
 
 table_or_tables:
-          TABLE_SYM
-        | TABLES
+          TABLE_SYM        { Lex->only_view= FALSE; }
+        | TABLES           { Lex->only_view= FALSE; }
+        ;
+
+table_or_view:
+          table_or_tables
+        | VIEW_SYM         { Lex->only_view= TRUE;  }
         ;
 
 table_lock_list:
@@ -14596,6 +14623,13 @@ subselect_end:
             */
             lex->current_select->select_n_where_fields+=
             child->select_n_where_fields;
+
+            /*
+              Aggregate functions in having clause may add fields to an outer
+              select. Count them also.
+            */
+            lex->current_select->select_n_having_items+=
+            child->select_n_having_items;
           }
         ;
 
diff --git a/sql/structs.h b/sql/structs.h
index ae71819..9840cec 100644
--- a/sql/structs.h
+++ b/sql/structs.h
@@ -76,6 +76,7 @@ typedef struct st_key_part_info {	/* Info about a key part */
   */
   uint16 store_length;
   uint16 key_type;
+  /* Fieldnr begins counting from 1 */
   uint16 fieldnr;			/* Fieldnum in UNIREG */
   uint16 key_part_flag;			/* 0 or HA_REVERSE_SORT */
   uint8 type;
diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
index 7cad362..63d3b38 100644
--- a/sql/sys_vars.cc
+++ b/sql/sys_vars.cc
@@ -1,5 +1,5 @@
-/* Copyright (c) 2002, 2014, Oracle and/or its affiliates.
-   Copyright (c) 2012, 2014, SkySQL Ab.
+/* Copyright (c) 2002, 2015, Oracle and/or its affiliates.
+   Copyright (c) 2012, 2015, MariaDB
 
    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
@@ -1808,7 +1808,7 @@ static Sys_var_ulong Sys_trans_alloc_block_size(
        "transaction_alloc_block_size",
        "Allocation block size for transactions to be stored in binary log",
        SESSION_VAR(trans_alloc_block_size), CMD_LINE(REQUIRED_ARG),
-       VALID_RANGE(1024, UINT_MAX), DEFAULT(QUERY_ALLOC_BLOCK_SIZE),
+       VALID_RANGE(1024, 128 * 1024 * 1024), DEFAULT(QUERY_ALLOC_BLOCK_SIZE),
        BLOCK_SIZE(1024), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0),
        ON_UPDATE(fix_trans_mem_root));
 
@@ -1816,7 +1816,7 @@ static Sys_var_ulong Sys_trans_prealloc_size(
        "transaction_prealloc_size",
        "Persistent buffer for transactions to be stored in binary log",
        SESSION_VAR(trans_prealloc_size), CMD_LINE(REQUIRED_ARG),
-       VALID_RANGE(1024, UINT_MAX), DEFAULT(TRANS_ALLOC_PREALLOC_SIZE),
+       VALID_RANGE(1024, 128 * 1024 * 1024), DEFAULT(TRANS_ALLOC_PREALLOC_SIZE),
        BLOCK_SIZE(1024), NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(0),
        ON_UPDATE(fix_trans_mem_root));
 
@@ -3679,7 +3679,7 @@ static Sys_var_ulong Sys_sp_cache_size(
        "The soft upper limit for number of cached stored routines for "
        "one connection.",
        GLOBAL_VAR(stored_program_cache_size), CMD_LINE(REQUIRED_ARG),
-       VALID_RANGE(256, 512 * 1024), DEFAULT(256), BLOCK_SIZE(1));
+       VALID_RANGE(0, 512 * 1024), DEFAULT(256), BLOCK_SIZE(1));
 
 export const char *plugin_maturity_names[]=
 { "unknown", "experimental", "alpha", "beta", "gamma", "stable", 0 };
diff --git a/sql/table.cc b/sql/table.cc
index 4ce7098..e4dee77 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -1,5 +1,5 @@
-/* Copyright (c) 2000, 2012, Oracle and/or its affiliates.
-   Copyright (c) 2008, 2014, SkySQL Ab.
+/* Copyright (c) 2000, 2014, Oracle and/or its affiliates.
+   Copyright (c) 2008, 2015, MariaDB
 
    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
@@ -890,6 +890,23 @@ static bool create_key_infos(uchar *strpos, uint keys, KEY *keyinfo,
   return 0;
 }
 
+/** ensures that the enum value (read from frm) is within limits
+
+    if not - issues a warning and resets the value to 0
+    (that is, 0 is assumed to be a default value)
+*/
+static uint enum_value_with_check(THD *thd, TABLE_SHARE *share,
+                                  const char *name, uint value, uint limit)
+{
+  if (value < limit)
+    return value;
+
+  sql_print_warning("%s.frm: invalid value %d for the field %s",
+                share->normalized_path.str, value, name);
+  return 0;
+}
+
+
 /*
   Read data from a binary .frm file from MySQL 3.23 - 5.0 into TABLE_SHARE
 */
@@ -983,9 +1000,12 @@ static int open_binary_frm(THD *thd, TABLE_SHARE *share, uchar *head,
   if (!head[32])				// New frm file in 3.23
   {
     share->avg_row_length= uint4korr(head+34);
-    share->transactional= (ha_choice) (head[39] & 3);
-    share->page_checksum= (ha_choice) ((head[39] >> 2) & 3);
-    share->row_type= (row_type) head[40];
+    share->transactional= (ha_choice)
+      enum_value_with_check(thd, share, "transactional", (head[39] & 3), HA_CHOICE_MAX);
+    share->page_checksum= (ha_choice)
+      enum_value_with_check(thd, share, "page_checksum", (head[39] >> 2) & 3, HA_CHOICE_MAX);
+    share->row_type= (row_type)
+      enum_value_with_check(thd, share, "row_format", head[40], ROW_TYPE_MAX);
     share->table_charset= get_charset((((uint) head[41]) << 8) + 
                                         (uint) head[38],MYF(0));
     share->null_field_first= 1;
@@ -2703,7 +2723,9 @@ partititon_err:
   outparam->no_replicate= outparam->file &&
                           test(outparam->file->ha_table_flags() &
                                HA_HAS_OWN_BINLOGGING);
-  thd->status_var.opened_tables++;
+  /* Increment the opened_tables counter, only when open flags set. */
+  if (db_stat)
+    thd->status_var.opened_tables++;
 
   thd->lex->context_analysis_only= save_context_analysis_only;
   DBUG_RETURN (0);
@@ -5012,7 +5034,8 @@ TABLE *TABLE_LIST::get_real_join_table()
   TABLE_LIST *tbl= this;
   while (tbl->table == NULL || tbl->table->reginfo.join_tab == NULL)
   {
-    if (tbl->view == NULL && tbl->derived == NULL)
+    if ((tbl->view == NULL && tbl->derived == NULL) ||
+        tbl->is_materialized_derived())
       break;
     /* we do not support merging of union yet */
     DBUG_ASSERT(tbl->view == NULL ||
@@ -5021,28 +5044,25 @@ TABLE *TABLE_LIST::get_real_join_table()
                tbl->derived->first_select()->next_select() == NULL);
 
     {
-      List_iterator_fast<TABLE_LIST> ti;
+      List_iterator_fast<TABLE_LIST>
+        ti(tbl->view != NULL ?
+           tbl->view->select_lex.top_join_list :
+           tbl->derived->first_select()->top_join_list);
+      for (;;)
       {
-        List_iterator_fast<TABLE_LIST>
-          ti(tbl->view != NULL ?
-             tbl->view->select_lex.top_join_list :
-             tbl->derived->first_select()->top_join_list);
-        for (;;)
-        {
-          tbl= NULL;
-          /*
-            Find left table in outer join on this level
-            (the list is reverted).
-          */
-          for (TABLE_LIST *t= ti++; t; t= ti++)
-            tbl= t;
-          if (!tbl)
-            return NULL; // view/derived with no tables
-          if (!tbl->nested_join)
-            break;
-          /* go deeper if we've found nested join */
-          ti= tbl->nested_join->join_list;
-        }
+        tbl= NULL;
+        /*
+          Find left table in outer join on this level
+          (the list is reverted).
+        */
+        for (TABLE_LIST *t= ti++; t; t= ti++)
+          tbl= t;
+        if (!tbl)
+          return NULL; // view/derived with no tables
+        if (!tbl->nested_join)
+          break;
+        /* go deeper if we've found nested join */
+        ti= tbl->nested_join->join_list;
       }
     }
   }
@@ -5946,18 +5966,32 @@ bool TABLE::alloc_keys(uint key_count)
 }
 
 
-void TABLE::create_key_part_by_field(KEY *keyinfo,
-                                     KEY_PART_INFO *key_part_info,
+/**
+  @brief
+  Populate a KEY_PART_INFO structure with the data related to a field entry.
+
+  @param key_part_info  The structure to fill.
+  @param field          The field entry that represents the key part.
+  @param fleldnr        The number of the field, count starting from 1.
+
+  TODO: This method does not make use of any table specific fields. It
+  could be refactored to act as a constructor for KEY_PART_INFO instead.
+*/
+
+void TABLE::create_key_part_by_field(KEY_PART_INFO *key_part_info,
                                      Field *field, uint fieldnr)
-{   
+{
   key_part_info->null_bit= field->null_bit;
   key_part_info->null_offset= (uint) (field->null_ptr -
                                       (uchar*) record[0]);
   key_part_info->field= field;
   key_part_info->fieldnr= fieldnr;
   key_part_info->offset= field->offset(record[0]);
-  key_part_info->length=   (uint16) field->pack_length();
-  keyinfo->key_length+= key_part_info->length;
+  /*
+     field->key_length() accounts for the raw length of the field, excluding
+     any metadata such as length of field or the NULL flag.
+  */
+  key_part_info->length= (uint16) field->key_length();
   key_part_info->key_part_flag= 0;
   /* TODO:
     The below method of computing the key format length of the
@@ -5969,17 +6003,20 @@ void TABLE::create_key_part_by_field(KEY *keyinfo,
   */
   key_part_info->store_length= key_part_info->length;
 
+  /*
+     The total store length of the key part is the raw length of the field +
+     any metadata information, such as its length for strings and/or the null
+     flag.
+  */
   if (field->real_maybe_null())
   {
     key_part_info->store_length+= HA_KEY_NULL_LENGTH;
-    keyinfo->key_length+= HA_KEY_NULL_LENGTH;
   }
   if (field->type() == MYSQL_TYPE_BLOB || 
       field->type() == MYSQL_TYPE_GEOMETRY ||
       field->real_type() == MYSQL_TYPE_VARCHAR)
   {
     key_part_info->store_length+= HA_KEY_BLOB_LENGTH;
-    keyinfo->key_length+= HA_KEY_BLOB_LENGTH; // ???
     key_part_info->key_part_flag|=
       field->type() == MYSQL_TYPE_BLOB ? HA_BLOB_PART: HA_VAR_LENGTH_PART;
   }
@@ -6102,7 +6139,8 @@ bool TABLE::add_tmp_key(uint key, uint key_parts,
     if (key_start)
       (*reg_field)->key_start.set_bit(key);
     (*reg_field)->part_of_key.set_bit(key);
-    create_key_part_by_field(keyinfo, key_part_info, *reg_field, fld_idx+1);
+    create_key_part_by_field(key_part_info, *reg_field, fld_idx+1);
+    keyinfo->key_length += key_part_info->store_length;
     (*reg_field)->flags|= PART_KEY_FLAG;
     key_start= FALSE;
     key_part_info++;
diff --git a/sql/table.h b/sql/table.h
index ac15e38..8324454 100644
--- a/sql/table.h
+++ b/sql/table.h
@@ -1269,7 +1269,7 @@ public:
   bool add_tmp_key(uint key, uint key_parts,
                    uint (*next_field_no) (uchar *), uchar *arg,
                    bool unique);
-  void create_key_part_by_field(KEY *keyinfo, KEY_PART_INFO *key_part_info,
+  void create_key_part_by_field(KEY_PART_INFO *key_part_info,
                                 Field *field, uint fieldnr);
   void use_index(int key_to_save);
   void set_table_map(table_map map_arg, uint tablenr_arg)
@@ -1807,6 +1807,7 @@ struct TABLE_LIST
   LEX_STRING	timestamp;		/* GMT time stamp of last operation */
   st_lex_user   definer;                /* definer of view */
   ulonglong	file_version;		/* version of file's field set */
+  ulonglong	mariadb_version;	/* version of server on creation */
   ulonglong     updatable_view;         /* VIEW can be updated */
   /** 
       @brief The declared algorithm, if this is a view.
@@ -1983,6 +1984,24 @@ struct TABLE_LIST
   TABLE_LIST *find_underlying_table(TABLE *table);
   TABLE_LIST *first_leaf_for_name_resolution();
   TABLE_LIST *last_leaf_for_name_resolution();
+  /**
+     @brief
+       Find the bottom in the chain of embedded table VIEWs.
+
+     @detail
+       This is used for single-table UPDATE/DELETE when they are modifying a
+       single-table VIEW.
+  */
+  TABLE_LIST *find_table_for_update()
+  {
+    TABLE_LIST *tbl= this;
+    while(!tbl->is_multitable() && tbl->single_table_updatable() &&
+        tbl->merge_underlying_list)
+    {
+      tbl= tbl->merge_underlying_list;
+    }
+    return tbl;
+  }
   TABLE *get_real_join_table();
   bool is_leaf_for_name_resolution();
   inline TABLE_LIST *top_table()
diff --git a/sql/udf_example.c b/sql/udf_example.c
index 36a5eaf..a48801d 100644
--- a/sql/udf_example.c
+++ b/sql/udf_example.c
@@ -1,5 +1,5 @@
 /*
-   Copyright (c) 2000, 2010, Oracle and/or its affiliates.
+   Copyright (c) 2000, 2014, Oracle and/or its affiliates.
 
    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
@@ -296,9 +296,12 @@ char *metaphon(UDF_INIT *initid __attribute__((unused)),
 
   if (!word)					/* Null argument */
   {
+    /* The length is expected to be zero when the argument is NULL. */
+    assert(args->lengths[0] == 0);
     *is_null=1;
     return 0;
   }
+
   w_end=word+args->lengths[0];
   org_result=result;
 
diff --git a/sql/uniques.cc b/sql/uniques.cc
index 72411be..fe3e329 100644
--- a/sql/uniques.cc
+++ b/sql/uniques.cc
@@ -97,7 +97,7 @@ Unique::Unique(qsort_cmp2 comp_func, void * comp_func_fixed_arg,
   max_elements= (ulong) (max_in_memory_size /
                          ALIGN_SIZE(sizeof(TREE_ELEMENT)+size));
   (void) open_cached_file(&file, mysql_tmpdir,TEMP_PREFIX, DISK_BUFFER_SIZE,
-		   MYF(MY_WME));
+                          MYF(MY_WME));
 }
 
 
@@ -607,8 +607,8 @@ bool Unique::walk(TABLE *table, tree_walk_action action, void *walk_action_arg)
     return 1;
   if (flush_io_cache(&file) || reinit_io_cache(&file, READ_CACHE, 0L, 0, 0))
     return 1;
-  ulong buff_sz= (max_in_memory_size / full_size + 1) * full_size;
-  if (!(merge_buffer= (uchar *) my_malloc((ulong) buff_sz, MYF(0))))
+  size_t buff_sz= (max_in_memory_size / full_size + 1) * full_size;
+  if (!(merge_buffer = (uchar *)my_malloc(buff_sz, MYF(MY_WME))))
     return 1;
   if (buff_sz < (ulong) (full_size * (file_ptrs.elements + 1)))
     res= merge(table, merge_buffer, buff_sz >= full_size * MERGEBUFF2) ;
@@ -737,9 +737,8 @@ bool Unique::get(TABLE *table)
   /* Not enough memory; Save the result to file && free memory used by tree */
   if (flush())
     return 1;
-  
-  ulong buff_sz= (max_in_memory_size / full_size + 1) * full_size;
-  if (!(sort_buffer= (uchar*) my_malloc(buff_sz, MYF(0))))
+  size_t buff_sz= (max_in_memory_size / full_size + 1) * full_size;
+  if (!(sort_buffer= (uchar*) my_malloc(buff_sz, MYF(MY_WME))))
     return 1;
 
   if (merge(table, sort_buffer, FALSE))
diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc
index b3db613..c720213 100644
--- a/storage/federated/ha_federated.cc
+++ b/storage/federated/ha_federated.cc
@@ -1,4 +1,4 @@
-/* Copyright (c) 2004, 2013, Oracle and/or its affiliates.
+/* Copyright (c) 2004, 2015, Oracle and/or its affiliates.
 
   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
@@ -1679,9 +1679,9 @@ int ha_federated::close(void)
   DBUG_ENTER("ha_federated::close");
 
   free_result();
-  
+
   delete_dynamic(&results);
-  
+
   /* Disconnect from mysql */
   mysql_close(mysql);
   mysql= NULL;
@@ -2904,7 +2904,7 @@ int ha_federated::info(uint flag)
 
   }
 
-  if (flag & HA_STATUS_AUTO)
+  if ((flag & HA_STATUS_AUTO) && mysql)
     stats.auto_increment_value= mysql->insert_id;
 
   mysql_free_result(result);
diff --git a/storage/innobase/dict/dict0dict.c b/storage/innobase/dict/dict0dict.c
index c298f86..49d0612 100644
--- a/storage/innobase/dict/dict0dict.c
+++ b/storage/innobase/dict/dict0dict.c
@@ -2530,13 +2530,16 @@ dict_foreign_remove_from_cache(
 
 		rbt = foreign->referenced_table->referenced_rbt;
 
-		if (rbt != NULL) {
+		if (rbt != NULL && foreign->id != NULL) {
 			const ib_rbt_node_t*	node
 				= rbt_lookup(rbt, foreign->id);
-			dict_foreign_t*	val = *(dict_foreign_t**) node->value;
 
-			if (val == foreign) {
-				rbt_delete(rbt, foreign->id);
+			if (node) {
+				dict_foreign_t*	val = *(dict_foreign_t**) node->value;
+
+				if (val == foreign) {
+					rbt_delete(rbt, foreign->id);
+				}
 			}
 		}
 	}
@@ -2549,13 +2552,16 @@ dict_foreign_remove_from_cache(
 			       foreign);
 		rbt = foreign->foreign_table->foreign_rbt;
 
-		if (rbt != NULL) {
+		if (rbt != NULL && foreign->id != NULL) {
 			const ib_rbt_node_t*	node
 				= rbt_lookup(rbt, foreign->id);
-			dict_foreign_t*	val = *(dict_foreign_t**) node->value;
+			if (node) {
 
-			if (val == foreign) {
-				rbt_delete(rbt, foreign->id);
+				dict_foreign_t*	val = *(dict_foreign_t**) node->value;
+
+				if (val == foreign) {
+					rbt_delete(rbt, foreign->id);
+				}
 			}
 		}
 	}
diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
index d58eb06..a7854af 100644
--- a/storage/innobase/handler/ha_innodb.cc
+++ b/storage/innobase/handler/ha_innodb.cc
@@ -5104,12 +5104,15 @@ ha_innobase::innobase_lock_autoinc(void)
 		break;
 
 	case AUTOINC_NEW_STYLE_LOCKING:
-		/* For simple (single/multi) row INSERTs, we fallback to the
-		old style only if another transaction has already acquired
-		the AUTOINC lock on behalf of a LOAD FILE or INSERT ... SELECT
-		etc. type of statement. */
+		/* For simple (single/multi) row INSERTs/REPLACEs and RBR
+		events, we fallback to the old style only if another
+		transaction has already acquired the AUTOINC lock on
+		behalf of a LOAD FILE or INSERT ... SELECT etc. type of
+		statement. */
 		if (thd_sql_command(user_thd) == SQLCOM_INSERT
-		    || thd_sql_command(user_thd) == SQLCOM_REPLACE) {
+		    || thd_sql_command(user_thd) == SQLCOM_REPLACE
+		    || thd_sql_command(user_thd) == SQLCOM_END // RBR event
+		) {
 			dict_table_t*	table = prebuilt->table;
 
 			/* Acquire the AUTOINC mutex. */
@@ -5118,9 +5121,11 @@ ha_innobase::innobase_lock_autoinc(void)
 			/* We need to check that another transaction isn't
 			already holding the AUTOINC lock on the table. */
 			if (table->n_waiting_or_granted_auto_inc_locks) {
-				/* Release the mutex to avoid deadlocks. */
+				/* Release the mutex to avoid deadlocks and
+				fall back to old style locking. */
 				dict_table_autoinc_unlock(table);
 			} else {
+				/* Do not fall back to old style locking. */
 				break;
 			}
 		}
@@ -10572,10 +10577,8 @@ ha_innobase::cmp_ref(
 			len1 = innobase_read_from_2_little_endian(ref1);
 			len2 = innobase_read_from_2_little_endian(ref2);
 
-			ref1 += 2;
-			ref2 += 2;
-			result = ((Field_blob*)field)->cmp( ref1, len1,
-                                                            ref2, len2);
+			result = ((Field_blob*)field)->cmp(ref1 + 2, len1,
+							   ref2 + 2, len2);
 		} else {
 			result = field->key_cmp(ref1, ref2);
 		}
@@ -12259,7 +12262,7 @@ innobase_convert_to_filename_charset(
 
 /**********************************************************************
 Issue a warning that the row is too big. */
-extern "C"
+extern "C" UNIV_INTERN
 void
 ib_warn_row_too_big(const dict_table_t*	table)
 {
@@ -12273,6 +12276,10 @@ ib_warn_row_too_big(const dict_table_t*	table)
 
 	THD*	thd = current_thd;
 
+	if (thd == NULL) {
+		return;
+	}
+
 	push_warning_printf(
 		thd, MYSQL_ERROR::WARN_LEVEL_WARN, HA_ERR_TO_BIG_ROW,
 		"Row size too large (> %lu). Changing some columns to TEXT"
diff --git a/storage/innobase/ibuf/ibuf0ibuf.c b/storage/innobase/ibuf/ibuf0ibuf.c
index d22fc8b..eee5402 100644
--- a/storage/innobase/ibuf/ibuf0ibuf.c
+++ b/storage/innobase/ibuf/ibuf0ibuf.c
@@ -2731,6 +2731,14 @@ ibuf_contract_for_n_pages(
 	ulint	n_bytes;
 	ulint	n_pag2;
 
+#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG
+	if (ibuf_debug) {
+		return(0);
+	}
+#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
+
+
+
 	while (sum_pages < n_pages) {
 		n_bytes = ibuf_contract_ext(&n_pag2, sync);
 
diff --git a/storage/innobase/include/dict0dict.h b/storage/innobase/include/dict0dict.h
index 0ad3cb3..bb1119b 100644
--- a/storage/innobase/include/dict0dict.h
+++ b/storage/innobase/include/dict0dict.h
@@ -1139,7 +1139,7 @@ recalculated
 */
 #define DICT_TABLE_CHANGED_TOO_MUCH(t) \
 	((ib_int64_t) (t)->stat_modified_counter > (srv_stats_modified_counter ? \
-	ut_min(srv_stats_modified_counter, (16 + (t)->stat_n_rows / 16)) : \
+	(ib_int64_t) ut_min(srv_stats_modified_counter, (16 + (t)->stat_n_rows / 16)) : \
 		16 + (t)->stat_n_rows / 16))
 
 /*********************************************************************//**
diff --git a/storage/innobase/rem/rem0rec.c b/storage/innobase/rem/rem0rec.c
index d938aa6..f725259 100644
--- a/storage/innobase/rem/rem0rec.c
+++ b/storage/innobase/rem/rem0rec.c
@@ -1257,7 +1257,7 @@ rec_convert_dtuple_to_rec_comp(
 			*lens-- = (byte) len;
 		} else {
 			ut_ad(len <= dtype_get_len(type)
-			      || dtype_get_mtype(type) == DATA_BLOB);
+				|| dtype_get_mtype(type) == DATA_BLOB);
 			if (len < 128
 			    || (dtype_get_len(type) < 256
 				&& dtype_get_mtype(type) != DATA_BLOB)) {
diff --git a/storage/oqgraph/CMakeLists.txt b/storage/oqgraph/CMakeLists.txt
index 7b110b7..0a3cabc 100644
--- a/storage/oqgraph/CMakeLists.txt
+++ b/storage/oqgraph/CMakeLists.txt
@@ -52,4 +52,5 @@ IF(BOOST_OK)
 
   MYSQL_ADD_PLUGIN(oqgraph ha_oqgraph.cc graphcore.cc STORAGE_ENGINE
                    MODULE_ONLY)
+  SET(OQGRAPH_DEB_FILES "usr/lib/mysql/plugin/ha_oqgraph.so\n" PARENT_SCOPE)
 ENDIF(BOOST_OK)
diff --git a/storage/tokudb/CMakeLists.txt b/storage/tokudb/CMakeLists.txt
index 165e633..e8667c1 100644
--- a/storage/tokudb/CMakeLists.txt
+++ b/storage/tokudb/CMakeLists.txt
@@ -25,7 +25,7 @@ IF (HAVE_WVLA)
 ENDIF()
 
 ############################################
-SET(TOKUDB_VERSION "tokudb-7.5.3")
+SET(TOKUDB_VERSION "tokudb-7.5.6")
 SET(TOKUDB_DEB_FILES "usr/lib/mysql/plugin/ha_tokudb.so\netc/mysql/conf.d/tokudb.cnf\nusr/bin/tokuftdump\nusr/share/doc/mariadb-server-5.5/README-TOKUDB\nusr/share/doc/mariadb-server-5.5/README.md" PARENT_SCOPE)
 SET(USE_BDB OFF CACHE BOOL "")
 MARK_AS_ADVANCED(BUILDNAME)
@@ -72,18 +72,34 @@ include(CheckCXXCompilerFlag)
 
 macro(set_cflags_if_supported)
   foreach(flag ${ARGN})
-    check_c_compiler_flag(${flag} HAVE_C_${flag})
-    if (HAVE_C_${flag})
+    string(REGEX REPLACE "-" "_" temp_flag ${flag})
+    check_c_compiler_flag(${flag} HAVE_C_${temp_flag})
+    if (HAVE_C_${temp_flag})
       set(CMAKE_C_FLAGS "${flag} ${CMAKE_C_FLAGS}")
     endif ()
-    check_cxx_compiler_flag(${flag} HAVE_CXX_${flag})
-    if (HAVE_CXX_${flag})
+    check_cxx_compiler_flag(${flag} HAVE_CXX_${temp_flag})
+    if (HAVE_CXX_${temp_flag})
       set(CMAKE_CXX_FLAGS "${flag} ${CMAKE_CXX_FLAGS}")
     endif ()
   endforeach(flag)
 endmacro(set_cflags_if_supported)
 
+macro(append_cflags_if_supported)
+  foreach(flag ${ARGN})
+    string(REGEX REPLACE "-" "_" temp_flag ${flag})
+    check_c_compiler_flag(${flag} HAVE_C_${temp_flag})
+    if (HAVE_C_${temp_flag})
+      set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${flag}")
+    endif ()
+    check_cxx_compiler_flag(${flag} HAVE_CXX_${temp_flag})
+    if (HAVE_CXX_${temp_flag})
+      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}")
+    endif ()
+  endforeach(flag)
+endmacro(append_cflags_if_supported)
+
 set_cflags_if_supported(-Wno-missing-field-initializers)
+append_cflags_if_supported(-Wno-vla)
 
 ADD_SUBDIRECTORY(ft-index)
 
diff --git a/storage/tokudb/README.md b/storage/tokudb/README.md
index dc7362a..0d4f09d 100644
--- a/storage/tokudb/README.md
+++ b/storage/tokudb/README.md
@@ -1,11 +1,10 @@
 TokuDB
 ======
 
-TokuDB is a high-performance, write optimized, transactional storage engine for MySQL and
-MariaDB.  For more details, see our [product page][products].
+TokuDB is a high-performance, write optimized, transactional storage engine for MySQL, MariaDB, and Percona Server.
+For more details, see our [product page][products].
 
-This repository contains the MySQL plugin that uses the [TokuFT][tokuft]
-core.
+This repository contains the MySQL plugin that uses the [TokuFT][tokuft] core.
 
 There are also patches to the MySQL and MariaDB kernels, available in our
 forks of [mysql][mysql] and [mariadb][mariadb].
@@ -15,23 +14,30 @@ forks of [mysql][mysql] and [mariadb][mariadb].
 [mysql]: http://github.com/Tokutek/mysql
 [mariadb]: http://github.com/Tokutek/mariadb
 
-
-Building
+Download
 --------
 
+* [MySQL 5.5 + TokuDB](http://www.tokutek.com/tokudb-for-mysql/download-community/)
+* [MariaDB 5.5 + TokuDB](http://www.tokutek.com/tokudb-for-mysql/download-community/)
+* [MariaDB 10.0 + TokuDB](https://downloads.mariadb.org/)
+* [Percona Server 5.6 + TokuDB](http://www.percona.com/downloads/)
+
+Build
+-----
+
 The `scripts/` directory contains a script that can be used to build a
 working MySQL or MariaDB with Tokutek patches, and with the TokuDB storage
 engine, called `make.mysql.bash`.  This script will download copies of the
 needed source code from github and build everything.
 
-To build MySQL 5.5.39 with TokuDB 7.5.2:
+To build MySQL 5.5.41 with TokuDB 7.5.5:
 ```sh
-scripts/make.mysql.bash --mysqlbuild=mysql-5.5.39-tokudb-7.5.2-linux-x86_64
+scripts/make.mysql.bash --mysqlbuild=mysql-5.5.41-tokudb-7.5.5-linux-x86_64
 ```
 
-To build MariaDB 5.5.39 with TokuDB 7.5.2:
+To build MariaDB 5.5.41 with TokuDB 7.5.5:
 ```sh
-scripts/make.mysql.bash --mysqlbuild=mariadb-5.5.39-tokudb-7.5.2-linux-x86_64
+scripts/make.mysql.bash --mysqlbuild=mariadb-5.5.41-tokudb-7.5.5-linux-x86_64
 ```
 
 Before you start, make sure you have a C++11-compatible compiler (GCC >=
@@ -53,11 +59,12 @@ repositories, run this:
 scripts/make.mysql.debug.env.bash
 ```
 
+We use gcc from devtoolset-1.1 on CentOS 5.9 for builds.
 
-Contributing
-------------
+Contribute
+----------
 
-Please report bugs in TokuDB here on github.
+Please report TokuDB bugs at https://tokutek.atlassian.net/browse/DB.
 
 We have two publicly accessible mailing lists:
 
@@ -66,7 +73,7 @@ We have two publicly accessible mailing lists:
  - tokudb-dev at googlegroups.com is for discussion of the development of
    TokuDB.
 
-We are also available on IRC on freenode.net, in the #tokutek channel.
+We are on IRC on freenode.net, in the #tokutek channel.
 
 
 License
@@ -74,7 +81,7 @@ License
 
 TokuDB is available under the GPL version 2.  See [COPYING][copying]
 
-The TokuKV component of TokuDB is available under the GPL version 2, with
+The TokuFT component of TokuDB is available under the GPL version 2, with
 slight modifications.  See [README-TOKUDB][license].
 
 [copying]: http://github.com/Tokutek/tokudb-engine/blob/master/COPYING
diff --git a/storage/tokudb/doc2/sysbench.update.ma10.tokudb754.loglog.png b/storage/tokudb/doc2/sysbench.update.ma10.tokudb754.loglog.png
new file mode 100644
index 0000000..7b2c1c5
Binary files /dev/null and b/storage/tokudb/doc2/sysbench.update.ma10.tokudb754.loglog.png differ
diff --git a/storage/tokudb/doc2/sysbench.update.ma10.tokudb754.png b/storage/tokudb/doc2/sysbench.update.ma10.tokudb754.png
new file mode 100644
index 0000000..d46c053
Binary files /dev/null and b/storage/tokudb/doc2/sysbench.update.ma10.tokudb754.png differ
diff --git a/storage/tokudb/doc2/sysbench.update.ma55.tokudb753.binlog.png b/storage/tokudb/doc2/sysbench.update.ma55.tokudb753.binlog.png
new file mode 100644
index 0000000..510f181
Binary files /dev/null and b/storage/tokudb/doc2/sysbench.update.ma55.tokudb753.binlog.png differ
diff --git a/storage/tokudb/doc2/sysbench.update.ma55.tokudb753.loglog.png b/storage/tokudb/doc2/sysbench.update.ma55.tokudb753.loglog.png
new file mode 100644
index 0000000..81fecd3
Binary files /dev/null and b/storage/tokudb/doc2/sysbench.update.ma55.tokudb753.loglog.png differ
diff --git a/storage/tokudb/doc2/sysbench.update.ma55.tokudb753.png b/storage/tokudb/doc2/sysbench.update.ma55.tokudb753.png
new file mode 100644
index 0000000..e5ed5f9
Binary files /dev/null and b/storage/tokudb/doc2/sysbench.update.ma55.tokudb753.png differ
diff --git a/storage/tokudb/doc2/sysbench.update.my55.tokudb753.loglog.png b/storage/tokudb/doc2/sysbench.update.my55.tokudb753.loglog.png
new file mode 100644
index 0000000..1fe55b0
Binary files /dev/null and b/storage/tokudb/doc2/sysbench.update.my55.tokudb753.loglog.png differ
diff --git a/storage/tokudb/doc2/sysbench.update.ps56.tokudb754.loglog.png b/storage/tokudb/doc2/sysbench.update.ps56.tokudb754.loglog.png
new file mode 100644
index 0000000..5298527
Binary files /dev/null and b/storage/tokudb/doc2/sysbench.update.ps56.tokudb754.loglog.png differ
diff --git a/storage/tokudb/doc2/sysbench.update.ps56.tokudb754.png b/storage/tokudb/doc2/sysbench.update.ps56.tokudb754.png
new file mode 100644
index 0000000..39b1c59
Binary files /dev/null and b/storage/tokudb/doc2/sysbench.update.ps56.tokudb754.png differ
diff --git a/storage/tokudb/ft-index/buildheader/make_tdb.cc b/storage/tokudb/ft-index/buildheader/make_tdb.cc
index 9890b8e..3f9a721 100644
--- a/storage/tokudb/ft-index/buildheader/make_tdb.cc
+++ b/storage/tokudb/ft-index/buildheader/make_tdb.cc
@@ -572,7 +572,7 @@ static void print_db_txn_struct (void) {
     STRUCT_SETUP(DB_TXN, abort,       "int (*%s) (DB_TXN *)");
     STRUCT_SETUP(DB_TXN, api_internal,"void *%s");
     STRUCT_SETUP(DB_TXN, commit,      "int (*%s) (DB_TXN*, uint32_t)");
-    STRUCT_SETUP(DB_TXN, prepare,     "int (*%s) (DB_TXN*, uint8_t gid[DB_GID_SIZE])");
+    STRUCT_SETUP(DB_TXN, prepare,     "int (*%s) (DB_TXN*, uint8_t gid[DB_GID_SIZE], uint32_t flags)");
     STRUCT_SETUP(DB_TXN, discard,     "int (*%s) (DB_TXN*, uint32_t)");
     STRUCT_SETUP(DB_TXN, id,          "uint32_t (*%s) (DB_TXN *)");
     STRUCT_SETUP(DB_TXN, mgrp,        "DB_ENV *%s /* In TokuFT, mgrp is a DB_ENV, not a DB_TXNMGR */");
@@ -581,10 +581,12 @@ static void print_db_txn_struct (void) {
 	"int (*txn_stat)(DB_TXN *, struct txn_stat **)", 
 	"int (*commit_with_progress)(DB_TXN*, uint32_t, TXN_PROGRESS_POLL_FUNCTION, void*)",
 	"int (*abort_with_progress)(DB_TXN*, TXN_PROGRESS_POLL_FUNCTION, void*)",
-	"int (*xa_prepare) (DB_TXN*, TOKU_XA_XID *)",
+	"int (*xa_prepare) (DB_TXN*, TOKU_XA_XID *, uint32_t flags)",
         "uint64_t (*id64) (DB_TXN*)",
         "void (*set_client_id)(DB_TXN *, uint64_t client_id)",
         "uint64_t (*get_client_id)(DB_TXN *)",
+        "bool (*is_prepared)(DB_TXN *)",
+        "DB_TXN *(*get_child)(DB_TXN *)",
 	NULL};
     sort_and_dump_fields("db_txn", false, extra);
 }
@@ -613,7 +615,7 @@ static void print_dbc_struct (void) {
 	"int (*c_getf_set_range_reverse)(DBC *, uint32_t, DBT *, YDB_CALLBACK_FUNCTION, void *)",
 	"int (*c_getf_set_range_with_bound)(DBC *, uint32_t, DBT *k, DBT *k_bound, YDB_CALLBACK_FUNCTION, void *)",
 	"int (*c_set_bounds)(DBC*, const DBT*, const DBT*, bool pre_acquire, int out_of_range_error)",
-        "void (*c_set_check_interrupt_callback)(DBC*, bool (*)(void*), void *)",
+        "void (*c_set_check_interrupt_callback)(DBC*, bool (*)(void*, uint64_t deleted_rows), void *)",
 	"void (*c_remove_restriction)(DBC*)",
         "char _internal[512]",
 	NULL};
diff --git a/storage/tokudb/ft-index/ft/ft-internal.h b/storage/tokudb/ft-index/ft/ft-internal.h
index 3cd3970..4a820d5 100644
--- a/storage/tokudb/ft-index/ft/ft-internal.h
+++ b/storage/tokudb/ft-index/ft/ft-internal.h
@@ -616,6 +616,7 @@ typedef enum {
     FT_PRO_RIGHTMOST_LEAF_SHORTCUT_SUCCESS,
     FT_PRO_RIGHTMOST_LEAF_SHORTCUT_FAIL_POS,
     FT_PRO_RIGHTMOST_LEAF_SHORTCUT_FAIL_REACTIVE,
+    FT_CURSOR_SKIP_DELETED_LEAF_ENTRY, // how many deleted leaf entries were skipped by a cursor
     FT_STATUS_NUM_ROWS
 } ft_status_entry;
 
@@ -654,7 +655,7 @@ int toku_upgrade_msn_from_root_to_header(int fd, FT ft) __attribute__((nonnull))
 // When lock_only is true, the callback only does optional lock tree locking.
 typedef int (*FT_GET_CALLBACK_FUNCTION)(uint32_t keylen, const void *key, uint32_t vallen, const void *val, void *extra, bool lock_only);
 
-typedef bool (*FT_CHECK_INTERRUPT_CALLBACK)(void *extra);
+typedef bool (*FT_CHECK_INTERRUPT_CALLBACK)(void *extra, uint64_t deleted_rows);
 
 struct ft_cursor;
 int toku_ft_search(FT_HANDLE ft_handle, ft_search *search, FT_GET_CALLBACK_FUNCTION getf, void *getf_v, struct ft_cursor *ftcursor, bool can_bulk_fetch);
diff --git a/storage/tokudb/ft-index/ft/ft-ops.cc b/storage/tokudb/ft-index/ft/ft-ops.cc
index 481d80f..b3c224a 100644
--- a/storage/tokudb/ft-index/ft/ft-ops.cc
+++ b/storage/tokudb/ft-index/ft/ft-ops.cc
@@ -377,6 +377,8 @@ status_init(void)
     STATUS_INIT(FT_PRO_RIGHTMOST_LEAF_SHORTCUT_FAIL_POS,   nullptr, PARCOUNT, "promotion: tried the rightmost leaf shorcut but failed (out-of-bounds)", TOKU_ENGINE_STATUS);
     STATUS_INIT(FT_PRO_RIGHTMOST_LEAF_SHORTCUT_FAIL_REACTIVE,nullptr, PARCOUNT, "promotion: tried the rightmost leaf shorcut but failed (child reactive)", TOKU_ENGINE_STATUS);
 
+    STATUS_INIT(FT_CURSOR_SKIP_DELETED_LEAF_ENTRY,         CURSOR_SKIP_DELETED_LEAF_ENTRY, PARCOUNT, "cursor skipped deleted leaf entries", TOKU_ENGINE_STATUS|TOKU_GLOBAL_STATUS);
+
     ft_status.initialized = true;
 }
 static void status_destroy(void) {
@@ -3378,14 +3380,14 @@ ok: ;
     if (le_val_is_del(le, ftcursor->is_snapshot_read, ftcursor->ttxn)) {
         // Provisionally deleted stuff is gone.
         // So we need to scan in the direction to see if we can find something.
-        // Every 100 deleted leaf entries check if the leaf's key is within the search bounds.
-        for (uint n_deleted = 1; ; n_deleted++) {
+        // Every 64 deleted leaf entries check if the leaf's key is within the search bounds.
+        for (uint64_t n_deleted = 1; ; n_deleted++) {
             switch (search->direction) {
             case FT_SEARCH_LEFT:
                 idx++;
-                if (idx >= bn->data_buffer.num_klpairs() ||
-                    ((n_deleted % 64) == 0 && !search_continue(search, key, keylen))) {
-                    if (ftcursor->interrupt_cb && ftcursor->interrupt_cb(ftcursor->interrupt_cb_extra)) {
+                if (idx >= bn->data_buffer.num_klpairs() || ((n_deleted % 64) == 0 && !search_continue(search, key, keylen))) {
+                    STATUS_INC(FT_CURSOR_SKIP_DELETED_LEAF_ENTRY, n_deleted);
+                    if (ftcursor->interrupt_cb && ftcursor->interrupt_cb(ftcursor->interrupt_cb_extra, n_deleted)) {
                         return TOKUDB_INTERRUPTED;
                     }
                     return DB_NOTFOUND;
@@ -3393,7 +3395,8 @@ ok: ;
                 break;
             case FT_SEARCH_RIGHT:
                 if (idx == 0) {
-                    if (ftcursor->interrupt_cb && ftcursor->interrupt_cb(ftcursor->interrupt_cb_extra)) {
+                    STATUS_INC(FT_CURSOR_SKIP_DELETED_LEAF_ENTRY, n_deleted);
+                    if (ftcursor->interrupt_cb && ftcursor->interrupt_cb(ftcursor->interrupt_cb_extra, n_deleted)) {
                         return TOKUDB_INTERRUPTED;
                     }
                     return DB_NOTFOUND;
@@ -3406,6 +3409,9 @@ ok: ;
             r = bn->data_buffer.fetch_klpair(idx, &le, &keylen, &key);
             assert_zero(r); // we just validated the index
             if (!le_val_is_del(le, ftcursor->is_snapshot_read, ftcursor->ttxn)) {
+                STATUS_INC(FT_CURSOR_SKIP_DELETED_LEAF_ENTRY, n_deleted);
+                if (ftcursor->interrupt_cb)
+                    ftcursor->interrupt_cb(ftcursor->interrupt_cb_extra, n_deleted);
                 goto got_a_good_value;
             }
         }
diff --git a/storage/tokudb/ft-index/ft/ft.cc b/storage/tokudb/ft-index/ft/ft.cc
index bf99646..77948df 100644
--- a/storage/tokudb/ft-index/ft/ft.cc
+++ b/storage/tokudb/ft-index/ft/ft.cc
@@ -1064,6 +1064,11 @@ garbage_helper(BLOCKNUM blocknum, int64_t UU(size), int64_t UU(address), void *e
             goto exit;
         }
     }
+    {
+        float a = info->used_space, b=info->total_space;
+        float percentage = (1 - (a / b)) * 100;
+        printf("LeafNode# %d has %d BasementNodes and %2.1f%% of the allocated space is garbage\n", (int)blocknum.b, node->n_children, percentage);
+    }
 exit:
     toku_ftnode_free(&node);
     toku_free(ndd);
diff --git a/storage/tokudb/ft-index/ft/logger/recover.cc b/storage/tokudb/ft-index/ft/logger/recover.cc
index 8dd7bf8..cae7397 100644
--- a/storage/tokudb/ft-index/ft/logger/recover.cc
+++ b/storage/tokudb/ft-index/ft/logger/recover.cc
@@ -714,7 +714,7 @@ static int toku_recover_xstillopenprepared (struct logtype_xstillopenprepared *l
     }
     switch (renv->ss.ss) {
         case FORWARD_BETWEEN_CHECKPOINT_BEGIN_END: {
-            toku_txn_prepare_txn(txn, l->xa_xid);
+            toku_txn_prepare_txn(txn, l->xa_xid, 0);
             break;
         }
         case FORWARD_NEWER_CHECKPOINT_END: {
@@ -778,7 +778,7 @@ static int toku_recover_xprepare (struct logtype_xprepare *l, RECOVER_ENV renv)
     assert(txn!=NULL);
 
     // Save the transaction
-    toku_txn_prepare_txn(txn, l->xa_xid);
+    toku_txn_prepare_txn(txn, l->xa_xid, 0);
 
     return 0;
 }
diff --git a/storage/tokudb/ft-index/ft/txn/txn.cc b/storage/tokudb/ft-index/ft/txn/txn.cc
index 216cb0d..18d5a6b 100644
--- a/storage/tokudb/ft-index/ft/txn/txn.cc
+++ b/storage/tokudb/ft-index/ft/txn/txn.cc
@@ -558,7 +558,7 @@ static void copy_xid (TOKU_XA_XID *dest, TOKU_XA_XID *source) {
     memcpy(dest->data, source->data, source->gtrid_length+source->bqual_length);
 }
 
-void toku_txn_prepare_txn (TOKUTXN txn, TOKU_XA_XID *xa_xid) {
+void toku_txn_prepare_txn (TOKUTXN txn, TOKU_XA_XID *xa_xid, int nosync) {
     if (txn->parent || toku_txn_is_read_only(txn)) {
         // We do not prepare children.
         //
@@ -573,7 +573,7 @@ void toku_txn_prepare_txn (TOKUTXN txn, TOKU_XA_XID *xa_xid) {
     txn->state = TOKUTXN_PREPARING; 
     toku_txn_unlock_state(txn);
     // Do we need to do an fsync?
-    txn->do_fsync = (txn->force_fsync_on_commit || txn->roll_info.num_rollentries>0);
+    txn->do_fsync = txn->force_fsync_on_commit || (!nosync && txn->roll_info.num_rollentries>0);
     copy_xid(&txn->xa_xid, xa_xid);
     // This list will go away with #4683, so we wn't need the ydb lock for this anymore.
     toku_log_xprepare(txn->logger, &txn->do_fsync_lsn, 0, txn, txn->txnid, xa_xid);
diff --git a/storage/tokudb/ft-index/ft/txn/txn.h b/storage/tokudb/ft-index/ft/txn/txn.h
index c458df3..6381b5a 100644
--- a/storage/tokudb/ft-index/ft/txn/txn.h
+++ b/storage/tokudb/ft-index/ft/txn/txn.h
@@ -302,7 +302,7 @@ int toku_txn_abort_with_lsn(struct tokutxn *txn, LSN oplsn,
 
 int toku_txn_discard_txn(struct tokutxn *txn);
 
-void toku_txn_prepare_txn (struct tokutxn *txn, TOKU_XA_XID *xid);
+void toku_txn_prepare_txn (struct tokutxn *txn, TOKU_XA_XID *xid, int nosync);
 // Effect: Do the internal work of preparing a transaction (does not log the prepare record).
 
 void toku_txn_get_prepared_xa_xid(struct tokutxn *txn, TOKU_XA_XID *xa_xid);
diff --git a/storage/tokudb/ft-index/locktree/lock_request.cc b/storage/tokudb/ft-index/locktree/lock_request.cc
index 97fa780..18f6051 100644
--- a/storage/tokudb/ft-index/locktree/lock_request.cc
+++ b/storage/tokudb/ft-index/locktree/lock_request.cc
@@ -113,12 +113,19 @@ void lock_request::create(void) {
 
     m_complete_r = 0;
     m_state = state::UNINITIALIZED;
+    m_info = nullptr;
 
     toku_cond_init(&m_wait_cond, nullptr);
+
+    m_start_test_callback = nullptr;
+    m_retry_test_callback = nullptr;
 }
 
 // destroy a lock request.
 void lock_request::destroy(void) {
+    invariant(m_state != state::PENDING);
+    invariant(m_state != state::DESTROYED);
+    m_state = state::DESTROYED;
     toku_destroy_dbt(&m_left_key_copy);
     toku_destroy_dbt(&m_right_key_copy);
     toku_cond_destroy(&m_wait_cond);
@@ -135,7 +142,7 @@ void lock_request::set(locktree *lt, TXNID txnid, const DBT *left_key, const DBT
     toku_destroy_dbt(&m_right_key_copy);
     m_type = lock_type;
     m_state = state::INITIALIZED;
-    m_info = lt->get_lock_request_info();
+    m_info = lt ? lt->get_lock_request_info() : nullptr;
     m_big_txn = big_txn;
 }
 
@@ -223,15 +230,18 @@ int lock_request::start(void) {
         insert_into_lock_requests();
         if (deadlock_exists(conflicts)) {
             remove_from_lock_requests();
-            complete(DB_LOCK_DEADLOCK);
+            r = DB_LOCK_DEADLOCK;
         }
         toku_mutex_unlock(&m_info->mutex);
-    } else {
+        if (m_start_test_callback) m_start_test_callback(); // test callback
+    }
+
+    if (r != DB_LOCK_NOTGRANTED) {
         complete(r);
     }
 
     conflicts.destroy();
-    return m_state == state::COMPLETE ? m_complete_r : r;
+    return r;
 }
 
 // sleep on the lock request until it becomes resolved or the wait time has elapsed.
@@ -292,8 +302,8 @@ int lock_request::wait(uint64_t wait_time_ms, uint64_t killed_time_ms, int (*kil
 
 // complete this lock request with the given return value
 void lock_request::complete(int complete_r) {
-    m_state = state::COMPLETE;
     m_complete_r = complete_r;
+    m_state = state::COMPLETE;
 }
 
 const DBT *lock_request::get_left_key(void) const {
@@ -331,6 +341,7 @@ int lock_request::retry(void) {
     if (r == 0) {
         remove_from_lock_requests();
         complete(r);
+        if (m_retry_test_callback) m_retry_test_callback(); // test callback
         toku_cond_broadcast(&m_wait_cond);
     }
 
@@ -416,7 +427,8 @@ void lock_request::remove_from_lock_requests(void) {
     uint32_t idx;
     lock_request *request;
     int r = m_info->pending_lock_requests.find_zero<TXNID, find_by_txnid>(m_txnid, &request, &idx);
-    invariant_zero(r && request == this);
+    invariant_zero(r);
+    invariant(request == this);
     r = m_info->pending_lock_requests.delete_at(idx);
     invariant_zero(r);
 }
@@ -432,4 +444,12 @@ int lock_request::find_by_txnid(lock_request * const &request, const TXNID &txni
     }
 }
 
+void lock_request::set_start_test_callback(void (*f)(void)) {
+    m_start_test_callback = f;
+}
+
+void lock_request::set_retry_test_callback(void (*f)(void)) {
+    m_retry_test_callback = f;
+}
+
 } /* namespace toku */
diff --git a/storage/tokudb/ft-index/locktree/lock_request.h b/storage/tokudb/ft-index/locktree/lock_request.h
index d1a4c28..c504961 100644
--- a/storage/tokudb/ft-index/locktree/lock_request.h
+++ b/storage/tokudb/ft-index/locktree/lock_request.h
@@ -164,6 +164,8 @@ public:
     //         The rest remain pending.
     static void retry_all_lock_requests(locktree *lt);
 
+    void set_start_test_callback(void (*f)(void));
+    void set_retry_test_callback(void (*f)(void));
 private:
 
     enum state {
@@ -171,6 +173,7 @@ private:
         INITIALIZED,
         PENDING,
         COMPLETE,
+        DESTROYED,
     };
 
     // The keys for a lock request are stored "unowned" in m_left_key
@@ -236,6 +239,9 @@ private:
 
     static int find_by_txnid(lock_request * const &request, const TXNID &txnid);
 
+    void (*m_start_test_callback)(void);
+    void (*m_retry_test_callback)(void);
+
     friend class lock_request_unit_test;
 };
 ENSURE_POD(lock_request);
diff --git a/storage/tokudb/ft-index/locktree/locktree.cc b/storage/tokudb/ft-index/locktree/locktree.cc
index 27e528d..fc2470e 100644
--- a/storage/tokudb/ft-index/locktree/locktree.cc
+++ b/storage/tokudb/ft-index/locktree/locktree.cc
@@ -152,6 +152,7 @@ void locktree::create(locktree_manager *mgr, DICTIONARY_ID dict_id, const compar
 
 void locktree::destroy(void) {
     invariant(m_reference_count == 0);
+    invariant(m_lock_request_info.pending_lock_requests.size() == 0);
     m_cmp.destroy();
     m_rangetree->destroy();
     toku_free(m_rangetree);
diff --git a/storage/tokudb/ft-index/src/tests/xa-txn-discard-commit.cc b/storage/tokudb/ft-index/locktree/tests/lock_request_start_retry_race.cc
similarity index 61%
copy from storage/tokudb/ft-index/src/tests/xa-txn-discard-commit.cc
copy to storage/tokudb/ft-index/locktree/tests/lock_request_start_retry_race.cc
index c4d1640..86ef2dd 100644
--- a/storage/tokudb/ft-index/src/tests/xa-txn-discard-commit.cc
+++ b/storage/tokudb/ft-index/locktree/tests/lock_request_start_retry_race.cc
@@ -86,111 +86,108 @@ PATENT RIGHTS GRANT:
   under this License.
 */
 
-#ident "Copyright (c) 2007-2013 Tokutek Inc.  All rights reserved."
+#ident "Copyright (c) 2014 Tokutek Inc.  All rights reserved."
 #ident "The technology is licensed by the Massachusetts Institute of Technology, Rutgers State University of New Jersey, and the Research Foundation of State University of New York at Stony Brook under United States of America Serial No. 11/760379 and to the patents and/or patent applications resulting from it."
+
+#include <iostream>
 #include "test.h"
+#include "locktree.h"
+#include "lock_request.h"
 
-// Verify that a commit of a prepared txn in recovery retains a db created by it. 
-// A checkpoint is taken between the db creation and the txn prepare.
+// Test FT-633, the data race on the lock request between ::start and ::retry
+// This test is non-deterministic.  It uses sleeps at 2 critical places to
+// expose the data race on the lock requests state.
 
-static void create_foo(DB_ENV *env, DB_TXN *txn) {
-    int r;
-    DB *db;
-    r = db_create(&db, env, 0);
-    CKERR(r);
-    r = db->open(db, txn, "foo.db", 0, DB_BTREE, DB_CREATE,  S_IRWXU+S_IRWXG+S_IRWXO);
-    CKERR(r);
-    r = db->close(db, 0);
-    CKERR(r);
-}
+namespace toku {
 
-static void check_foo(DB_ENV *env) {
-    int r;
-    DB *db;
-    r = db_create(&db, env, 0);
-    CKERR(r);
-    r = db->open(db, nullptr, "foo.db", 0, DB_BTREE, 0, 0);
-    CKERR(r);
-    r = db->close(db, 0);
-    CKERR(r);
+struct locker_arg {
+    locktree *_lt;
+    TXNID _id;
+    const DBT *_key;
+
+    locker_arg(locktree *lt, TXNID id, const DBT *key) : _lt(lt), _id(id), _key(key) {
+    }
+};
+
+static void locker_callback(void) {
+    usleep(10000);
 }
 
-static void create_prepared_txn(void) {
-    int r;
+static void run_locker(locktree *lt, TXNID txnid, const DBT *key) {
+    int i;
+    for (i = 0; i < 1000; i++) {
 
-    DB_ENV *env = nullptr;
-    r = db_env_create(&env, 0);
-    CKERR(r);
-    r = env->open(env, TOKU_TEST_FILENAME, 
-                  DB_INIT_MPOOL|DB_CREATE|DB_THREAD |DB_INIT_LOCK|DB_INIT_LOG|DB_INIT_TXN|DB_PRIVATE, 
-                  S_IRWXU+S_IRWXG+S_IRWXO);
-    CKERR(r);
+        lock_request request;
+        request.create();
 
-    DB_TXN *txn = nullptr;
-    r = env->txn_begin(env, nullptr, &txn, 0);
-    CKERR(r);
+        request.set(lt, txnid, key, key, lock_request::type::WRITE, false);
 
-    create_foo(env, txn);
+        // set the test callbacks
+        request.set_start_test_callback(locker_callback);
+        request.set_retry_test_callback(locker_callback);
 
-    r = env->txn_checkpoint(env, 0, 0, 0);
-    CKERR(r);
+        // try to acquire the lock
+        int r = request.start();
+        if (r == DB_LOCK_NOTGRANTED) {
+            // wait for the lock to be granted
+            r = request.wait(10 * 1000);
+        }
 
-    TOKU_XA_XID xid = { 0x1234, 8, 9 };
-    for (int i = 0; i < 8+9; i++) {
-        xid.data[i] = i;
-    }
-    r = txn->xa_prepare(txn, &xid);
-    CKERR(r);
+        if (r == 0) {
+            // release the lock
+            range_buffer buffer;
+            buffer.create();
+            buffer.append(key, key);
+            lt->release_locks(txnid, &buffer);
+            buffer.destroy();
 
-    // discard the txn so that we can close the env and run xa recovery later
-    r = txn->discard(txn, 0);
-    CKERR(r);
+            // retry pending lock requests
+            lock_request::retry_all_lock_requests(lt);
+        }
 
-    r = env->close(env, TOKUFT_DIRTY_SHUTDOWN);
-    CKERR(r);
-}
+        request.destroy();
+        memset(&request, 0xab, sizeof request);
 
-static void run_xa_recovery(void) {
-    int r;
+        toku_pthread_yield();
+        if ((i % 10) == 0)
+            std::cout << toku_pthread_self() << " " << i << std::endl;
+    }
+}
 
-    DB_ENV *env;
-    r = db_env_create(&env, 0);
-    CKERR(r);
-    r = env->open(env, TOKU_TEST_FILENAME, 
-                  DB_INIT_MPOOL|DB_CREATE|DB_THREAD |DB_INIT_LOCK|DB_INIT_LOG|DB_INIT_TXN|DB_PRIVATE | DB_RECOVER,
-                  S_IRWXU+S_IRWXG+S_IRWXO);
-    CKERR(r);
-
-    // get prepared xid
-    long count;
-    TOKU_XA_XID xid;
-    r = env->txn_xa_recover(env, &xid, 1, &count, DB_FIRST);
-    CKERR(r);
-
-    // commit it
-    DB_TXN *txn = nullptr;
-    r = env->get_txn_from_xid(env, &xid, &txn);
-    CKERR(r);
-    r = txn->commit(txn, 0);
-    CKERR(r);
-
-    check_foo(env);
-
-    r = env->close(env, 0);
-    CKERR(r);
+static void *locker(void *v_arg) {
+    locker_arg *arg = static_cast<locker_arg *>(v_arg);
+    run_locker(arg->_lt, arg->_id, arg->_key);
+    return arg;
 }
 
-int test_main (int argc, char *const argv[]) {
-    default_parse_args(argc, argv);
+} /* namespace toku */
+
+int main(void) {
+    int r;
 
-    // init the env directory
-    toku_os_recursive_delete(TOKU_TEST_FILENAME);
-    int r = toku_os_mkdir(TOKU_TEST_FILENAME, S_IRWXU+S_IRWXG+S_IRWXO);   
-    CKERR(r);
+    toku::locktree lt;
+    DICTIONARY_ID dict_id = { 1 };
+    lt.create(nullptr, dict_id, toku::dbt_comparator);
 
-    // run the test
-    create_prepared_txn();
-    run_xa_recovery();
+    const DBT *one = toku::get_dbt(1);
 
+    const int n_workers = 2;
+    toku_pthread_t ids[n_workers];
+    for (int i = 0; i < n_workers; i++) {
+        toku::locker_arg *arg = new toku::locker_arg(&lt, i, one);
+        r = toku_pthread_create(&ids[i], nullptr, toku::locker, arg);
+        assert_zero(r);
+    }
+    for (int i = 0; i < n_workers; i++) {
+        void *ret;
+        r = toku_pthread_join(ids[i], &ret);
+        assert_zero(r);
+        toku::locker_arg *arg = static_cast<toku::locker_arg *>(ret);
+        delete arg;
+    }
+
+    lt.release_reference();
+    lt.destroy();
     return 0;
 }
+
diff --git a/storage/tokudb/ft-index/src/tests/recover-5146.cc b/storage/tokudb/ft-index/src/tests/recover-5146.cc
index c05f9ef..5e79383 100644
--- a/storage/tokudb/ft-index/src/tests/recover-5146.cc
+++ b/storage/tokudb/ft-index/src/tests/recover-5146.cc
@@ -147,7 +147,7 @@ run_test(void) {
         uint8_t gid[DB_GID_SIZE];
         memset(gid, 0, DB_GID_SIZE);
         gid[0]=42;
-        r = txn->prepare(txn, gid);                                                            CKERR(r);
+        r = txn->prepare(txn, gid, 0);                                                            CKERR(r);
     }
 
     r = env->txn_checkpoint(env, 0, 0, 0);                                              CKERR(r);
diff --git a/storage/tokudb/ft-index/src/tests/test-prepare.cc b/storage/tokudb/ft-index/src/tests/test-prepare.cc
index 9033c63..73d2105 100644
--- a/storage/tokudb/ft-index/src/tests/test-prepare.cc
+++ b/storage/tokudb/ft-index/src/tests/test-prepare.cc
@@ -122,7 +122,7 @@ static void setup_env_and_prepare (DB_ENV **envp, const char *envdir, bool commi
     uint8_t gid[DB_GID_SIZE];
     memset(gid, 0, DB_GID_SIZE);
     gid[0]=42;
-    CKERR(txn->prepare(txn, gid));
+    CKERR(txn->prepare(txn, gid, 0));
     if (commit)
 	CKERR(txn->commit(txn, 0));
 }
diff --git a/storage/tokudb/ft-index/src/tests/test-prepare2.cc b/storage/tokudb/ft-index/src/tests/test-prepare2.cc
index 8952f14..12d78e4 100644
--- a/storage/tokudb/ft-index/src/tests/test-prepare2.cc
+++ b/storage/tokudb/ft-index/src/tests/test-prepare2.cc
@@ -124,7 +124,7 @@ static void setup_env_and_prepare (DB_ENV **envp, const char *envdir, bool commi
     uint8_t gid[DB_GID_SIZE];
     memset(gid, 0, DB_GID_SIZE);
     gid[0]=42;
-    CKERR(txn->prepare(txn, gid));
+    CKERR(txn->prepare(txn, gid, 0));
     if (commit)
 	CKERR(txn->commit(txn, 0));
 }
diff --git a/storage/tokudb/ft-index/src/tests/test-prepare3.cc b/storage/tokudb/ft-index/src/tests/test-prepare3.cc
index 3643d73..30c5c72 100644
--- a/storage/tokudb/ft-index/src/tests/test-prepare3.cc
+++ b/storage/tokudb/ft-index/src/tests/test-prepare3.cc
@@ -147,7 +147,7 @@ static void setup_env_and_prepare (DB_ENV **envp, const char *envdir) {
 	uint8_t gid[DB_GID_SIZE];
 	memset(gid, 0, DB_GID_SIZE);
 	gid[0]='a'+tnum;
-	CKERR(txn->prepare(txn, gid));
+	CKERR(txn->prepare(txn, gid, 0));
 	// Drop txn on the ground, since we will commit or abort it after recovery
 	if (tnum==0) {
 	    //printf("commit %d\n", tnum);
diff --git a/storage/tokudb/ft-index/src/tests/test-xa-prepare.cc b/storage/tokudb/ft-index/src/tests/test-xa-prepare.cc
index e08e736..d3b1352 100644
--- a/storage/tokudb/ft-index/src/tests/test-xa-prepare.cc
+++ b/storage/tokudb/ft-index/src/tests/test-xa-prepare.cc
@@ -125,7 +125,7 @@ static void setup_env_and_prepare (DB_ENV **envp, const char *envdir, bool commi
 		     .gtrid_length = 8,
 		     .bqual_length = 9};
     for (int i=0; i<8+9; i++) x.data[i] = 42+i;
-    CKERR(txn->xa_prepare(txn, &x));
+    CKERR(txn->xa_prepare(txn, &x, 0));
     if (commit)
 	CKERR(txn->commit(txn, 0));
 }
diff --git a/storage/tokudb/ft-index/src/tests/test5092.cc b/storage/tokudb/ft-index/src/tests/test5092.cc
index 1665247..8ef31ae 100644
--- a/storage/tokudb/ft-index/src/tests/test5092.cc
+++ b/storage/tokudb/ft-index/src/tests/test5092.cc
@@ -118,7 +118,7 @@ static void setup_env_and_prepare (DB_ENV **envp, const char *envdir, bool commi
     uint8_t gid[DB_GID_SIZE];
     memset(gid, 0, DB_GID_SIZE);
     gid[0]=42;
-    CKERR(txn->prepare(txn, gid));
+    CKERR(txn->prepare(txn, gid, 0));
     { int chk_r = db->close(db, 0); CKERR(chk_r); }
     if (commit)
         CKERR(txn->commit(txn, 0));
diff --git a/storage/tokudb/ft-index/src/tests/test_5015.cc b/storage/tokudb/ft-index/src/tests/test_5015.cc
index 071b7f3..50900d3 100644
--- a/storage/tokudb/ft-index/src/tests/test_5015.cc
+++ b/storage/tokudb/ft-index/src/tests/test_5015.cc
@@ -133,7 +133,7 @@ test_main(int argc, char *const argv[]) {
     uint8_t gid[DB_GID_SIZE];
     memset(gid, 0, DB_GID_SIZE);
     gid[0]='a';
-    r = child_txn->prepare(child_txn, gid);
+    r = child_txn->prepare(child_txn, gid, 0);
     CKERR(r);
 
     r = env->txn_checkpoint(env, 0, 0, 0);
diff --git a/storage/tokudb/ft-index/src/tests/test_cursor_interrupt.cc b/storage/tokudb/ft-index/src/tests/test_cursor_interrupt.cc
index e992f86..5583b02 100644
--- a/storage/tokudb/ft-index/src/tests/test_cursor_interrupt.cc
+++ b/storage/tokudb/ft-index/src/tests/test_cursor_interrupt.cc
@@ -95,12 +95,12 @@ PATENT RIGHTS GRANT:
 
 
 int num_interrupts_called;
-static bool interrupt(void* extra UU()) {
+static bool interrupt(void* extra UU(), uint64_t rows UU()) {
     num_interrupts_called++;
     return false;
 }
 
-static bool interrupt_true(void* extra UU()) {
+static bool interrupt_true(void* extra UU(), uint64_t rows UU()) {
     num_interrupts_called++;
     return true;
 }
diff --git a/storage/tokudb/ft-index/src/tests/test_stress_hot_indexing.cc b/storage/tokudb/ft-index/src/tests/test_stress_hot_indexing.cc
index fe237f0..d70f041 100644
--- a/storage/tokudb/ft-index/src/tests/test_stress_hot_indexing.cc
+++ b/storage/tokudb/ft-index/src/tests/test_stress_hot_indexing.cc
@@ -211,7 +211,7 @@ cleanup:
     gid_count++;
     uint32_t *hi_gid_count_p = cast_to_typeof(hi_gid_count_p) hi_gid;  // make gcc --happy about -Wstrict-aliasing
     *hi_gid_count_p = gid_count;
-    int rr = hi_txn->prepare(hi_txn, hi_gid);
+    int rr = hi_txn->prepare(hi_txn, hi_gid, 0);
     CKERR(rr);
     if (r || (random() % 2)) {
         rr = hi_txn->abort(hi_txn);
diff --git a/storage/tokudb/ft-index/src/tests/test_txn_close_before_prepare_commit.cc b/storage/tokudb/ft-index/src/tests/test_txn_close_before_prepare_commit.cc
index e3b715c..31267b1 100644
--- a/storage/tokudb/ft-index/src/tests/test_txn_close_before_prepare_commit.cc
+++ b/storage/tokudb/ft-index/src/tests/test_txn_close_before_prepare_commit.cc
@@ -130,7 +130,7 @@ test_txn_close_before_prepare_commit (void) {
 
     uint8_t gid[DB_GID_SIZE];
     memset(gid, 1, DB_GID_SIZE);
-    r = txn->prepare(txn, gid);   assert(r == 0);
+    r = txn->prepare(txn, gid, 0);   assert(r == 0);
     r = txn->commit(txn, 0); assert(r == 0);
 
     r = env->close(env, 0); assert(r == 0);
diff --git a/storage/tokudb/ft-index/src/tests/threaded_stress_test_helpers.h b/storage/tokudb/ft-index/src/tests/threaded_stress_test_helpers.h
index 2c2525a..f9da169 100644
--- a/storage/tokudb/ft-index/src/tests/threaded_stress_test_helpers.h
+++ b/storage/tokudb/ft-index/src/tests/threaded_stress_test_helpers.h
@@ -593,7 +593,7 @@ static void *worker(void *arg_v) {
             uint64_t gid_val = txn->id64(txn);
             uint64_t *gid_count_p = cast_to_typeof(gid_count_p) gid;  // make gcc --happy about -Wstrict-aliasing
             *gid_count_p = gid_val;
-            int rr = txn->prepare(txn, gid);
+            int rr = txn->prepare(txn, gid, 0);
             assert_zero(rr);
         }
         if (r == 0) {
diff --git a/storage/tokudb/ft-index/src/tests/xa-dirty-commit.cc b/storage/tokudb/ft-index/src/tests/xa-dirty-commit.cc
index 126a7c1..008a412 100644
--- a/storage/tokudb/ft-index/src/tests/xa-dirty-commit.cc
+++ b/storage/tokudb/ft-index/src/tests/xa-dirty-commit.cc
@@ -136,7 +136,7 @@ static void create_prepared_txn(void) {
     for (int i = 0; i < 8+9; i++) {
         xid.data[i] = i;
     }
-    r = txn->xa_prepare(txn, &xid);
+    r = txn->xa_prepare(txn, &xid, 0);
     CKERR(r);
 
     // discard the txn so that we can close the env and run xa recovery later
diff --git a/storage/tokudb/ft-index/src/tests/xa-dirty-rollback.cc b/storage/tokudb/ft-index/src/tests/xa-dirty-rollback.cc
index 2d13e55..3f0debe 100644
--- a/storage/tokudb/ft-index/src/tests/xa-dirty-rollback.cc
+++ b/storage/tokudb/ft-index/src/tests/xa-dirty-rollback.cc
@@ -136,7 +136,7 @@ static void create_prepared_txn(void) {
     for (int i = 0; i < 8+9; i++) {
         xid.data[i] = i;
     }
-    r = txn->xa_prepare(txn, &xid);
+    r = txn->xa_prepare(txn, &xid, 0);
     CKERR(r);
 
     // discard the txn so that we can close the env and run xa recovery later
diff --git a/storage/tokudb/ft-index/src/tests/xa-txn-discard-abort.cc b/storage/tokudb/ft-index/src/tests/xa-txn-discard-abort.cc
index 3365a1b..95852c6 100644
--- a/storage/tokudb/ft-index/src/tests/xa-txn-discard-abort.cc
+++ b/storage/tokudb/ft-index/src/tests/xa-txn-discard-abort.cc
@@ -138,7 +138,7 @@ static void create_prepared_txn(void) {
     for (int i = 0; i < 8+9; i++) {
         xid.data[i] = i;
     }
-    r = txn->xa_prepare(txn, &xid);
+    r = txn->xa_prepare(txn, &xid, 0);
     CKERR(r);
 
     // discard the txn so that we can close the env and run xa recovery later
diff --git a/storage/tokudb/ft-index/src/tests/xa-txn-discard-commit.cc b/storage/tokudb/ft-index/src/tests/xa-txn-discard-commit.cc
index c4d1640..a21f881 100644
--- a/storage/tokudb/ft-index/src/tests/xa-txn-discard-commit.cc
+++ b/storage/tokudb/ft-index/src/tests/xa-txn-discard-commit.cc
@@ -139,7 +139,7 @@ static void create_prepared_txn(void) {
     for (int i = 0; i < 8+9; i++) {
         xid.data[i] = i;
     }
-    r = txn->xa_prepare(txn, &xid);
+    r = txn->xa_prepare(txn, &xid, 0);
     CKERR(r);
 
     // discard the txn so that we can close the env and run xa recovery later
diff --git a/storage/tokudb/ft-index/src/ydb_cursor.cc b/storage/tokudb/ft-index/src/ydb_cursor.cc
index 57f3b58..eed5194 100644
--- a/storage/tokudb/ft-index/src/ydb_cursor.cc
+++ b/storage/tokudb/ft-index/src/ydb_cursor.cc
@@ -769,7 +769,7 @@ c_remove_restriction(DBC *dbc) {
 }
 
 static void
-c_set_check_interrupt_callback(DBC* dbc, bool (*interrupt_callback)(void*), void *extra) {
+c_set_check_interrupt_callback(DBC* dbc, bool (*interrupt_callback)(void*, uint64_t), void *extra) {
     toku_ft_cursor_set_check_interrupt_cb(dbc_ftcursor(dbc), interrupt_callback, extra);
 }
 
diff --git a/storage/tokudb/ft-index/src/ydb_row_lock.cc b/storage/tokudb/ft-index/src/ydb_row_lock.cc
index 5ca853d..4dd5272 100644
--- a/storage/tokudb/ft-index/src/ydb_row_lock.cc
+++ b/storage/tokudb/ft-index/src/ydb_row_lock.cc
@@ -307,6 +307,7 @@ void toku_db_grab_write_lock (DB *db, DBT *key, TOKUTXN tokutxn) {
     int r = request.start();
     invariant_zero(r);
     db_txn_note_row_lock(db, txn_anc, key, key);
+    request.destroy();
 }
 
 void toku_db_release_lt_key_ranges(DB_TXN *txn, txn_lt_key_ranges *ranges) {
diff --git a/storage/tokudb/ft-index/src/ydb_txn.cc b/storage/tokudb/ft-index/src/ydb_txn.cc
index dd428c4..8290384 100644
--- a/storage/tokudb/ft-index/src/ydb_txn.cc
+++ b/storage/tokudb/ft-index/src/ydb_txn.cc
@@ -240,7 +240,7 @@ static int toku_txn_abort(DB_TXN * txn,
     return r;
 }
 
-static int toku_txn_xa_prepare (DB_TXN *txn, TOKU_XA_XID *xid) {
+static int toku_txn_xa_prepare (DB_TXN *txn, TOKU_XA_XID *xid, uint32_t flags) {
     int r = 0;
     if (!txn) {
         r = EINVAL;
@@ -273,9 +273,11 @@ static int toku_txn_xa_prepare (DB_TXN *txn, TOKU_XA_XID *xid) {
         HANDLE_PANICKED_ENV(txn->mgrp);
     }
     assert(!db_txn_struct_i(txn)->child);
+    int nosync;
+    nosync = (flags & DB_TXN_NOSYNC)!=0 || (db_txn_struct_i(txn)->flags&DB_TXN_NOSYNC);
     TOKUTXN ttxn;
     ttxn = db_txn_struct_i(txn)->tokutxn;
-    toku_txn_prepare_txn(ttxn, xid);
+    toku_txn_prepare_txn(ttxn, xid, nosync);
     TOKULOGGER logger;
     logger = txn->mgrp->i->logger;
     LSN do_fsync_lsn;
@@ -292,14 +294,14 @@ exit:
 
 // requires: must hold the multi operation lock. it is
 //           released in toku_txn_xa_prepare before the fsync.
-static int toku_txn_prepare (DB_TXN *txn, uint8_t gid[DB_GID_SIZE]) {
+static int toku_txn_prepare (DB_TXN *txn, uint8_t gid[DB_GID_SIZE], uint32_t flags) {
     TOKU_XA_XID xid;
     TOKU_ANNOTATE_NEW_MEMORY(&xid, sizeof(xid));
     xid.formatID=0x756b6f54; // "Toku"
     xid.gtrid_length=DB_GID_SIZE/2;  // The maximum allowed gtrid length is 64.  See the XA spec in source:/import/opengroup.org/C193.pdf page 20.
     xid.bqual_length=DB_GID_SIZE/2; // The maximum allowed bqual length is 64.
     memcpy(xid.data, gid, DB_GID_SIZE);
-    return toku_txn_xa_prepare(txn, &xid);
+    return toku_txn_xa_prepare(txn, &xid, flags);
 }
 
 static int toku_txn_txn_stat (DB_TXN *txn, struct txn_stat **txn_stat) {
@@ -422,6 +424,15 @@ static int toku_txn_discard(DB_TXN *txn, uint32_t flags) {
     return 0;
 }
 
+static bool toku_txn_is_prepared(DB_TXN *txn) {
+    TOKUTXN ttxn = db_txn_struct_i(txn)->tokutxn;
+    return toku_txn_get_state(ttxn) == TOKUTXN_PREPARING;
+}
+
+static DB_TXN *toku_txn_get_child(DB_TXN *txn) {
+    return db_txn_struct_i(txn)->child;
+}
+
 static inline void txn_func_init(DB_TXN *txn) {
 #define STXN(name) txn->name = locked_txn_ ## name
     STXN(abort);
@@ -438,6 +449,8 @@ static inline void txn_func_init(DB_TXN *txn) {
     SUTXN(discard);
 #undef SUTXN
     txn->id64 = toku_txn_id64;
+    txn->is_prepared = toku_txn_is_prepared;
+    txn->get_child = toku_txn_get_child;
 }
 
 //
diff --git a/storage/tokudb/ft-index/tools/CMakeLists.txt b/storage/tokudb/ft-index/tools/CMakeLists.txt
index 4ed0cb4..71c44df 100644
--- a/storage/tokudb/ft-index/tools/CMakeLists.txt
+++ b/storage/tokudb/ft-index/tools/CMakeLists.txt
@@ -14,7 +14,7 @@ target_link_libraries(ftverify m)
 
 install(
   TARGETS tokuftdump
-  DESTINATION bin
+  DESTINATION ${INSTALL_BINDIR}
   COMPONENT Server
   )
 
diff --git a/storage/tokudb/ft-index/tools/tokuftdump.cc b/storage/tokudb/ft-index/tools/tokuftdump.cc
index 3f73136..d680a3d 100644
--- a/storage/tokudb/ft-index/tools/tokuftdump.cc
+++ b/storage/tokudb/ft-index/tools/tokuftdump.cc
@@ -99,7 +99,10 @@ PATENT RIGHTS GRANT:
 #include <stdlib.h>
 #include <inttypes.h>
 #include <limits.h>
-
+#include <string>
+#include <iostream>
+#include <fstream>
+#include <string.h>
 #include "ft/serialize/block_table.h"
 #include "ft/cachetable/cachetable.h"
 #include "ft/ft.h"
@@ -108,8 +111,11 @@ PATENT RIGHTS GRANT:
 #include "ft/serialize/ft_node-serialize.h"
 #include "ft/node.h"
 
+using namespace std;
+
 static int do_dump_data = 1;
 static int do_interactive = 0;
+static int do_json = 0;
 static int do_header = 0;
 static int do_fragmentation = 0;
 static int do_garbage = 0;
@@ -118,10 +124,24 @@ static int do_rootnode = 0;
 static int do_node = 0;
 static BLOCKNUM do_node_num;
 static int do_tsv = 0;
-
 static const char *arg0;
 static const char *fname;
 
+//it holdes the messges count for each FT's node
+typedef struct nodeMessage{
+    int id;
+    int clean;//0=clean >=1 dirty
+    int *count;//holds the messages
+    nodeMessage *nextNode;
+}NMC;
+enum { maxline = 128};
+
+static int printNodeMessagesToSTDout(NMC* ptr);
+
+static int printLevelSTDout(int  *);
+
+static void treeToSTDout(NMC *msgs[], int height);
+
 static void format_time(const uint64_t time_int, char *buf) {
     time_t timer = (time_t) time_int;
     ctime_r(&timer, buf);
@@ -225,12 +245,202 @@ static void dump_header(FT ft) {
     printf(" estimated numbytes=%" PRId64 "\n", ft->in_memory_stats.numbytes);
 }
 
+static int64_t getRootNode(FT ft) {
+    return ft->h->root_blocknum.b;
+}
+
 static int print_le(const void* key, const uint32_t keylen, const LEAFENTRY &le, const uint32_t idx UU(), void *const ai UU()) {
     print_klpair(stdout, key, keylen, le);
     printf("\n");
     return 0;
 }
 
+static int getHeight(int fd, BLOCKNUM blocknum, FT ft){
+    FTNODE n;
+    FTNODE_DISK_DATA ndd = nullptr;
+    ftnode_fetch_extra bfe;
+    bfe.create_for_full_read(ft);
+    int r = toku_deserialize_ftnode_from (fd, blocknum, 0 /*pass zero for hash, it doesn't matter*/, &n, &ndd, &bfe);
+    assert_zero(r);
+    assert(n!=0);
+    return n->height;
+}
+
+static FTNODE  getNode(int fd, BLOCKNUM blocknum, FT ft) {
+    FTNODE n;
+    FTNODE_DISK_DATA ndd = nullptr;
+    ftnode_fetch_extra bfe;
+    bfe.create_for_full_read(ft);
+    int r = toku_deserialize_ftnode_from (fd, blocknum, 0 /*pass zero for hash, it doesn't matter*/, &n, &ndd, &bfe);
+    assert_zero(r);;
+    return n;
+}
+
+static int countNodes(NMC *level){
+    int count=0;
+    NMC *ptr=level;
+    while(ptr!=NULL){
+        count++;
+        ptr=ptr->nextNode;
+    }
+    return count;
+}
+
+static int * countMessages(NMC *level){
+    int *counts=new int[16];
+    for(int i=0;i<16;i++){
+        counts[i]=0;
+    }
+    NMC *ptr=level;
+    while(ptr!=NULL){
+        for(int i=0;i<16;i++){
+            counts[i]+=ptr->count[i];
+        }
+        ptr=ptr->nextNode;
+    }
+    return counts;
+}
+
+static NMC * getLast(NMC *level){
+    if (level==NULL) return NULL;
+    NMC *ptr=level;
+    while(ptr->nextNode!=NULL){
+        ptr=ptr->nextNode;
+    }
+    return ptr;
+}
+
+/*
+ * Prints the total messages at each to STDout
+ */
+static int  printLevelSTDout(int *count){
+    int isEmpty=0;
+    for(int j=0;j<16;j++){
+        if(count[j]>0){
+            cout <<count[j]<<" ";
+            isEmpty++;
+            switch (j)   {
+                case FT_INSERT: printf("INSERT(s) "); break;
+                case FT_INSERT_NO_OVERWRITE: printf("INSERT_NO_OVERWRITE(s) "); break;
+                case FT_DELETE_ANY: printf("DELETE_ANY(s) "); break;
+                case FT_ABORT_ANY: printf("ABORT_ANY(s) "); break;
+                case FT_COMMIT_ANY: printf("COMMIT_ANY(s) "); break;
+                case FT_COMMIT_BROADCAST_ALL: printf("COMMIT_BROADCAST_ALL(s) "); break;
+                case FT_COMMIT_BROADCAST_TXN: printf("COMMIT_BROADCAST_TXN(s) "); break;
+                case FT_ABORT_BROADCAST_TXN: printf("ABORT_BROADCAST_TXN(s) "); break;
+                case FT_OPTIMIZE: printf("OPTIMIZE(s) "); break;
+                case FT_OPTIMIZE_FOR_UPGRADE: printf("OPTIMIZE_FOR_UPGRADE(s) "); break;
+                case FT_UPDATE:   printf("UPDATE(s) "); break;
+                case FT_UPDATE_BROADCAST_ALL: printf("UPDATE_BROADCAST_ALL(s) "); break;
+            }
+
+        }
+    }
+    return isEmpty;
+}
+
+/*
+ * Prints the total # of messages in a node  to STD output
+ */
+static int  printNodeMessagesToSTDout(NMC *ptr){
+    cout <<"\nNode :"<<ptr->id<<" has :";
+        for(int j=0;j<16;j++){
+        if(ptr->count[j]>0){
+            cout <<ptr->count[j]<<" ";
+            switch (j)   {
+                case FT_INSERT: printf("INSERT(s) "); break;
+                case FT_INSERT_NO_OVERWRITE: printf("INSERT_NO_OVERWRITE(s) "); break;
+                case FT_DELETE_ANY: printf("DELETE_ANY(s) "); break;
+                case FT_ABORT_ANY: printf("ABORT_ANY(s) "); break;
+                case FT_COMMIT_ANY: printf("COMMIT_ANY(s) "); break;
+                case FT_COMMIT_BROADCAST_ALL: printf("COMMIT_BROADCAST_ALL(s) "); break;
+                case FT_COMMIT_BROADCAST_TXN: printf("COMMIT_BROADCAST_TXN(s) "); break;
+                case FT_ABORT_BROADCAST_TXN: printf("ABORT_BROADCAST_TXN(s) "); break;
+                case FT_OPTIMIZE: printf("OPTIMIZE(s) "); break;
+                case FT_OPTIMIZE_FOR_UPGRADE: printf("OPTIMIZE_FOR_UPGRADE(s) "); break;
+                case FT_UPDATE:   printf("UPDATE(s) "); break;
+                case FT_UPDATE_BROADCAST_ALL: printf("UPDATE_BROADCAST_ALL(s) "); break;
+            }
+        }
+    }
+    return 1;
+}
+
+static void levelToSTDout(NMC *list, int level){
+    NMC *ptr=list;
+    cout <<endl<<"Height : "<<level<<endl;
+    while(ptr!=NULL){
+        if(ptr->clean!=0){
+            printNodeMessagesToSTDout(ptr);
+        }
+        else{
+            cout << "\nNode : "<<ptr->id<<" has no messages";
+        }
+        ptr=ptr->nextNode;
+    }
+    cout <<endl;
+}
+
+/*
+ * prints the tree total # of nodes and total # of  messages at each height in :
+ * STDout in human readable format
+ */
+static void treeToSTDout(NMC *msgs[], int height){
+    for(int i=height; i>=0 ; i--){
+        cout <<"At height "<<i;
+        int *counts=countMessages(msgs[i]);
+        cout <<"\n     Node Count: "<< countNodes(msgs[i])<<endl;
+        cout <<"           Messages: ";
+        if(printLevelSTDout(counts)==0) cout <<"0\n";
+        else cout <<endl;
+    }
+}
+
+//traverse through the FT and report back the count of messages in every node
+static void  countMessagesInFT(int fd, BLOCKNUM blocknum, FT ft,NMC *msgs[]){
+    FTNODE n=getNode(fd,blocknum,ft);
+
+    NMC *last=NULL;
+    if(msgs[n->height]==NULL){
+        last = msgs[n->height]=new NMC;
+    }else {
+        last=getLast(msgs[n->height]);
+        last->nextNode=new NMC;
+        last=last->nextNode;
+    }
+    last->id=blocknum.b;
+    last->count=new int[16];
+    for(int i=0;i<16;i++){
+        last->count[i]=0;
+    }
+    last->clean=0;
+    last->nextNode=NULL;
+
+    if (n->height==0){
+        toku_ftnode_free(&n);
+        return;
+    }
+    for(int i=0;i<n->n_children;i++){
+        NONLEAF_CHILDINFO bnc = BNC(n, i);
+        if (n->height==1 && n->bp[i].ptr.tag==BCT_NULL){
+            cout <<n->bp[i].ptr.tag;
+        }
+        auto dump_fn=[&](const ft_msg &msg, bool UU(is_fresh)) {
+            enum ft_msg_type type = (enum ft_msg_type) msg.type();
+            last->count[type]++;
+            last->clean=1;
+            return 0;
+        };
+
+        bnc->msg_buffer.iterate(dump_fn);
+
+        blocknum=make_blocknum(BP_BLOCKNUM(n, i).b);
+        countMessagesInFT(fd,blocknum,ft, msgs);
+    }
+
+    toku_ftnode_free(&n);
+}
+
 static void dump_node(int fd, BLOCKNUM blocknum, FT ft) {
     FTNODE n;
     FTNODE_DISK_DATA ndd = nullptr;
@@ -254,9 +464,9 @@ static void dump_node(int fd, BLOCKNUM blocknum, FT ft) {
     printf(" layout_version_read_from_disk=%d\n", n->layout_version_read_from_disk);
     printf(" build_id=%d\n", n->build_id);
     printf(" max_msn_applied_to_node_on_disk=%" PRId64 " (0x%" PRIx64 ")\n", n->max_msn_applied_to_node_on_disk.msn, n->max_msn_applied_to_node_on_disk.msn);
-    printf(" io time %lf decompress time %lf deserialize time %lf\n", 
-           tokutime_to_seconds(bfe.io_time), 
-           tokutime_to_seconds(bfe.decompress_time), 
+    printf(" io time %lf decompress time %lf deserialize time %lf\n",
+           tokutime_to_seconds(bfe.io_time),
+           tokutime_to_seconds(bfe.decompress_time),
            tokutime_to_seconds(bfe.deserialize_time));
 
     printf(" n_children=%d\n", n->n_children);
@@ -277,7 +487,7 @@ static void dump_node(int fd, BLOCKNUM blocknum, FT ft) {
         if (n->height > 0) {
             printf("%" PRId64 "\n", BP_BLOCKNUM(n, i).b);
             NONLEAF_CHILDINFO bnc = BNC(n, i);
-            unsigned int n_bytes = toku_bnc_nbytesinbuf(bnc); 
+            unsigned int n_bytes = toku_bnc_nbytesinbuf(bnc);
             int n_entries = toku_bnc_n_entries(bnc);
             if (n_bytes > 0 || n_entries > 0) {
                 printf("   buffer contains %u bytes (%d items)\n", n_bytes, n_entries);
@@ -402,8 +612,12 @@ static void dump_garbage_stats(int fd, FT ft) {
     uint64_t total_space = 0;
     uint64_t used_space = 0;
     toku_ft_get_garbage(ft, &total_space, &used_space);
-    printf("garbage total size\t%" PRIu64 "\n", total_space);
-    printf("garbage used size\t%" PRIu64 "\n", used_space);
+    printf("garbage total size :%20" PRIu64 "\n", total_space);
+    printf("garbage used size  :%20" PRIu64 "\n", used_space);
+    float a=used_space,b=total_space;
+
+    float percentage=((1-a/b)*100);
+    printf("Total garbage : %2.3f%%\n", percentage);
 }
 
 typedef struct __dump_node_extra {
@@ -438,7 +652,7 @@ static void sub_block_deserialize(struct dump_sub_block *sb, unsigned char *sub_
 static void verify_block(unsigned char *cp, uint64_t file_offset, uint64_t size) {
     // verify the header checksum
     const size_t node_header = 8 + sizeof (uint32_t) + sizeof (uint32_t) + sizeof (uint32_t);
-    
+
     printf("%.8s layout_version=%u %u build=%d\n", cp, get_unaligned_uint32(cp+8), get_unaligned_uint32(cp+12), get_unaligned_uint32(cp+16));
 
     unsigned char *sub_block_header = &cp[node_header];
@@ -544,7 +758,9 @@ static uint64_t getuint64(const char *f) {
 static void interactive_help(void) {
     fprintf(stderr, "help\n");
     fprintf(stderr, "header\n");
-    fprintf(stderr, "node NUMBER\n");
+    cout <<"mr/MessagesReport [NUMBER] \n      Reports messages for the level of the tree you want get more details about\n";
+    cout <<"rf/readFile ft-file-name \n      Switch to a different FT\n";
+    fprintf(stderr, "node NUMBER \n");
     fprintf(stderr, "bx OFFSET | block_translation OFFSET\n");
     fprintf(stderr, "dumpdata 0|1\n");
     fprintf(stderr, "fragmentation\n");
@@ -554,10 +770,160 @@ static void interactive_help(void) {
     fprintf(stderr, "quit\n");
 }
 
+static void freeNMC(NMC *msgs[], int height){
+    for(int i=0;i<height;i++){
+        if(msgs[i]!=NULL){
+            delete(msgs[i]->count);
+
+            while(msgs[i]->nextNode!=NULL){
+                NMC* ptr=msgs[i]->nextNode;
+                msgs[i]=msgs[i]->nextNode;
+                delete ptr;
+
+            }
+            msgs[i]=NULL;
+        }
+    }
+}
+
+static void writeTree(NMC *msgs[],int height,char *name UU()){
+    ofstream mytree ("/tmp/tree.txt",fstream::out);
+    if (mytree.is_open()){
+        for(int i=height;i>=0;i--){
+            NMC * ptr=msgs[i];
+            mytree <<i<<endl;
+            while(ptr!=NULL){
+                mytree << ptr->id<<"\t";
+                if(ptr->clean!=0)mytree << "1"<<"\t";
+                else mytree << "0"<<"\t";
+                for(int j=0;j<15;j++)mytree << ptr->count[j]<<" ";
+                mytree << ptr->count[i]<<endl;
+                ptr=ptr->nextNode;
+            }
+             mytree <<endl;
+        }
+    }
+    else cout << "Unable to open file";
+    mytree.close();
+}
+
+static void writeJson(NMC *msgs[],int height,const char *name){
+    ofstream mytree (name,fstream::out);
+    if (mytree.is_open()){
+        mytree <<"{\n \"FT\":[";
+        for(int i=height;i>=0;i--){
+            NMC * ptr=msgs[i];
+            mytree <<"{\n\"Level\": {\"Height\":\""<<i<<"\",\n \"Nodes\":[";
+            while(ptr!=NULL){
+                mytree <<"{\"ID\":\""<< ptr->id<<"\",";
+                if(ptr->clean!=0){
+                    mytree <<"\"Messages\":[";
+                    for(int j=0;j<16;j++)
+                        {
+                        mytree <<"{";
+                        switch (j)   {
+                            case FT_INSERT: mytree <<"\"INSERT\":\""<<ptr->count[j]<<"\""; break;
+                            case FT_INSERT_NO_OVERWRITE: mytree <<"\"INSERT_NOVERWTE\":\""<<ptr->count[j]<<"\""; break;
+                            case FT_DELETE_ANY: mytree <<"\"DELETE\":\""<<ptr->count[j]<<"\""; break;
+                            case FT_ABORT_ANY: mytree <<"\"ABORT\":\""<<ptr->count[j]<<"\""; break;
+                            case FT_COMMIT_ANY: mytree <<"\"COMMITY\":\""<<ptr->count[j]<<"\""; break;
+                            case FT_COMMIT_BROADCAST_ALL: mytree <<"\"COMMIT_BROADCAST_ALL\":\""<<ptr->count[j]<<"\"" ;    break;
+                            case FT_COMMIT_BROADCAST_TXN: mytree <<"\"COMMIT_BROADCAST_TXN\":\""<<ptr->count[j]<<"\""; break;
+                            case FT_ABORT_BROADCAST_TXN: mytree <<"\"ABORT_BROADCAST_TXN\":\""<<ptr->count[j]<<"\"";break;
+                            case FT_OPTIMIZE: mytree <<"\"OPTIMIZE\":\""<<ptr->count[j]<<"\""; break;
+                            case FT_OPTIMIZE_FOR_UPGRADE: mytree <<"\"OPTIMIZE_FOR_UPGRADE\":\""<<ptr->count[j]<<"\"";break;
+                            case FT_UPDATE:   mytree <<"\"UPDATE\":\""<<ptr->count[j]<<"\""; break;
+                            case FT_UPDATE_BROADCAST_ALL: mytree <<"\"UPDATE_BROADCAST_ALL\":\""<<ptr->count[j]<<"\""; break;
+                        }
+                        mytree <<"}";
+                        if(j<15)mytree<<",";
+                    }
+
+                    mytree <<"]}";
+
+                }
+                else {
+                    mytree <<"\"Messages\":\""<< "0"<<"\"}";
+                }
+                if(ptr->nextNode!=NULL)mytree <<",\n";
+                else mytree <<"]}\n";
+                ptr=ptr->nextNode;
+            }
+            mytree <<"\n}\n";
+            if(i!=0)mytree <<",\n";
+        }
+        mytree <<"\n]}\n";
+
+    }
+    else cout << "Unable to open file";
+    mytree.close();
+}
+
+static void writeTree(NMC *msgs[],int height){
+    ofstream mytree ("/tmp/tree1.txt",fstream::out);
+    if (mytree.is_open()){
+        for(int i=height;i>=0;i--){
+            NMC * ptr=msgs[i];
+            mytree <<i<<endl;
+            while(ptr!=NULL){
+                mytree << ptr->id<<",";
+                if(ptr->clean!=0)mytree << "1"<<",";
+                else mytree << "0"<<",";
+                for(int j=0;j<15;j++)mytree << ptr->count[j]<<",";
+                mytree << ptr->count[i]<<endl;
+                ptr=ptr->nextNode;
+            }
+             mytree <<".\"";
+        }
+    }
+    else cout << "Unable to open file";
+    mytree.close();
+}
+
+static void FT_to_JSON(int fd, FT ft, CACHEFILE cf, const char * JsonFile){
+    toku_ft_free(ft);
+    open_header(fd, &ft, cf);
+    int root=getRootNode(ft);
+    BLOCKNUM off = make_blocknum(root);
+    int height=getHeight(fd,off, ft);
+    NMC *msgs[height];
+    for(int i=0;i<=height;i++){
+        msgs[i]=NULL;
+    }
+    open_header(fd, &ft, cf);
+    root=getRootNode(ft);
+    off = make_blocknum(root);
+    countMessagesInFT(fd,off, ft,msgs);
+    cout <<"to STD output: \n";
+    treeToSTDout(msgs,height);
+    writeTree(msgs,height);
+    cout<<"FT's json file was generated here:";
+    if(JsonFile!=NULL)  {
+        cout <<JsonFile;
+        writeJson(msgs,height,JsonFile);
+    }
+    else {
+        cout <<"./FT.json";
+        writeJson(msgs,height,"./FT.json");
+    }
+    cout<<endl;
+    freeNMC(msgs,height);
+    exit(0);
+}
+
 static void run_iteractive_loop(int fd, FT ft, CACHEFILE cf) {
+    toku_ft_free(ft);
+    open_header(fd, &ft, cf);
+    int root=getRootNode(ft);
+    BLOCKNUM off = make_blocknum(root);
+    int height=getHeight(fd,off, ft);
+    NMC *msgs[height];
+    for(int i=0;i<=height;i++){
+        msgs[i]=NULL;
+    }
     while (1) {
-        printf("ftdump>"); fflush(stdout);
-        enum { maxline = 64};
+        printf("ftdump>");
+        fflush(stdout);
         char line[maxline+1];
         int r = readline(line, maxline);
         if (r == EOF)
@@ -565,23 +931,57 @@ static void run_iteractive_loop(int fd, FT ft, CACHEFILE cf) {
         const int maxfields = 4;
         char *fields[maxfields];
         int nfields = split_fields(line, fields, maxfields);
-        if (nfields == 0) 
+        if (nfields == 0)
             continue;
         if (strcmp(fields[0], "help") == 0) {
             interactive_help();
         } else if (strcmp(fields[0], "header") == 0) {
             toku_ft_free(ft);
             open_header(fd, &ft, cf);
-            dump_header(ft);
+        } else if (strcmp(fields[0], "rn") == 0||strcmp(fields[0], "rootNode")==0||strcmp(fields[0], "rootnode") == 0) {
+            printf("Root node :%d\n",root);
         } else if (strcmp(fields[0], "block") == 0 && nfields == 2) {
             BLOCKNUM blocknum = make_blocknum(getuint64(fields[1]));
             dump_block(fd, blocknum, ft);
+        }else if ((strcmp(fields[0], "readFile") == 0 ||strcmp(fields[0], "readfile") == 0 ||strcmp(fields[0], "rf") == 0 )&& nfields == 2) {
+            fname=fields[1];
+            fd = open(fname, O_RDWR + O_BINARY);
+            toku_ft_free(ft);
+            open_header(fd, &ft, cf);
+            root=getRootNode(ft);
+            off = make_blocknum(root);
+            height=getHeight(fd,off, ft);
+            if (fd < 0) {
+                fprintf(stderr, "%s: can not open the FT dump %s errno %d\n", arg0, fname, errno);
+                continue;
+            }
         } else if (strcmp(fields[0], "node") == 0 && nfields == 2) {
-            BLOCKNUM off = make_blocknum(getuint64(fields[1]));
+            off = make_blocknum(getuint64(fields[1]));
             dump_node(fd, off, ft);
-        } else if (strcmp(fields[0], "dumpdata") == 0 && nfields == 2) {
+        }else if ((strcmp(fields[0], "mr") == 0||(strcmp(fields[0], "nc")) == 0 ||strcmp(fields[0], "messagesReport") == 0 )) {
+            freeNMC(msgs,height);
+            toku_ft_free(ft);
+            open_header(fd, &ft, cf);
+            root=getRootNode(ft);
+            off = make_blocknum(root);
+            countMessagesInFT(fd,off, ft,msgs);
+            int level=-1;
+            if(nfields == 2)level=getuint64(fields[1]);
+            if(level>=0){
+                levelToSTDout(msgs[level], level);
+            }
+            else{
+                cout <<"to STD output: \n";
+                treeToSTDout(msgs,height);
+            }
+            writeTree(msgs,height);
+            writeTree(msgs,height, NULL);
+
+        }else if (strcmp(fields[0], "dumpdata") == 0 && nfields == 2) {
+
             do_dump_data = strtol(fields[1], NULL, 10);
-        } else if (strcmp(fields[0], "block_translation") == 0 || strcmp(fields[0], "bx") == 0) {
+        }
+        else if (strcmp(fields[0], "block_translation") == 0 || strcmp(fields[0], "bx") == 0) {
             uint64_t offset = 0;
             if (nfields == 2)
                 offset = getuint64(fields[1]);
@@ -590,7 +990,7 @@ static void run_iteractive_loop(int fd, FT ft, CACHEFILE cf) {
             dump_fragmentation(fd, ft, do_tsv);
         } else if (strcmp(fields[0], "nodesizes") == 0) {
             dump_nodesizes(fd, ft);
-        } else if (strcmp(fields[0], "garbage") == 0) {
+        } else if (strcmp(fields[0], "garbage") == 0||strcmp(fields[0], "g") == 0) {
             dump_garbage_stats(fd, ft);
         } else if (strcmp(fields[0], "file") == 0 && nfields >= 3) {
             uint64_t offset = getuint64(fields[1]);
@@ -604,14 +1004,18 @@ static void run_iteractive_loop(int fd, FT ft, CACHEFILE cf) {
             unsigned char newc = getuint64(fields[2]);
             set_file(fd, offset, newc);
         } else if (strcmp(fields[0], "quit") == 0 || strcmp(fields[0], "q") == 0) {
-            break;
+            toku_ft_free(ft);
+            exit(0);
         }
     }
+    freeNMC(msgs,height);
 }
 
 static int usage(void) {
     fprintf(stderr, "Usage: %s ", arg0);
     fprintf(stderr, "--interactive ");
+    fprintf(stderr, "--support /path/to/fractal-tree/file \n\t an interactive way to see what messages and/or switch between FTs");
+    fprintf(stderr, "--json /path/to/fractal-tree/file [output json file]\n\t if left empty an FT.json will be created automatically");
     fprintf(stderr, "--nodata ");
     fprintf(stderr, "--dumpdata 0|1 ");
     fprintf(stderr, "--header ");
@@ -632,10 +1036,15 @@ int main (int argc, const char *const argv[]) {
     while (argc>0) {
         if (strcmp(argv[0], "--interactive") == 0 || strcmp(argv[0], "--i") == 0) {
             do_interactive = 1;
+        }
+        else if ((strcmp(argv[0], "--json") == 0 || strcmp(argv[0], "--s")== 0)&& argc >= 2) {
+            do_json = 1;
+            fname=argv[1];
+            argc--; argv++;
+            break;
         } else if (strcmp(argv[0], "--nodata") == 0) {
             do_dump_data = 0;
         } else if (strcmp(argv[0], "--dumpdata") == 0 && argc > 1) {
-            argc--; argv++;
             do_dump_data = atoi(argv[0]);
         } else if (strcmp(argv[0], "--header") == 0) {
             do_header = 1;
@@ -660,39 +1069,39 @@ int main (int argc, const char *const argv[]) {
         }
         argc--; argv++;
     }
-    if (argc != 1) 
-        return usage();
+    if (argc != 1 && do_json==0)
+    return usage();
 
     int r = toku_ft_layer_init();
     assert_zero(r);
-
-    fname = argv[0];
+    if(fname==NULL)fname = argv[0];
     int fd = open(fname, O_RDWR + O_BINARY);
     if (fd < 0) {
         fprintf(stderr, "%s: can not open %s errno %d\n", arg0, fname, errno);
         return 1;
     }
-
     // create a cachefile for the header
     CACHETABLE ct = NULL;
     toku_cachetable_create(&ct, 1<<25, (LSN){0}, 0);
-
     CACHEFILE cf = NULL;
     r = toku_cachetable_openfd (&cf, ct, fd, fname);
     assert_zero(r);
-
     FT ft = NULL;
     open_header(fd, &ft, cf);
-
+    if (do_json ) {
+        const char *arg=argv[1];
+        FT_to_JSON(fd, ft, cf,arg);
+    }
     if (do_interactive) {
         run_iteractive_loop(fd, ft, cf);
-    } else {
+    }
+    else {
         if (do_header) {
             dump_header(ft);
         }
         if (do_rootnode) {
             dump_node(fd, ft->h->root_blocknum, ft);
-        } 
+        }
         if (do_node) {
             dump_node(fd, do_node_num, ft);
         }
@@ -708,14 +1117,12 @@ int main (int argc, const char *const argv[]) {
         if (!do_header && !do_rootnode && !do_fragmentation && !do_translation_table && !do_garbage) {
             printf("Block translation:");
             ft->blocktable.dump_translation_table(stdout);
-
             dump_header(ft);
-            
             struct __dump_node_extra info;
             info.fd = fd;
             info.ft = ft;
             ft->blocktable.iterate(block_table::TRANSLATION_CHECKPOINTED,
-                                   dump_node_wrapper, &info, true, true);
+            dump_node_wrapper, &info, true, true);
         }
     }
     toku_cachefile_close(&cf, false, ZERO_LSN);
diff --git a/storage/tokudb/ha_tokudb.cc b/storage/tokudb/ha_tokudb.cc
index 7f89464..1f72e51 100644
--- a/storage/tokudb/ha_tokudb.cc
+++ b/storage/tokudb/ha_tokudb.cc
@@ -172,6 +172,31 @@ static inline uint32_t get_len_of_offsets(KEY_AND_COL_INFO* kc_info, TABLE_SHARE
 }
 
 
+static int get_thread_query_string(my_thread_id id, String &qs) {
+  mysql_mutex_lock(&LOCK_thread_count);
+  I_List_iterator<THD> it(threads);
+  THD* tmp;
+  while ((tmp= it++))
+  {
+    /* ID */
+    if (tmp->thread_id == id)
+    {
+      /* Lock THD mutex that protects its data when looking at it. */
+      mysql_mutex_lock(&tmp->LOCK_thd_data);
+
+      /* INFO */
+      if (tmp->query())
+      {
+        qs = String(tmp->query(), tmp->query_length(), system_charset_info);
+      }
+      mysql_mutex_unlock(&tmp->LOCK_thd_data);
+      break;
+    }
+  }
+  mysql_mutex_unlock(&LOCK_thread_count);
+  return 0;
+}
+
 static int allocate_key_and_col_info ( TABLE_SHARE* table_share, KEY_AND_COL_INFO* kc_info) {
     int error;
     //
@@ -1742,7 +1767,7 @@ int ha_tokudb::initialize_share(const char* name, int mode) {
 
     // initialize cardinality info from the status dictionary
     share->n_rec_per_key = tokudb::compute_total_key_parts(table_share);
-    share->rec_per_key = (uint64_t *) tokudb_my_realloc(share->rec_per_key, share->n_rec_per_key * sizeof (uint64_t), MYF(MY_FAE));
+    share->rec_per_key = (uint64_t *) tokudb_my_realloc(share->rec_per_key, share->n_rec_per_key * sizeof (uint64_t), MYF(MY_FAE + MY_ALLOW_ZERO_PTR));
     error = tokudb::get_card_from_status(share->status_block, txn, share->n_rec_per_key, share->rec_per_key);
     if (error) {
         for (uint i = 0; i < share->n_rec_per_key; i++)
@@ -3247,7 +3272,7 @@ void ha_tokudb::start_bulk_insert(ha_rows rows) {
     lock_count = 0;
     
     if ((rows == 0 || rows > 1) && share->try_table_lock) {
-        if (get_prelock_empty(thd) && may_table_be_empty(transaction)) {
+        if (get_prelock_empty(thd) && may_table_be_empty(transaction) && transaction != NULL) {
             if (using_ignore || is_insert_ignore(thd) || thd->lex->duplicates != DUP_ERROR
                 || table->s->next_number_key_offset) {
                 acquire_table_lock(transaction, lock_write);
@@ -3557,8 +3582,12 @@ static void maybe_do_unique_checks_delay(THD *thd) {
     }
 }
 
+static bool need_read_only(THD *thd) {
+    return opt_readonly || !THDVAR(thd, rpl_check_readonly);
+}        
+
 static bool do_unique_checks(THD *thd, bool do_rpl_event) {
-    if (do_rpl_event && thd->slave_thread && opt_readonly && !THDVAR(thd, rpl_unique_checks))
+    if (do_rpl_event && thd->slave_thread && need_read_only(thd) && !THDVAR(thd, rpl_unique_checks))
         return false;
     else
         return !thd_test_options(thd, OPTION_RELAXED_UNIQUE_CHECKS);
@@ -3934,13 +3963,13 @@ int ha_tokudb::write_row(uchar * record) {
             goto cleanup;
         }
     }
-    
     txn = create_sub_trans ? sub_trans : transaction;
-
+    if (tokudb_debug & TOKUDB_DEBUG_TXN) {
+        TOKUDB_HANDLER_TRACE("txn %p", txn);
+    }
     if (tokudb_debug & TOKUDB_DEBUG_CHECK_KEY) {
         test_row_packing(record,&prim_key,&row);
     }
-
     if (loader) {
         error = loader->put(loader, &prim_key, &row);
         if (error) {
@@ -4214,7 +4243,7 @@ int ha_tokudb::delete_row(const uchar * record) {
     bool has_null;
     THD* thd = ha_thd();
     uint curr_num_DBs;
-    tokudb_trx_data* trx = (tokudb_trx_data *) thd_get_ha_data(thd, tokudb_hton);;
+    tokudb_trx_data* trx = (tokudb_trx_data *) thd_get_ha_data(thd, tokudb_hton);
 
     ha_statistic_increment(&SSV::ha_delete_count);
 
@@ -4239,10 +4268,14 @@ int ha_tokudb::delete_row(const uchar * record) {
         goto cleanup;
     }
 
+    if (tokudb_debug & TOKUDB_DEBUG_TXN) {
+        TOKUDB_HANDLER_TRACE("all %p stmt %p sub_sp_level %p transaction %p", trx->all, trx->stmt, trx->sub_sp_level, transaction);
+    }
+
     error = db_env->del_multiple(
         db_env, 
         share->key_file[primary_key], 
-        transaction, 
+        transaction,
         &prim_key, 
         &row,
         curr_num_DBs, 
@@ -5378,9 +5411,12 @@ int ha_tokudb::get_next(uchar* buf, int direction, DBT* key_to_compare, bool do_
     }
 
     if (!error) {
-        tokudb_trx_data* trx = (tokudb_trx_data *) thd_get_ha_data(ha_thd(), tokudb_hton);
+        THD *thd = ha_thd();
+        tokudb_trx_data* trx = (tokudb_trx_data *) thd_get_ha_data(thd, tokudb_hton);
         trx->stmt_progress.queried++;
-        track_progress(ha_thd());
+        track_progress(thd);
+        if (thd_killed(thd))
+            error = ER_ABORTING_CONNECTION;
     }
 cleanup:
     return error;
@@ -5995,6 +6031,9 @@ int ha_tokudb::extra(enum ha_extra_function operation) {
     case HA_EXTRA_NO_IGNORE_NO_KEY:
         using_ignore_no_key = false;
         break;
+    case HA_EXTRA_NOT_USED:
+    case HA_EXTRA_PREPARE_FOR_RENAME:
+        break; // must do nothing and return 0
     default:
         break;
     }
@@ -6240,7 +6279,11 @@ int ha_tokudb::start_stmt(THD * thd, thr_lock_type lock_type) {
 
     int error = 0;
     tokudb_trx_data *trx = (tokudb_trx_data *) thd_get_ha_data(thd, tokudb_hton);
-    DBUG_ASSERT(trx);
+    if (!trx) {
+        error = create_tokudb_trx_data_instance(&trx);
+        if (error) { goto cleanup; }
+        thd_set_ha_data(thd, tokudb_hton, trx);
+    }
 
     /*
        note that trx->stmt may have been already initialized as start_stmt()
@@ -7138,12 +7181,15 @@ To rename the table, make sure no transactions touch the table.", from, to);
 double ha_tokudb::scan_time() {
     TOKUDB_HANDLER_DBUG_ENTER("");
     double ret_val = (double)stats.records / 3;
+    if (tokudb_debug & TOKUDB_DEBUG_RETURN) {
+        TOKUDB_HANDLER_TRACE("return %" PRIu64 " %f", (uint64_t) stats.records, ret_val);
+    }
     DBUG_RETURN(ret_val);
 }
 
 double ha_tokudb::keyread_time(uint index, uint ranges, ha_rows rows)
 {
-    TOKUDB_HANDLER_DBUG_ENTER("");
+    TOKUDB_HANDLER_DBUG_ENTER("%u %u %" PRIu64, index, ranges, (uint64_t) rows);
     double ret_val;
     if (index == primary_key || key_is_clustering(&table->key_info[index])) {
         ret_val = read_time(index, ranges, rows);
@@ -7161,6 +7207,9 @@ double ha_tokudb::keyread_time(uint index, uint ranges, ha_rows rows)
                             (table->key_info[index].key_length +
                              ref_length) + 1);
     ret_val = (rows + keys_per_block - 1)/ keys_per_block;
+    if (tokudb_debug & TOKUDB_DEBUG_RETURN) {
+        TOKUDB_HANDLER_TRACE("return %f", ret_val);
+    }
     DBUG_RETURN(ret_val);
 }
 
@@ -7181,7 +7230,7 @@ double ha_tokudb::read_time(
     ha_rows rows
     )
 {
-    TOKUDB_HANDLER_DBUG_ENTER("");
+    TOKUDB_HANDLER_DBUG_ENTER("%u %u %" PRIu64, index, ranges, (uint64_t) rows);
     double total_scan;
     double ret_val; 
     bool is_primary = (index == primary_key);
@@ -7223,12 +7272,18 @@ double ha_tokudb::read_time(
     ret_val = is_clustering ? ret_val + 0.00001 : ret_val;
     
 cleanup:
+    if (tokudb_debug & TOKUDB_DEBUG_RETURN) {
+        TOKUDB_HANDLER_TRACE("return %f", ret_val);
+    }
     DBUG_RETURN(ret_val);
 }
 
 double ha_tokudb::index_only_read_time(uint keynr, double records) {
-    TOKUDB_HANDLER_DBUG_ENTER("");
+    TOKUDB_HANDLER_DBUG_ENTER("%u %f", keynr, records);
     double ret_val = keyread_time(keynr, 1, (ha_rows)records);
+    if (tokudb_debug & TOKUDB_DEBUG_RETURN) {
+        TOKUDB_HANDLER_TRACE("return %f", ret_val);
+    }
     DBUG_RETURN(ret_val);
 }
 
@@ -7246,7 +7301,7 @@ double ha_tokudb::index_only_read_time(uint keynr, double records) {
 //      HA_POS_ERROR - Something is wrong with the index tree
 //
 ha_rows ha_tokudb::records_in_range(uint keynr, key_range* start_key, key_range* end_key) {
-    TOKUDB_HANDLER_DBUG_ENTER("");
+    TOKUDB_HANDLER_DBUG_ENTER("%d %p %p", keynr, start_key, end_key);
     DBT *pleft_key, *pright_key;
     DBT left_key, right_key;
     ha_rows ret_val = HA_TOKUDB_RANGE_COUNT;
@@ -7302,6 +7357,9 @@ ha_rows ha_tokudb::records_in_range(uint keynr, key_range* start_key, key_range*
     ret_val = (ha_rows) (rows <= 1 ? 1 : rows);
 
 cleanup:
+    if (tokudb_debug & TOKUDB_DEBUG_RETURN) {
+        TOKUDB_HANDLER_TRACE("return %" PRIu64 " %" PRIu64, (uint64_t) ret_val, rows);
+    }
     DBUG_RETURN(ret_val);
 }
 
diff --git a/storage/tokudb/ha_tokudb.h b/storage/tokudb/ha_tokudb.h
index c17a462..6c4055f 100644
--- a/storage/tokudb/ha_tokudb.h
+++ b/storage/tokudb/ha_tokudb.h
@@ -833,7 +833,7 @@ static inline bool key_is_clustering(const KEY *key) {
 #else
 
 static inline bool key_is_clustering(const KEY *key) {
-    return key->option_struct && key->option_struct->clustering;
+    return key->flags & HA_CLUSTERING;
 }
 #endif
 
diff --git a/storage/tokudb/ha_tokudb_admin.cc b/storage/tokudb/ha_tokudb_admin.cc
index c3b895b..b109cd1 100644
--- a/storage/tokudb/ha_tokudb_admin.cc
+++ b/storage/tokudb/ha_tokudb_admin.cc
@@ -89,6 +89,8 @@ PATENT RIGHTS GRANT:
 #ident "Copyright (c) 2007-2013 Tokutek Inc.  All rights reserved."
 #ident "The technology is licensed by the Massachusetts Institute of Technology, Rutgers State University of New Jersey, and the Research Foundation of State University of New York at Stony Brook under United States of America Serial No. 11/760379 and to the patents and/or patent applications resulting from it."
 
+#include "toku_time.h"
+
 struct analyze_progress_extra {
     THD *thd;
     TOKUDB_SHARE *share;
@@ -154,18 +156,47 @@ int ha_tokudb::analyze(THD *thd, HA_CHECK_OPT *check_opt) {
             bool is_unique = false;
             if (i == primary_key || (key_info->flags & HA_NOSAME))
                 is_unique = true;
+            uint64_t rows = 0;
+            uint64_t deleted_rows = 0;
             int error = tokudb::analyze_card(share->key_file[i], txn, is_unique, num_key_parts, &rec_per_key[total_key_parts],
-                                             tokudb_cmp_dbt_key_parts, analyze_progress, &analyze_progress_extra);
+                                             tokudb_cmp_dbt_key_parts, analyze_progress, &analyze_progress_extra,
+                                             &rows, &deleted_rows);
+            sql_print_information("tokudb analyze %d %" PRIu64 " %" PRIu64, error, rows, deleted_rows);
             if (error != 0 && error != ETIME) {
                 result = HA_ADMIN_FAILED;
-            } else {
-                // debug
-                if (tokudb_debug & TOKUDB_DEBUG_ANALYZE) {
-                    TOKUDB_HANDLER_TRACE("%s.%s.%s", 
-                                         table_share->db.str, table_share->table_name.str, i == primary_key ? "primary" : table_share->key_info[i].name);
-                    for (uint j = 0; j < num_key_parts; j++) 
-                        TOKUDB_HANDLER_TRACE("%lu", rec_per_key[total_key_parts+j]);
-                }
+            }
+            if (error != 0 && rows == 0 && deleted_rows > 0) {
+                result = HA_ADMIN_FAILED;
+            }
+            double f = THDVAR(thd, analyze_delete_fraction);
+            if (result == HA_ADMIN_FAILED || (double) deleted_rows > f * (rows + deleted_rows)) {
+                char name[256]; int namelen;
+                namelen = snprintf(name, sizeof name, "%.*s.%.*s.%s",
+                                  (int) table_share->db.length, table_share->db.str,
+                                  (int) table_share->table_name.length, table_share->table_name.str,
+                                  key_name);
+                thd->protocol->prepare_for_resend();
+                thd->protocol->store(name, namelen,  system_charset_info);
+                thd->protocol->store("analyze", 7, system_charset_info);
+                thd->protocol->store("info", 4, system_charset_info);
+                char rowmsg[256]; int rowmsglen;
+                rowmsglen = snprintf(rowmsg, sizeof rowmsg, "rows processed %" PRIu64 " rows deleted %" PRIu64, rows, deleted_rows);
+                thd->protocol->store(rowmsg, rowmsglen, system_charset_info);
+                thd->protocol->write();
+
+                sql_print_information("tokudb analyze on %.*s %.*s",
+                                      namelen, name, rowmsglen, rowmsg);
+            }
+            if (tokudb_debug & TOKUDB_DEBUG_ANALYZE) {
+                char name[256]; int namelen;
+                namelen = snprintf(name, sizeof name, "%.*s.%.*s.%s",
+                                  (int) table_share->db.length, table_share->db.str,
+                                  (int) table_share->table_name.length, table_share->table_name.str,
+                                  key_name);
+                TOKUDB_HANDLER_TRACE("%.*s rows %" PRIu64 " deleted %" PRIu64,
+                                     namelen, name, rows, deleted_rows);
+                for (uint j = 0; j < num_key_parts; j++)
+                    TOKUDB_HANDLER_TRACE("%lu", rec_per_key[total_key_parts+j]);
             }
             total_key_parts += num_key_parts;
         } 
@@ -186,9 +217,12 @@ typedef struct hot_optimize_context {
     uint progress_stage;
     uint current_table;
     uint num_tables;
+    float progress_limit;
+    uint64_t progress_last_time;
+    uint64_t throttle;
 } *HOT_OPTIMIZE_CONTEXT;
 
-static int hot_poll_fun(void *extra, float progress) {
+static int hot_optimize_progress_fun(void *extra, float progress) {
     HOT_OPTIMIZE_CONTEXT context = (HOT_OPTIMIZE_CONTEXT)extra;
     if (thd_killed(context->thd)) {
         sprintf(context->write_status_msg, "The process has been killed, aborting hot optimize.");
@@ -207,14 +241,27 @@ static int hot_poll_fun(void *extra, float progress) {
     // the percentage we report here is for the current stage/db
     thd_progress_report(context->thd, (unsigned long long) percentage, 100);
 #endif
-    return 0;
+
+    // throttle the optimize table
+    if (context->throttle) {
+        uint64_t time_now = toku_current_time_microsec();
+        uint64_t dt = time_now - context->progress_last_time;
+        uint64_t throttle_time = 1000000ULL / context->throttle;
+        if (throttle_time > dt) {
+            usleep(throttle_time - dt);
+        }
+        context->progress_last_time = toku_current_time_microsec();
+    }
+
+    // return 1 if progress has reach the progress limit
+    return progress >= context->progress_limit;
 }
 
 // flatten all DB's in this table, to do so, peform hot optimize on each db
 int ha_tokudb::do_optimize(THD *thd) {
     TOKUDB_HANDLER_DBUG_ENTER("%s", share->table_name);
+    int error = 0;
     const char *orig_proc_info = tokudb_thd_get_proc_info(thd);
-    int error;
     uint curr_num_DBs = table->s->keys + tokudb_test(hidden_primary_key);
 
 #ifdef HA_TOKUDB_HAS_THD_PROGRESS
@@ -225,11 +272,21 @@ int ha_tokudb::do_optimize(THD *thd) {
 
     // for each DB, run optimize and hot_optimize
     for (uint i = 0; i < curr_num_DBs; i++) {
+        // only optimize the index if it matches the optimize_index_name session variable
+        const char *optimize_index_name = THDVAR(thd, optimize_index_name);
+        if (optimize_index_name) {
+            const char *this_index_name = i >= table_share->keys ? "primary" : table_share->key_info[i].name;
+            if (strcasecmp(optimize_index_name, this_index_name) != 0) {
+                continue;
+            }
+        }
+
         DB* db = share->key_file[i];
         error = db->optimize(db);
         if (error) {
             goto cleanup;
         }
+
         struct hot_optimize_context hc;
         memset(&hc, 0, sizeof hc);
         hc.thd = thd;
@@ -237,8 +294,11 @@ int ha_tokudb::do_optimize(THD *thd) {
         hc.ha = this;
         hc.current_table = i;
         hc.num_tables = curr_num_DBs;
+        hc.progress_limit = THDVAR(thd, optimize_index_fraction);
+        hc.progress_last_time = toku_current_time_microsec();
+        hc.throttle = THDVAR(thd, optimize_throttle);
         uint64_t loops_run;
-        error = db->hot_optimize(db, NULL, NULL, hot_poll_fun, &hc, &loops_run);
+        error = db->hot_optimize(db, NULL, NULL, hot_optimize_progress_fun, &hc, &loops_run);
         if (error) {
             goto cleanup;
         }
diff --git a/storage/tokudb/ha_tokudb_alter_56.cc b/storage/tokudb/ha_tokudb_alter_56.cc
index 1a03dc8..cae5044 100644
--- a/storage/tokudb/ha_tokudb_alter_56.cc
+++ b/storage/tokudb/ha_tokudb_alter_56.cc
@@ -765,7 +765,9 @@ bool ha_tokudb::commit_inplace_alter_table(TABLE *altered_table, Alter_inplace_i
 #else
             THD::killed_state saved_killed_state = thd->killed;
             thd->killed = THD::NOT_KILLED;
-            for (volatile uint i = 0; wait_while_table_is_used(thd, table, HA_EXTRA_NOT_USED); i++) {
+            // MySQL does not handle HA_EXTRA_NOT_USED so we use HA_EXTRA_PREPARE_FOR_RENAME since it is passed through 
+            // the partition storage engine and is treated as a NOP by tokudb
+            for (volatile uint i = 0; wait_while_table_is_used(thd, table, HA_EXTRA_PREPARE_FOR_RENAME); i++) {
                 if (thd->killed != THD::NOT_KILLED)
                     thd->killed = THD::NOT_KILLED;
                 sleep(1);
diff --git a/storage/tokudb/hatoku_defines.h b/storage/tokudb/hatoku_defines.h
index 5af066b..1889b48 100644
--- a/storage/tokudb/hatoku_defines.h
+++ b/storage/tokudb/hatoku_defines.h
@@ -162,6 +162,9 @@ PATENT RIGHTS GRANT:
 #define TOKU_INCLUDE_EXTENDED_KEYS 1
 #define TOKU_INCLUDE_OPTION_STRUCTS 1
 #define TOKU_CLUSTERING_IS_COVERING 1
+#define TOKU_INCLUDE_LOCK_TIMEOUT_QUERY_STRING 1
+#else
+#define TOKU_INCLUDE_LOCK_TIMEOUT_QUERY_STRING 1
 #endif
 #define TOKU_INCLUDE_HANDLERTON_HANDLE_FATAL_SIGNAL 0 /* MariaDB 5.5 */
 
diff --git a/storage/tokudb/hatoku_hton.cc b/storage/tokudb/hatoku_hton.cc
index 34b28be..c268780 100644
--- a/storage/tokudb/hatoku_hton.cc
+++ b/storage/tokudb/hatoku_hton.cc
@@ -425,10 +425,10 @@ static int tokudb_init_func(void *p) {
     tokudb_hton->commit = tokudb_commit;
     tokudb_hton->rollback = tokudb_rollback;
 #if TOKU_INCLUDE_XA
-    tokudb_hton->prepare=tokudb_xa_prepare;
-    tokudb_hton->recover=tokudb_xa_recover;
-    tokudb_hton->commit_by_xid=tokudb_commit_by_xid;
-    tokudb_hton->rollback_by_xid=tokudb_rollback_by_xid;
+    tokudb_hton->prepare = tokudb_xa_prepare;
+    tokudb_hton->recover = tokudb_xa_recover;
+    tokudb_hton->commit_by_xid = tokudb_commit_by_xid;
+    tokudb_hton->rollback_by_xid = tokudb_rollback_by_xid;
 #endif
 
     tokudb_hton->table_options= tokudb_table_options;
@@ -785,16 +785,37 @@ static void tokudb_cleanup_handlers(tokudb_trx_data *trx, DB_TXN *txn) {
     }
 }
 
+#if MYSQL_VERSION_ID >= 50600
+extern "C" enum durability_properties thd_get_durability_property(const MYSQL_THD thd);
+#endif
+
+// Determine if an fsync is used when a transaction is committed.  
+static bool tokudb_sync_on_commit(THD *thd, tokudb_trx_data *trx, DB_TXN *txn) {
+#if MYSQL_VERSION_ID >= 50600
+    // Check the client durability property which is set during 2PC
+    if (thd_get_durability_property(thd) == HA_IGNORE_DURABILITY)
+        return false;
+#endif
+#if defined(MARIADB_BASE_VERSION)
+    // Check is the txn is prepared and the binlog is open
+    if (txn->is_prepared(txn) && mysql_bin_log.is_open())
+        return false;
+#endif
+    if (tokudb_fsync_log_period > 0)
+        return false;
+    return THDVAR(thd, commit_sync) != 0;
+}
+
 static int tokudb_commit(handlerton * hton, THD * thd, bool all) {
-    TOKUDB_DBUG_ENTER("");
+    TOKUDB_DBUG_ENTER("%u", all);
     DBUG_PRINT("trans", ("ending transaction %s", all ? "all" : "stmt"));
-    uint32_t syncflag = THDVAR(thd, commit_sync) ? 0 : DB_TXN_NOSYNC;
     tokudb_trx_data *trx = (tokudb_trx_data *) thd_get_ha_data(thd, hton);
     DB_TXN **txn = all ? &trx->all : &trx->stmt;
     DB_TXN *this_txn = *txn;
     if (this_txn) {
+        uint32_t syncflag = tokudb_sync_on_commit(thd, trx, this_txn) ? 0 : DB_TXN_NOSYNC;
         if (tokudb_debug & TOKUDB_DEBUG_TXN) {
-            TOKUDB_TRACE("commit trx %u txn %p", all, this_txn);
+            TOKUDB_TRACE("commit trx %u txn %p syncflag %u", all, this_txn, syncflag);
         }
         // test hook to induce a crash on a debug build
         DBUG_EXECUTE_IF("tokudb_crash_commit_before", DBUG_SUICIDE(););
@@ -802,11 +823,11 @@ static int tokudb_commit(handlerton * hton, THD * thd, bool all) {
         commit_txn_with_progress(this_txn, syncflag, thd);
         // test hook to induce a crash on a debug build
         DBUG_EXECUTE_IF("tokudb_crash_commit_after", DBUG_SUICIDE(););
-        if (this_txn == trx->sp_level) {
-            trx->sp_level = 0;
-        }
-        *txn = 0;
+        *txn = NULL;
         trx->sub_sp_level = NULL;
+        if (this_txn == trx->sp_level || trx->all == NULL) {
+            trx->sp_level = NULL;
+        }
     } 
     else if (tokudb_debug & TOKUDB_DEBUG_TXN) {
         TOKUDB_TRACE("nothing to commit %d", all);
@@ -816,7 +837,7 @@ static int tokudb_commit(handlerton * hton, THD * thd, bool all) {
 }
 
 static int tokudb_rollback(handlerton * hton, THD * thd, bool all) {
-    TOKUDB_DBUG_ENTER("");
+    TOKUDB_DBUG_ENTER("%u", all);
     DBUG_PRINT("trans", ("aborting transaction %s", all ? "all" : "stmt"));
     tokudb_trx_data *trx = (tokudb_trx_data *) thd_get_ha_data(thd, hton);
     DB_TXN **txn = all ? &trx->all : &trx->stmt;
@@ -827,11 +848,11 @@ static int tokudb_rollback(handlerton * hton, THD * thd, bool all) {
         }
         tokudb_cleanup_handlers(trx, this_txn);
         abort_txn_with_progress(this_txn, thd);
-        if (this_txn == trx->sp_level) {
-            trx->sp_level = 0;
-        }
-        *txn = 0;
+        *txn = NULL;
         trx->sub_sp_level = NULL;
+        if (this_txn == trx->sp_level || trx->all == NULL) {
+            trx->sp_level = NULL;
+        }
     } 
     else {
         if (tokudb_debug & TOKUDB_DEBUG_TXN) {
@@ -843,12 +864,19 @@ static int tokudb_rollback(handlerton * hton, THD * thd, bool all) {
 }
 
 #if TOKU_INCLUDE_XA
+static bool tokudb_sync_on_prepare(void) {
+    // skip sync of log if fsync log period > 0
+    if (tokudb_fsync_log_period > 0)
+        return false;
+    else 
+        return true;
+}   
 
 static int tokudb_xa_prepare(handlerton* hton, THD* thd, bool all) {
     TOKUDB_DBUG_ENTER("");
     int r = 0;
 
-    /* if support_xa is disable, just return */
+    // if tokudb_support_xa is disable, just return
     if (!THDVAR(thd, support_xa)) {
         TOKUDB_DBUG_RETURN(r);
     }
@@ -857,6 +885,7 @@ static int tokudb_xa_prepare(handlerton* hton, THD* thd, bool all) {
     tokudb_trx_data *trx = (tokudb_trx_data *) thd_get_ha_data(thd, hton);
     DB_TXN* txn = all ? trx->all : trx->stmt;
     if (txn) {
+        uint32_t syncflag = tokudb_sync_on_prepare() ? 0 : DB_TXN_NOSYNC;
         if (tokudb_debug & TOKUDB_DEBUG_TXN) {
             TOKUDB_TRACE("doing txn prepare:%d:%p", all, txn);
         }
@@ -865,7 +894,7 @@ static int tokudb_xa_prepare(handlerton* hton, THD* thd, bool all) {
         thd_get_xid(thd, (MYSQL_XID*) &thd_xid);
         // test hook to induce a crash on a debug build
         DBUG_EXECUTE_IF("tokudb_crash_prepare_before", DBUG_SUICIDE(););
-        r = txn->xa_prepare(txn, &thd_xid);
+        r = txn->xa_prepare(txn, &thd_xid, syncflag);
         // test hook to induce a crash on a debug build
         DBUG_EXECUTE_IF("tokudb_crash_prepare_after", DBUG_SUICIDE(););
     } 
@@ -930,7 +959,7 @@ cleanup:
 #endif
 
 static int tokudb_savepoint(handlerton * hton, THD * thd, void *savepoint) {
-    TOKUDB_DBUG_ENTER("");
+    TOKUDB_DBUG_ENTER("%p", savepoint);
     int error;
     SP_INFO save_info = (SP_INFO)savepoint;
     tokudb_trx_data *trx = (tokudb_trx_data *) thd_get_ha_data(thd, hton);
@@ -951,6 +980,9 @@ static int tokudb_savepoint(handlerton * hton, THD * thd, void *savepoint) {
         trx->sp_level = save_info->txn;
         save_info->in_sub_stmt = false;
     }
+    if (tokudb_debug & TOKUDB_DEBUG_TXN) {
+        TOKUDB_TRACE("begin txn %p", save_info->txn);
+    }
     save_info->trx = trx;
     error = 0;
 cleanup:
@@ -958,7 +990,7 @@ cleanup:
 }
 
 static int tokudb_rollback_to_savepoint(handlerton * hton, THD * thd, void *savepoint) {
-    TOKUDB_DBUG_ENTER("");
+    TOKUDB_DBUG_ENTER("%p", savepoint);
     int error;
     SP_INFO save_info = (SP_INFO)savepoint;
     DB_TXN* parent = NULL;
@@ -966,6 +998,9 @@ static int tokudb_rollback_to_savepoint(handlerton * hton, THD * thd, void *save
 
     tokudb_trx_data *trx = (tokudb_trx_data *) thd_get_ha_data(thd, hton);
     parent = txn_to_rollback->parent;
+    if (tokudb_debug & TOKUDB_DEBUG_TXN) {
+        TOKUDB_TRACE("rollback txn %p", txn_to_rollback);
+    }
     if (!(error = txn_to_rollback->abort(txn_to_rollback))) {
         if (save_info->in_sub_stmt) {
             trx->sub_sp_level = parent;
@@ -979,24 +1014,27 @@ static int tokudb_rollback_to_savepoint(handlerton * hton, THD * thd, void *save
 }
 
 static int tokudb_release_savepoint(handlerton * hton, THD * thd, void *savepoint) {
-    TOKUDB_DBUG_ENTER("");
-    int error;
-
+    TOKUDB_DBUG_ENTER("%p", savepoint);
+    int error = 0;
     SP_INFO save_info = (SP_INFO)savepoint;
     DB_TXN* parent = NULL;
     DB_TXN* txn_to_commit = save_info->txn;
 
     tokudb_trx_data *trx = (tokudb_trx_data *) thd_get_ha_data(thd, hton);
     parent = txn_to_commit->parent;
-    if (!(error = txn_to_commit->commit(txn_to_commit, 0))) {
+    if (tokudb_debug & TOKUDB_DEBUG_TXN) {
+        TOKUDB_TRACE("commit txn %p", txn_to_commit);
+    }
+    DB_TXN *child = txn_to_commit->get_child(txn_to_commit);
+    if (child == NULL && !(error = txn_to_commit->commit(txn_to_commit, 0))) {
         if (save_info->in_sub_stmt) {
             trx->sub_sp_level = parent;
         }
         else {
             trx->sp_level = parent;
         }
-        save_info->txn = NULL;
     }
+    save_info->txn = NULL;
     TOKUDB_DBUG_RETURN(error);
 }
 
@@ -1384,8 +1422,6 @@ static MYSQL_SYSVAR_STR(data_dir, tokudb_data_dir, PLUGIN_VAR_READONLY, "TokuDB
 
 static MYSQL_SYSVAR_STR(version, tokudb_version, PLUGIN_VAR_READONLY, "TokuDB Version", NULL, NULL, NULL);
 
-static MYSQL_SYSVAR_UINT(init_flags, tokudb_init_flags, PLUGIN_VAR_READONLY, "Sets TokuDB DB_ENV->open flags", NULL, NULL, tokudb_init_flags, 0, ~0U, 0);
-
 static MYSQL_SYSVAR_UINT(write_status_frequency, tokudb_write_status_frequency, 0, "TokuDB frequency that show processlist updates status of writes", NULL, NULL, 1000, 0, ~0U, 0);
 static MYSQL_SYSVAR_UINT(read_status_frequency, tokudb_read_status_frequency, 0, "TokuDB frequency that show processlist updates status of reads", NULL, NULL, 10000, 0, ~0U, 0);
 static MYSQL_SYSVAR_INT(fs_reserve_percent, tokudb_fs_reserve_percent, PLUGIN_VAR_READONLY, "TokuDB file system space reserve (percent free required)", NULL, NULL, 5, 0, 100, 0);
@@ -1422,7 +1458,6 @@ static struct st_mysql_sys_var *tokudb_system_variables[] = {
     MYSQL_SYSVAR(create_index_online),
     MYSQL_SYSVAR(disable_prefetching),
     MYSQL_SYSVAR(version),
-    MYSQL_SYSVAR(init_flags),
     MYSQL_SYSVAR(checkpointing_period),
     MYSQL_SYSVAR(prelock_empty),
     MYSQL_SYSVAR(checkpoint_lock),
@@ -1441,6 +1476,7 @@ static struct st_mysql_sys_var *tokudb_system_variables[] = {
     MYSQL_SYSVAR(disable_slow_upsert),
 #endif
     MYSQL_SYSVAR(analyze_time),
+    MYSQL_SYSVAR(analyze_delete_fraction),
     MYSQL_SYSVAR(fsync_log_period),
 #if TOKU_INCLUDE_HANDLERTON_HANDLE_FATAL_SIGNAL
     MYSQL_SYSVAR(gdb_path),
@@ -1463,6 +1499,10 @@ static struct st_mysql_sys_var *tokudb_system_variables[] = {
     MYSQL_SYSVAR(rpl_unique_checks_delay),
     MYSQL_SYSVAR(rpl_lookup_rows),
     MYSQL_SYSVAR(rpl_lookup_rows_delay),
+    MYSQL_SYSVAR(rpl_check_readonly),
+    MYSQL_SYSVAR(optimize_index_name),
+    MYSQL_SYSVAR(optimize_index_fraction),
+    MYSQL_SYSVAR(optimize_throttle),
     NULL
 };
 
@@ -1608,12 +1648,12 @@ static ST_FIELD_INFO tokudb_fractal_tree_info_field_info[] = {
 
 static int tokudb_report_fractal_tree_info_for_db(const DBT *dname, const DBT *iname, TABLE *table, THD *thd) {
     int error;
-    DB *db;
     uint64_t bt_num_blocks_allocated;
     uint64_t bt_num_blocks_in_use;
     uint64_t bt_size_allocated;
     uint64_t bt_size_in_use;
 
+    DB *db = NULL;
     error = db_create(&db, db_env, 0);
     if (error) {
         goto exit;
@@ -1625,12 +1665,6 @@ static int tokudb_report_fractal_tree_info_for_db(const DBT *dname, const DBT *i
     error = db->get_fractal_tree_info64(db,
                                         &bt_num_blocks_allocated, &bt_num_blocks_in_use,
                                         &bt_size_allocated, &bt_size_in_use);
-    {
-        int close_error = db->close(db, 0);
-        if (!error) {
-            error = close_error;
-        }
-    }
     if (error) {
         goto exit;
     }
@@ -1662,6 +1696,11 @@ static int tokudb_report_fractal_tree_info_for_db(const DBT *dname, const DBT *i
     error = schema_table_store_record(thd, table);
 
 exit:
+    if (db) {
+        int close_error = db->close(db, 0);
+        if (error == 0)
+            error = close_error;
+    }
     return error;
 }
 
@@ -1956,6 +1995,33 @@ static int tokudb_fractal_tree_block_map_done(void *p) {
     return 0;
 }
 
+#if TOKU_INCLUDE_LOCK_TIMEOUT_QUERY_STRING
+struct tokudb_search_txn_extra {
+    bool match_found;
+    uint64_t match_txn_id;
+    uint64_t match_client_id;
+};
+
+static int tokudb_search_txn_callback(uint64_t txn_id, uint64_t client_id, iterate_row_locks_callback iterate_locks, void *locks_extra, void *extra) {
+    struct tokudb_search_txn_extra *e = reinterpret_cast<struct tokudb_search_txn_extra *>(extra);
+    if (e->match_txn_id == txn_id) {
+        e->match_found = true;
+        e->match_client_id = client_id;
+        return 1;
+    }
+    return 0;
+}
+
+static bool tokudb_txn_id_to_client_id(THD *thd, uint64_t blocking_txnid, uint64_t *blocking_client_id) {
+    struct tokudb_search_txn_extra e = { false, blocking_txnid, 0};
+    (void) db_env->iterate_live_transactions(db_env, tokudb_search_txn_callback, &e);
+    if (e.match_found) {
+        *blocking_client_id = e.match_client_id;
+    }
+    return e.match_found;
+}
+#endif
+
 static void tokudb_pretty_key(const DB *db, const DBT *key, const char *default_key, String *out) {
     if (key->data == NULL) {
         out->append(default_key);
@@ -2005,8 +2071,9 @@ static void tokudb_lock_timeout_callback(DB *db, uint64_t requesting_txnid, cons
         // generate a JSON document with the lock timeout info
         String log_str;
         log_str.append("{");
+        uint64_t mysql_thread_id = thd->thread_id;
         log_str.append("\"mysql_thread_id\":");
-        log_str.append_ulonglong(thd->thread_id);
+        log_str.append_ulonglong(mysql_thread_id);
         log_str.append(", \"dbname\":");
         log_str.append("\""); log_str.append(tokudb_get_index_name(db)); log_str.append("\"");
         log_str.append(", \"requesting_txnid\":");
@@ -2046,7 +2113,18 @@ static void tokudb_lock_timeout_callback(DB *db, uint64_t requesting_txnid, cons
         }
         // dump to stderr
         if (lock_timeout_debug & 2) {
-            sql_print_error("%s: %s", tokudb_hton_name, log_str.c_ptr());
+            sql_print_error("%s: lock timeout %s", tokudb_hton_name, log_str.c_ptr());
+            LEX_STRING *qs = thd_query_string(thd);
+            sql_print_error("%s: requesting_thread_id:%" PRIu64 " q:%.*s", tokudb_hton_name, mysql_thread_id, (int) qs->length, qs->str);
+#if TOKU_INCLUDE_LOCK_TIMEOUT_QUERY_STRING
+            uint64_t blocking_thread_id = 0;
+            if (tokudb_txn_id_to_client_id(thd, blocking_txnid, &blocking_thread_id)) {
+                String blocking_qs;
+                if (get_thread_query_string(blocking_thread_id, blocking_qs) == 0) {
+                    sql_print_error("%s: blocking_thread_id:%" PRIu64 " q:%.*s", tokudb_hton_name, blocking_thread_id, blocking_qs.length(), blocking_qs.c_ptr());
+                }
+            }
+#endif
         }
     }
 }
diff --git a/storage/tokudb/hatoku_hton.h b/storage/tokudb/hatoku_hton.h
index 797e8ff..71d78e5 100644
--- a/storage/tokudb/hatoku_hton.h
+++ b/storage/tokudb/hatoku_hton.h
@@ -316,16 +316,9 @@ static MYSQL_THDVAR_BOOL(disable_slow_upsert,
 );
 #endif
 
-static MYSQL_THDVAR_UINT(analyze_time,
-    0,
-    "analyze time",
-    NULL, 
-    NULL, 
-    5, // default
-    0,  // min
-    ~0U,   // max
-    1      // blocksize
-);
+static MYSQL_THDVAR_UINT(analyze_time, 0, "analyze time (seconds)", NULL /*check*/, NULL /*update*/, 5 /*default*/, 0 /*min*/, ~0U /*max*/, 1 /*blocksize*/);
+
+static MYSQL_THDVAR_DOUBLE(analyze_delete_fraction, 0, "fraction of rows allowed to be deleted", NULL /*check*/, NULL /*update*/, 1.0 /*def*/, 0 /*min*/, 1.0 /*max*/, 1);
 
 static void tokudb_checkpoint_lock(THD * thd);
 static void tokudb_checkpoint_unlock(THD * thd);
@@ -430,7 +423,7 @@ static int tokudb_killed_callback(void) {
     return thd_killed(thd);
 }
 
-static bool tokudb_killed_thd_callback(void *extra) {
+static bool tokudb_killed_thd_callback(void *extra, uint64_t deleted_rows) {
     THD *thd = static_cast<THD *>(extra);
     return thd_killed(thd) != 0;
 }
@@ -491,6 +484,15 @@ static MYSQL_THDVAR_BOOL(rpl_lookup_rows, PLUGIN_VAR_THDLOCAL, "lookup a row on
 static MYSQL_THDVAR_ULONGLONG(rpl_lookup_rows_delay, PLUGIN_VAR_THDLOCAL, "time in milliseconds to add to lookups on replication slave",
                               NULL, NULL, 0 /*default*/, 0 /*min*/, ~0ULL /*max*/, 1 /*blocksize*/);
 
+static MYSQL_THDVAR_BOOL(rpl_check_readonly, PLUGIN_VAR_THDLOCAL, "check if the slave is read only",
+                         NULL /*check*/, NULL /*update*/, true /*default*/);
+
+static MYSQL_THDVAR_STR(optimize_index_name, PLUGIN_VAR_THDLOCAL + PLUGIN_VAR_MEMALLOC, "optimize index name (default all indexes)", NULL /*check*/, NULL /*update*/, NULL /*default*/);
+
+static MYSQL_THDVAR_DOUBLE(optimize_index_fraction, 0, "optimize index fraction (default 1.0 all)", NULL /*check*/, NULL /*update*/, 1.0 /*def*/, 0 /*min*/, 1.0 /*max*/, 1);
+
+static MYSQL_THDVAR_ULONGLONG(optimize_throttle, 0, "optimize throttle (default no throttle)", NULL /*check*/, NULL /*update*/, 0 /*def*/, 0 /*min*/, ~0ULL /*max*/, 1);
+
 extern HASH tokudb_open_tables;
 extern pthread_mutex_t tokudb_mutex;
 extern uint32_t tokudb_write_status_frequency;
diff --git a/storage/tokudb/mysql-test/rpl/disabled.def b/storage/tokudb/mysql-test/rpl/disabled.def
index efa4be9..4c1a9a3 100644
--- a/storage/tokudb/mysql-test/rpl/disabled.def
+++ b/storage/tokudb/mysql-test/rpl/disabled.def
@@ -10,3 +10,6 @@ rpl_tokudb_write_pk: unreliable, uses timestamp differences
 rpl_tokudb_write_pk_uc1: unreliable, uses timestamp differences
 rpl_tokudb_write_unique: unreliable, uses timestamp differences
 rpl_tokudb_write_unique_uc1: unreliable, uses timestamp differences
+rpl_tokudb_read_only_ff: unreliable, uses timestamp differences
+rpl_tokudb_read_only_tf: unreliable, uses timestamp differences
+rpl_tokudb_read_only_tt: unreliable, uses timestamp differences
diff --git a/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_read_only_ff.result b/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_read_only_ff.result
new file mode 100644
index 0000000..6db2036
--- /dev/null
+++ b/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_read_only_ff.result
@@ -0,0 +1,14 @@
+include/master-slave.inc
+[connection master]
+drop table if exists t;
+create table t (a bigint not null, primary key(a)) engine=tokudb;
+select unix_timestamp() into @tstart;
+insert into t values (1);
+insert into t values (2),(3);
+insert into t values (4);
+select unix_timestamp()- at tstart <= 10;
+unix_timestamp()- at tstart <= 10
+1
+include/diff_tables.inc [master:test.t, slave:test.t]
+drop table if exists t;
+include/rpl_end.inc
diff --git a/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_read_only_ft.result b/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_read_only_ft.result
new file mode 100644
index 0000000..3bcd3e8
--- /dev/null
+++ b/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_read_only_ft.result
@@ -0,0 +1,14 @@
+include/master-slave.inc
+[connection master]
+drop table if exists t;
+create table t (a bigint not null, primary key(a)) engine=tokudb;
+select unix_timestamp() into @tstart;
+insert into t values (1);
+insert into t values (2),(3);
+insert into t values (4);
+select unix_timestamp()- at tstart <= 10;
+unix_timestamp()- at tstart <= 10
+0
+include/diff_tables.inc [master:test.t, slave:test.t]
+drop table if exists t;
+include/rpl_end.inc
diff --git a/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_read_only_tf.result b/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_read_only_tf.result
new file mode 100644
index 0000000..6db2036
--- /dev/null
+++ b/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_read_only_tf.result
@@ -0,0 +1,14 @@
+include/master-slave.inc
+[connection master]
+drop table if exists t;
+create table t (a bigint not null, primary key(a)) engine=tokudb;
+select unix_timestamp() into @tstart;
+insert into t values (1);
+insert into t values (2),(3);
+insert into t values (4);
+select unix_timestamp()- at tstart <= 10;
+unix_timestamp()- at tstart <= 10
+1
+include/diff_tables.inc [master:test.t, slave:test.t]
+drop table if exists t;
+include/rpl_end.inc
diff --git a/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_read_only_tt.result b/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_read_only_tt.result
new file mode 100644
index 0000000..6db2036
--- /dev/null
+++ b/storage/tokudb/mysql-test/rpl/r/rpl_tokudb_read_only_tt.result
@@ -0,0 +1,14 @@
+include/master-slave.inc
+[connection master]
+drop table if exists t;
+create table t (a bigint not null, primary key(a)) engine=tokudb;
+select unix_timestamp() into @tstart;
+insert into t values (1);
+insert into t values (2),(3);
+insert into t values (4);
+select unix_timestamp()- at tstart <= 10;
+unix_timestamp()- at tstart <= 10
+1
+include/diff_tables.inc [master:test.t, slave:test.t]
+drop table if exists t;
+include/rpl_end.inc
diff --git a/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ff-slave.opt b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ff-slave.opt
new file mode 100644
index 0000000..b9eb687
--- /dev/null
+++ b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ff-slave.opt
@@ -0,0 +1 @@
+--read-only=OFF --tokudb-rpl-check-readonly=OFF --tokudb-rpl-unique-checks-delay=5000 --tokudb-rpl-unique-checks=OFF
diff --git a/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ff.test b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ff.test
new file mode 100644
index 0000000..c77e4b4
--- /dev/null
+++ b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ff.test
@@ -0,0 +1,53 @@
+# test replicated write rows log events on a table with a primary key.
+# the slave is read only with tokudb unique checks disabled.
+
+source include/have_tokudb.inc;
+let $engine=tokudb;
+source include/have_binlog_format_row.inc;
+source include/master-slave.inc;
+
+# initialize
+connection master;
+disable_warnings;
+drop table if exists t;
+enable_warnings;
+
+connection slave;
+# show variables like 'read_only';
+# show variables like 'tokudb_rpl_unique_checks%';
+
+# insert some rows
+connection master;
+# select @@binlog_format;
+# select @@autocommit;
+eval create table t (a bigint not null, primary key(a)) engine=$engine;
+# show create table t;
+select unix_timestamp() into @tstart;
+insert into t values (1);
+insert into t values (2),(3);
+insert into t values (4);
+
+sync_slave_with_master;
+# source include/sync_slave_sql_with_master.inc;
+
+connection master;
+select unix_timestamp()- at tstart <= 10; 
+
+connection slave;
+# insert into t values (5); # test read-only
+# show create table t;
+
+# diff tables
+connection master;
+--let $diff_tables= master:test.t, slave:test.t
+source include/diff_tables.inc;
+
+# cleanup
+connection master;
+drop table if exists t;
+
+sync_slave_with_master;
+# source include/sync_slave_sql_with_master.inc;
+
+source include/rpl_end.inc;
+
diff --git a/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ft-slave.opt b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ft-slave.opt
new file mode 100644
index 0000000..8283875
--- /dev/null
+++ b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ft-slave.opt
@@ -0,0 +1 @@
+--read-only=OFF --tokudb-rpl-check-readonly=ON --tokudb-rpl-unique-checks-delay=5000 --tokudb-rpl-unique-checks=OFF
diff --git a/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ft.test b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ft.test
new file mode 100644
index 0000000..c77e4b4
--- /dev/null
+++ b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_ft.test
@@ -0,0 +1,53 @@
+# test replicated write rows log events on a table with a primary key.
+# the slave is read only with tokudb unique checks disabled.
+
+source include/have_tokudb.inc;
+let $engine=tokudb;
+source include/have_binlog_format_row.inc;
+source include/master-slave.inc;
+
+# initialize
+connection master;
+disable_warnings;
+drop table if exists t;
+enable_warnings;
+
+connection slave;
+# show variables like 'read_only';
+# show variables like 'tokudb_rpl_unique_checks%';
+
+# insert some rows
+connection master;
+# select @@binlog_format;
+# select @@autocommit;
+eval create table t (a bigint not null, primary key(a)) engine=$engine;
+# show create table t;
+select unix_timestamp() into @tstart;
+insert into t values (1);
+insert into t values (2),(3);
+insert into t values (4);
+
+sync_slave_with_master;
+# source include/sync_slave_sql_with_master.inc;
+
+connection master;
+select unix_timestamp()- at tstart <= 10; 
+
+connection slave;
+# insert into t values (5); # test read-only
+# show create table t;
+
+# diff tables
+connection master;
+--let $diff_tables= master:test.t, slave:test.t
+source include/diff_tables.inc;
+
+# cleanup
+connection master;
+drop table if exists t;
+
+sync_slave_with_master;
+# source include/sync_slave_sql_with_master.inc;
+
+source include/rpl_end.inc;
+
diff --git a/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tf-slave.opt b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tf-slave.opt
new file mode 100644
index 0000000..21e57d2
--- /dev/null
+++ b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tf-slave.opt
@@ -0,0 +1 @@
+--read-only=ON --tokudb-rpl-check-readonly=OFF --tokudb-rpl-unique-checks-delay=5000 --tokudb-rpl-unique-checks=OFF
diff --git a/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tf.test b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tf.test
new file mode 100644
index 0000000..c77e4b4
--- /dev/null
+++ b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tf.test
@@ -0,0 +1,53 @@
+# test replicated write rows log events on a table with a primary key.
+# the slave is read only with tokudb unique checks disabled.
+
+source include/have_tokudb.inc;
+let $engine=tokudb;
+source include/have_binlog_format_row.inc;
+source include/master-slave.inc;
+
+# initialize
+connection master;
+disable_warnings;
+drop table if exists t;
+enable_warnings;
+
+connection slave;
+# show variables like 'read_only';
+# show variables like 'tokudb_rpl_unique_checks%';
+
+# insert some rows
+connection master;
+# select @@binlog_format;
+# select @@autocommit;
+eval create table t (a bigint not null, primary key(a)) engine=$engine;
+# show create table t;
+select unix_timestamp() into @tstart;
+insert into t values (1);
+insert into t values (2),(3);
+insert into t values (4);
+
+sync_slave_with_master;
+# source include/sync_slave_sql_with_master.inc;
+
+connection master;
+select unix_timestamp()- at tstart <= 10; 
+
+connection slave;
+# insert into t values (5); # test read-only
+# show create table t;
+
+# diff tables
+connection master;
+--let $diff_tables= master:test.t, slave:test.t
+source include/diff_tables.inc;
+
+# cleanup
+connection master;
+drop table if exists t;
+
+sync_slave_with_master;
+# source include/sync_slave_sql_with_master.inc;
+
+source include/rpl_end.inc;
+
diff --git a/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tt-slave.opt b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tt-slave.opt
new file mode 100644
index 0000000..fd77ee0
--- /dev/null
+++ b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tt-slave.opt
@@ -0,0 +1 @@
+--read-only=ON --tokudb-rpl-check-readonly=ON --tokudb-rpl-unique-checks-delay=5000 --tokudb-rpl-unique-checks=OFF
diff --git a/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tt.test b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tt.test
new file mode 100644
index 0000000..c77e4b4
--- /dev/null
+++ b/storage/tokudb/mysql-test/rpl/t/rpl_tokudb_read_only_tt.test
@@ -0,0 +1,53 @@
+# test replicated write rows log events on a table with a primary key.
+# the slave is read only with tokudb unique checks disabled.
+
+source include/have_tokudb.inc;
+let $engine=tokudb;
+source include/have_binlog_format_row.inc;
+source include/master-slave.inc;
+
+# initialize
+connection master;
+disable_warnings;
+drop table if exists t;
+enable_warnings;
+
+connection slave;
+# show variables like 'read_only';
+# show variables like 'tokudb_rpl_unique_checks%';
+
+# insert some rows
+connection master;
+# select @@binlog_format;
+# select @@autocommit;
+eval create table t (a bigint not null, primary key(a)) engine=$engine;
+# show create table t;
+select unix_timestamp() into @tstart;
+insert into t values (1);
+insert into t values (2),(3);
+insert into t values (4);
+
+sync_slave_with_master;
+# source include/sync_slave_sql_with_master.inc;
+
+connection master;
+select unix_timestamp()- at tstart <= 10; 
+
+connection slave;
+# insert into t values (5); # test read-only
+# show create table t;
+
+# diff tables
+connection master;
+--let $diff_tables= master:test.t, slave:test.t
+source include/diff_tables.inc;
+
+# cleanup
+connection master;
+drop table if exists t;
+
+sync_slave_with_master;
+# source include/sync_slave_sql_with_master.inc;
+
+source include/rpl_end.inc;
+
diff --git a/storage/tokudb/mysql-test/tokudb/r/change_column_varchar.result b/storage/tokudb/mysql-test/tokudb/r/change_column_varchar.result
index a9cb5e5..2e7da5e 100644
--- a/storage/tokudb/mysql-test/tokudb/r/change_column_varchar.result
+++ b/storage/tokudb/mysql-test/tokudb/r/change_column_varchar.result
@@ -6,6 +6,7 @@ Table	Create Table
 t	CREATE TABLE `t` (
   `a` varchar(1) DEFAULT NULL
 ) ENGINE=TokuDB DEFAULT CHARSET=latin1
+INSERT INTO t VALUES (null);
 ALTER TABLE t CHANGE COLUMN a a VARCHAR(2);
 ALTER TABLE t CHANGE COLUMN a a VARCHAR(2);
 ALTER TABLE t CHANGE COLUMN a a VARCHAR(3);
diff --git a/storage/tokudb/mysql-test/tokudb/r/information-schema-global-status.result b/storage/tokudb/mysql-test/tokudb/r/information-schema-global-status.result
index 369c14f..7d0e832 100644
--- a/storage/tokudb/mysql-test/tokudb/r/information-schema-global-status.result
+++ b/storage/tokudb/mysql-test/tokudb/r/information-schema-global-status.result
@@ -65,6 +65,7 @@ TOKUDB_CHECKPOINT_LONG_BEGIN_COUNT
 TOKUDB_CHECKPOINT_LONG_BEGIN_TIME
 TOKUDB_CHECKPOINT_PERIOD
 TOKUDB_CHECKPOINT_TAKEN
+TOKUDB_CURSOR_SKIP_DELETED_LEAF_ENTRY
 TOKUDB_DB_CLOSES
 TOKUDB_DB_OPENS
 TOKUDB_DB_OPEN_CURRENT
diff --git a/storage/tokudb/mysql-test/tokudb/t/bf_create_select.test b/storage/tokudb/mysql-test/tokudb/t/bf_create_select.test
index 20455da..8c457b7 100644
--- a/storage/tokudb/mysql-test/tokudb/t/bf_create_select.test
+++ b/storage/tokudb/mysql-test/tokudb/t/bf_create_select.test
@@ -65,8 +65,8 @@ while ($i < $maxq) {
 
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-# Check that the time with bulk fetch off is at least twice that whith bulk fetch on
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 2 * $time_elapsed_on`;
+# Check that the time with bulk fetch off is greater that with bulk fetch on
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo index $verdict $time_elapsed_on $time_elapsed_off; }
 if (!$verdict) { echo index $time_elapsed_on $time_elapsed_off; }
@@ -94,8 +94,8 @@ while ($i < $maxq) {
 
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-# Check that the time with bulk fetch off is at least twice that whith bulk fetch on
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 2 * $time_elapsed_on`;
+# Check that the time with bulk fetch off is greater that with bulk fetch on
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo range $verdict $time_elapsed_on $time_elapsed_off; }
 if (!$verdict) { echo range $time_elapsed_on $time_elapsed_off; }
diff --git a/storage/tokudb/mysql-test/tokudb/t/bf_create_select_hash_part.test b/storage/tokudb/mysql-test/tokudb/t/bf_create_select_hash_part.test
index 4df0a13..34995b4 100644
--- a/storage/tokudb/mysql-test/tokudb/t/bf_create_select_hash_part.test
+++ b/storage/tokudb/mysql-test/tokudb/t/bf_create_select_hash_part.test
@@ -65,8 +65,8 @@ while ($i < $maxq) {
 }
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-# check that bulk fetch on is at least 1.5 times faster than bulk fetch off
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 1.5 * $time_elapsed_on`;
+# check that bulk fetch on is greater than bulk fetch off
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo index $verdict $time_elapsed_off $time_elapsed_on; }
 if (!$verdict) { echo index $time_elapsed_off $time_elapsed_on; }
@@ -93,8 +93,8 @@ while ($i < $maxq) {
 }
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-# check that bulk fetch on is at least 1.5 times faster than bulk fetch off
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 1.5 * $time_elapsed_on`;
+# check that bulk fetch on is greater than bulk fetch off
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo range $verdict $time_elapsed_off $time_elapsed_on; }
 if (!$verdict) { echo range $time_elapsed_off $time_elapsed_on; }
diff --git a/storage/tokudb/mysql-test/tokudb/t/bf_create_select_range_part.test b/storage/tokudb/mysql-test/tokudb/t/bf_create_select_range_part.test
index b66b2c4..a532498 100644
--- a/storage/tokudb/mysql-test/tokudb/t/bf_create_select_range_part.test
+++ b/storage/tokudb/mysql-test/tokudb/t/bf_create_select_range_part.test
@@ -72,8 +72,8 @@ while ($i < $maxq) {
 }
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-# check that bulk fetch on is at least 2 times faster than bulk fetch off
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 2 * $time_elapsed_on`;
+# check that bulk fetch on is greater than bulk fetch off
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo index $verdict $time_elapsed_off $time_elapsed_on; }
 if (!$verdict) { echo index $time_elapsed_off $time_elapsed_on; }
@@ -100,8 +100,8 @@ while ($i < $maxq) {
 }
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-# check that bulk fetch on is at least 2 times faster than bulk fetch off
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 2 * $time_elapsed_on`;
+# check that bulk fetch on is greater than bulk fetch off
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo range $verdict $time_elapsed_off $time_elapsed_on; }
 if (!$verdict) { echo range $time_elapsed_off $time_elapsed_on; }
diff --git a/storage/tokudb/mysql-test/tokudb/t/bf_create_temp_select.test b/storage/tokudb/mysql-test/tokudb/t/bf_create_temp_select.test
index 52cb886..4f8211a 100644
--- a/storage/tokudb/mysql-test/tokudb/t/bf_create_temp_select.test
+++ b/storage/tokudb/mysql-test/tokudb/t/bf_create_temp_select.test
@@ -65,8 +65,8 @@ while ($i < $maxq) {
 
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-# Check that the time with bulk fetch off is at least twice that whith bulk fetch on
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 2 * $time_elapsed_on`;
+# Check that the time with bulk fetch off is greater that with bulk fetch on
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo index $verdict $time_elapsed_on $time_elapsed_off; }
 if (!$verdict) { echo index $time_elapsed_on $time_elapsed_off; }
@@ -94,8 +94,8 @@ while ($i < $maxq) {
 
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-# Check that the time with bulk fetch off is at least twice that whith bulk fetch on
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 2 * $time_elapsed_on`;
+# Check that the time with bulk fetch off is greater than with bulk fetch on
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo range $verdict $time_elapsed_on $time_elapsed_off; }
 if (!$verdict) { echo range $time_elapsed_on $time_elapsed_off; }
diff --git a/storage/tokudb/mysql-test/tokudb/t/bf_delete.test b/storage/tokudb/mysql-test/tokudb/t/bf_delete.test
index f98e87f..a55d787 100644
--- a/storage/tokudb/mysql-test/tokudb/t/bf_delete.test
+++ b/storage/tokudb/mysql-test/tokudb/t/bf_delete.test
@@ -1,5 +1,4 @@
-# Verify that index scans for delete statements use bulk fetch and are
-# at least twice as fast
+# Verify that index scans for delete statements use bulk fetch are faster than when not using bulk fetch
 
 source include/have_tokudb.inc;
 source include/big_test.inc;
@@ -62,8 +61,8 @@ while ($i < $maxq) {
 }
 let $time_elapsed_bf_off = `select unix_timestamp() - $s`;
 
-# verify that a delete scan with bulk fetch ON is at least 2 times faster than with bulk fetch OFF
-let $verdict = `select $time_elapsed_bf_on > 0 && $time_elapsed_bf_off >= 2 * $time_elapsed_bf_on`;
+# verify that a delete scan with bulk fetch ON is greater than with bulk fetch OFF
+let $verdict = `select $time_elapsed_bf_on > 0 && $time_elapsed_bf_off > $time_elapsed_bf_on`;
 echo $verdict;
 if ($debug) { echo range $verdict $time_elapsed_bf_on $time_elapsed_bf_off; }
 if (!$verdict) { echo range $time_elapsed_bf_on $time_elapsed_bf_off; }
diff --git a/storage/tokudb/mysql-test/tokudb/t/bf_insert_select.test b/storage/tokudb/mysql-test/tokudb/t/bf_insert_select.test
index 5fcb8fa..8d96c26 100644
--- a/storage/tokudb/mysql-test/tokudb/t/bf_insert_select.test
+++ b/storage/tokudb/mysql-test/tokudb/t/bf_insert_select.test
@@ -66,8 +66,8 @@ while ($i < $maxq) {
 }
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-# check that bulk fetch on is at least 2 times faster than bulk fetch off
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 2 * $time_elapsed_on`;
+# check that the time with bulk fetch on is greater than with bulk fetch off
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo index $verdict $time_elapsed_off $time_elapsed_on; }
 if (!$verdict) { echo index $time_elapsed_off $time_elapsed_on; }
@@ -92,7 +92,7 @@ while ($i < $maxq) {
 }
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 2 * $time_elapsed_on`;
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo range $verdict $time_elapsed_off $time_elapsed_on; }
 if (!$verdict) { echo range $time_elapsed_off $time_elapsed_on; }
diff --git a/storage/tokudb/mysql-test/tokudb/t/bf_insert_select_dup_key.test b/storage/tokudb/mysql-test/tokudb/t/bf_insert_select_dup_key.test
index 51c6d66..1b015b2 100644
--- a/storage/tokudb/mysql-test/tokudb/t/bf_insert_select_dup_key.test
+++ b/storage/tokudb/mysql-test/tokudb/t/bf_insert_select_dup_key.test
@@ -70,8 +70,8 @@ while ($i < $maxq) {
 }
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-# check that bulk fetch on is at least 2 times faster than bulk fetch off
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 2 * $time_elapsed_on`;
+# check that bulk fetch on is greater than with bulk fetch off
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo index $verdict $time_elapsed_off $time_elapsed_on; }
 if (!$verdict) { echo index $time_elapsed_off $time_elapsed_on; }
@@ -96,8 +96,8 @@ while ($i < $maxq) {
 }
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-# check that bulk fetch on is at least 2 times faster than bulk fetch off
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 2 * $time_elapsed_on`;
+# check that bulk fetch on is greater than bulk fetch off
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo range $verdict $time_elapsed_off $time_elapsed_on; }
 if (!$verdict) { echo range $time_elapsed_off $time_elapsed_on; }
diff --git a/storage/tokudb/mysql-test/tokudb/t/bf_replace_select.test b/storage/tokudb/mysql-test/tokudb/t/bf_replace_select.test
index 1ca7544..72cda34 100644
--- a/storage/tokudb/mysql-test/tokudb/t/bf_replace_select.test
+++ b/storage/tokudb/mysql-test/tokudb/t/bf_replace_select.test
@@ -66,8 +66,8 @@ while ($i < $maxq) {
 }
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-# check that bulk fetch on is at least 2 times faster than bulk fetch off
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 2 * $time_elapsed_on`;
+# check that the time with bulk fetch on is greater than with bulk fetch off
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo index $verdict $time_elapsed_off $time_elapsed_on; }
 if (!$verdict) { echo index $time_elapsed_off $time_elapsed_on; }
@@ -92,7 +92,8 @@ while ($i < $maxq) {
 }
 let $time_elapsed_off = `select unix_timestamp() - $s`;
 
-let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off >= 2 * $time_elapsed_on`;
+# check that the time with bulk fetch on is greater than with bulk fetch off
+let $verdict = `select $time_elapsed_on > 0 && $time_elapsed_off > $time_elapsed_on`;
 echo $verdict;
 if ($debug) { echo range $verdict $time_elapsed_off $time_elapsed_on; }
 if (!$verdict) { echo range $time_elapsed_off $time_elapsed_on; }
diff --git a/storage/tokudb/mysql-test/tokudb/t/bf_select_hash_part.test b/storage/tokudb/mysql-test/tokudb/t/bf_select_hash_part.test
index 2271a20..4698627 100644
--- a/storage/tokudb/mysql-test/tokudb/t/bf_select_hash_part.test
+++ b/storage/tokudb/mysql-test/tokudb/t/bf_select_hash_part.test
@@ -65,8 +65,8 @@ let $time_bf_off = `select unix_timestamp() - $s`;
 
 if ($debug) { echo index scans took $time_bf_off.; }
 
-# check that the scan time with bulk fetch off is at least 1.5 times as long as with bulk fetch on
-let $verdict = `select $time_bf_on > 0 && $time_bf_off >= 1.5 * $time_bf_on`;
+# check that the scan time with bulk fetch off is greater than with bulk fetch on
+let $verdict = `select $time_bf_on > 0 && $time_bf_off > $time_bf_on`;
 echo $verdict;
 if ($debug) { echo index $verdict $time_bf_on $time_bf_off; }
 if (!$verdict) { echo index $time_bf_on $time_bf_off; }
@@ -93,8 +93,8 @@ let $time_bf_off = `select unix_timestamp() - $s`;
 
 if ($debug) { echo range scans took $time_bf_off.; }
 
-# check that the scan time with bulk fetch off is at least 1.5 times as long as with bulk fetch on
-let $verdict = `select $time_bf_on > 0 && $time_bf_off >= 1.5 * $time_bf_on`;
+# check that the scan time with bulk fetch off is greater than with bulk fetch on
+let $verdict = `select $time_bf_on > 0 && $time_bf_off > $time_bf_on`;
 echo $verdict;
 if ($debug) { echo range $verdict $time_bf_on $time_bf_off; }
 if (!$verdict) { echo range $time_bf_on $time_bf_off; }
diff --git a/storage/tokudb/mysql-test/tokudb/t/bf_select_range_part.test b/storage/tokudb/mysql-test/tokudb/t/bf_select_range_part.test
index 9dcb044..7e60877 100644
--- a/storage/tokudb/mysql-test/tokudb/t/bf_select_range_part.test
+++ b/storage/tokudb/mysql-test/tokudb/t/bf_select_range_part.test
@@ -70,8 +70,8 @@ while ($i < $maxq) {
 }
 let $time_bf_off = `select unix_timestamp() - $s`;
 
-# check that the scan time with bulk fetch off is at least 1.5 times as long as with bulk fetch on
-let $verdict = `select $time_bf_on > 0 && $time_bf_off >= 1.5 * $time_bf_on`;
+# check that the scan time with bulk fetch off is greater than with bulk fetch on
+let $verdict = `select $time_bf_on > 0 && $time_bf_off > $time_bf_on`;
 echo $verdict;
 if ($debug) { echo index $verdict $time_bf_on $time_bf_off; }
 if (!$verdict) { echo index scan $time_bf_on $time_bf_off; }
@@ -94,8 +94,8 @@ while ($i < $maxq) {
 }
 let $time_bf_off = `select unix_timestamp() - $s`;
 
-# check that the scan time with bulk fetch off is at least 1.5 times as long as with bulk fetch on
-let $verdict = `select $time_bf_on > 0 && $time_bf_off >= 1.5 * $time_bf_on`;
+# check that the scan time with bulk fetch off is greater than with bulk fetch on
+let $verdict = `select $time_bf_on > 0 && $time_bf_off > $time_bf_on`;
 echo $verdict;
 if ($debug) { echo range $verdict $time_bf_on $time_bf_off; }
 if (!$verdict) { echo range $time_bf_on $time_bf_off; }
diff --git a/storage/tokudb/mysql-test/tokudb/t/change_column_varchar.test b/storage/tokudb/mysql-test/tokudb/t/change_column_varchar.test
index f2b4e3c..6543952 100644
--- a/storage/tokudb/mysql-test/tokudb/t/change_column_varchar.test
+++ b/storage/tokudb/mysql-test/tokudb/t/change_column_varchar.test
@@ -9,6 +9,7 @@ SET SESSION TOKUDB_DISABLE_SLOW_ALTER=ON;
 
 CREATE TABLE t (a VARCHAR(1)) ENGINE=TokuDB;
 SHOW CREATE TABLE t;
+INSERT INTO t VALUES (null);
 
 # 1->1
 let $i=1
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/5733_tokudb.result b/storage/tokudb/mysql-test/tokudb_bugs/r/5733_tokudb.result
index 07e8b37..a05587c 100644
--- a/storage/tokudb/mysql-test/tokudb_bugs/r/5733_tokudb.result
+++ b/storage/tokudb/mysql-test/tokudb_bugs/r/5733_tokudb.result
@@ -10005,7 +10005,7 @@ insert into t values (9999,0);
 commit;
 explain select id from t where id>0 limit 10;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
-1	SIMPLE	t	index_or_range	PRIMARY	PRIMARY	8	NULL	#	Using where; Using index_or_range
+1	SIMPLE	t	range_or_index	PRIMARY	PRIMARY	8	NULL	#	Using where; Using index
 explain select * from t where id>0 limit 10;
 id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 1	SIMPLE	t	range	PRIMARY	PRIMARY	8	NULL	#	Using where
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db762.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db762.result
new file mode 100644
index 0000000..159957d
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db762.result
@@ -0,0 +1,7 @@
+drop table if exists t1,t2;
+create table t1 (x int) engine=innodb;
+lock table t1 read;
+create temporary table t2 (x int) engine=tokudb;
+insert into t2 values (1);
+unlock tables;
+drop table t1, t2;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db766.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db766.result
new file mode 100644
index 0000000..bb02229
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db766.result
@@ -0,0 +1,7 @@
+set default_storage_engine=TokuDB;
+drop table if exists t1;
+CREATE TABLE t1(c1 INT,c2 CHAR)PARTITION BY KEY(c1) PARTITIONS 5;
+insert INTO t1 values(1,1),(2,1),(2,2),(2,3);
+ALTER TABLE t1 ADD UNIQUE INDEX i1(c1);
+ERROR 23000: Duplicate entry '2' for key 'i1'
+drop table t1;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db768.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db768.result
new file mode 100644
index 0000000..f302114
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db768.result
@@ -0,0 +1,10 @@
+set default_storage_engine='tokudb';
+drop table if exists t;
+create table t (id int primary key);
+set autocommit=OFF;
+lock tables t write;
+optimize table t;
+Table	Op	Msg_type	Msg_text
+test.t	optimize	status	OK
+unlock tables;
+drop table t;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db771.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db771.result
new file mode 100644
index 0000000..3fc012a
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db771.result
@@ -0,0 +1,11 @@
+set default_storage_engine=tokudb;
+drop table if exists t1;
+CREATE TABLE t1 (a int key, b varchar(32), c varchar(32));
+REPLACE t1 SET a = 4;
+ALTER TABLE t1 CHANGE COLUMN c c VARCHAR(500);
+update t1 set b='hi';
+update t1 set c='there';
+select * from t1;
+a	b	c
+4	hi	there
+drop table t1;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db788-optimize-index-name.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db788-optimize-index-name.result
new file mode 100644
index 0000000..b634466
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db788-optimize-index-name.result
@@ -0,0 +1,16 @@
+set default_storage_engine='tokudb';
+drop table if exists t;
+create table t (a int, b int, c int, primary key(a), key(b), key(c));
+set tokudb_optimize_index_name='primary';
+optimize table t;
+Table	Op	Msg_type	Msg_text
+test.t	optimize	status	OK
+set tokudb_optimize_index_name='b';
+optimize table t;
+Table	Op	Msg_type	Msg_text
+test.t	optimize	status	OK
+set tokudb_optimize_index_name='c';
+optimize table t;
+Table	Op	Msg_type	Msg_text
+test.t	optimize	status	OK
+drop table t;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db801.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db801.result
new file mode 100644
index 0000000..800db69
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db801.result
@@ -0,0 +1,18 @@
+set default_storage_engine=tokudb;
+drop table if exists t;
+create table t (id int not null primary key, c int not null) engine=tokudb;
+insert into t values (1,0);
+begin;
+update t set c=10 where id=1;
+update t set c=100;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+rollback;
+drop table t;
+create table t (id int not null primary key, c int not null) engine=tokudb partition by hash(id) partitions 1;
+insert into t values (1,0);
+begin;
+update t set c=10 where id=1;
+update t set c=100;
+ERROR HY000: Lock wait timeout exceeded; try restarting transaction
+rollback;
+drop table t;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/db817.result b/storage/tokudb/mysql-test/tokudb_bugs/r/db817.result
new file mode 100644
index 0000000..d69f0da
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/r/db817.result
@@ -0,0 +1,33 @@
+drop table if exists ti;
+create table ti (id int primary key) engine=innodb;
+begin;
+insert into ti values (0);
+savepoint b;
+insert into ti values (1);
+savepoint a2;
+insert into ti values (2);
+savepoint b;
+insert into ti values (3);
+rollback to a2;
+commit;
+select * from ti;
+id
+0
+1
+drop table if exists tt;
+create table tt (id int primary key) engine=tokudb;
+begin;
+insert into tt values (0);
+savepoint b;
+insert into tt values (1);
+savepoint a2;
+insert into tt values (2);
+savepoint b;
+insert into tt values (3);
+rollback to a2;
+commit;
+select * from tt;
+id
+0
+1
+drop table ti,tt;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/r/memcache_dirty.result b/storage/tokudb/mysql-test/tokudb_bugs/r/memcache_dirty.result
deleted file mode 100644
index 2ca26cd..0000000
--- a/storage/tokudb/mysql-test/tokudb_bugs/r/memcache_dirty.result
+++ /dev/null
@@ -1,14 +0,0 @@
-SET DEFAULT_STORAGE_ENGINE = 'tokudb';
-DROP TABLE IF EXISTS t1;
-create table t1 (i int, j int, primary key (i))engine=TokuDB;
-insert into t1 values (0,0) MEMCACHE_DIRTY 'a';
-insert into t1 values (1,0) MEMCACHE_DIRTY 'b', 'c';
-update t1 set j=j+1 where i=0 MEMCACHE_DIRTY 'a';
-update t1 set j=j+1 where i=1 MEMCACHE_DIRTY 'b', 'c';
-insert into t1 values (0,0) on duplicate key update j=j+1 MEMCACHE_DIRTY 'a';
-insert into t1 values (2,0) on duplicate key update j=j+1 MEMCACHE_DIRTY 'a', 'b';
-replace into t1 values (0,3) MEMCACHE_DIRTY 'a';
-replace into t1 values (3,3) MEMCACHE_DIRTY 'a', 'b';
-delete from t1 where i=0 MEMCACHE_DIRTY 'a';
-delete from t1 where i=1 MEMCACHE_DIRTY 'b', 'c';
-DROP TABLE t1;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/5585-master.opt b/storage/tokudb/mysql-test/tokudb_bugs/t/5585-master.opt
new file mode 100644
index 0000000..017432e
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/t/5585-master.opt
@@ -0,0 +1 @@
+--tokudb-cache-size=1000000000 --innodb-buffer-pool-size=1000000000
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/5733_tokudb.test b/storage/tokudb/mysql-test/tokudb_bugs/t/5733_tokudb.test
index 2e30c83..192004c 100644
--- a/storage/tokudb/mysql-test/tokudb_bugs/t/5733_tokudb.test
+++ b/storage/tokudb/mysql-test/tokudb_bugs/t/5733_tokudb.test
@@ -20,9 +20,18 @@ while ($i < $n) {
 }
 commit;
 
-# TokuDB may do index or range scan on this. Both are ok
-replace_column 9 #;
---replace_result index index_or_range range index_or_range
+# the plan for the following query should be a range scan.  about 1 of 10 times,
+# the plan is an index scan.  the different scan type occurs because the query optimizer
+# is handed different row counts by tokudb::records_in_range.  the cost estimates made
+# by the query optimizer are very close to begin with.  sometimes, the cost of an index
+# scan is less than the cost of a range scan.
+#
+# if a tokudb checkpoint occurs before this query is run, then the records_in_range
+# function returns a larger than expected row estimate.
+#
+# column 4 is the join type (should be range or index)
+# column 9 is the estimated key count
+replace_column 4 range_or_index 9 #;
 explain select id from t where id>0 limit 10;
 
 replace_column 9 #;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/db762.test b/storage/tokudb/mysql-test/tokudb_bugs/t/db762.test
new file mode 100644
index 0000000..4428e9d
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/t/db762.test
@@ -0,0 +1,13 @@
+# test for DB-762 and DB-767
+source include/have_tokudb.inc;
+source include/have_innodb.inc;
+disable_warnings;
+drop table if exists t1,t2;
+enable_warnings;
+create table t1 (x int) engine=innodb;
+lock table t1 read;
+create temporary table t2 (x int) engine=tokudb;
+insert into t2 values (1);
+unlock tables;
+drop table t1, t2;
+
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/db766.test b/storage/tokudb/mysql-test/tokudb_bugs/t/db766.test
new file mode 100644
index 0000000..e9d17d2
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/t/db766.test
@@ -0,0 +1,12 @@
+# reproducer for DB-766
+source include/have_tokudb.inc;
+source include/have_partition.inc;
+set default_storage_engine=TokuDB;
+disable_warnings;
+drop table if exists t1;
+enable_warnings;
+CREATE TABLE t1(c1 INT,c2 CHAR)PARTITION BY KEY(c1) PARTITIONS 5;
+insert INTO t1 values(1,1),(2,1),(2,2),(2,3);
+--error ER_DUP_ENTRY
+ALTER TABLE t1 ADD UNIQUE INDEX i1(c1);
+drop table t1;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/db768.test b/storage/tokudb/mysql-test/tokudb_bugs/t/db768.test
new file mode 100644
index 0000000..be2155f
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/t/db768.test
@@ -0,0 +1,12 @@
+# test case for DB-768
+source include/have_tokudb.inc;
+set default_storage_engine='tokudb';
+disable_warnings;
+drop table if exists t;
+enable_warnings;
+create table t (id int primary key);
+set autocommit=OFF;
+lock tables t write;
+optimize table t;
+unlock tables;
+drop table t;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/db771.test b/storage/tokudb/mysql-test/tokudb_bugs/t/db771.test
new file mode 100644
index 0000000..039ad74
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/t/db771.test
@@ -0,0 +1,13 @@
+# test case for DB-771
+source include/have_tokudb.inc;
+set default_storage_engine=tokudb;
+disable_warnings;
+drop table if exists t1;
+enable_warnings;
+CREATE TABLE t1 (a int key, b varchar(32), c varchar(32));
+REPLACE t1 SET a = 4;
+ALTER TABLE t1 CHANGE COLUMN c c VARCHAR(500);
+update t1 set b='hi';
+update t1 set c='there';
+select * from t1;
+drop table t1;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/db788-optimize-index-name.test b/storage/tokudb/mysql-test/tokudb_bugs/t/db788-optimize-index-name.test
new file mode 100644
index 0000000..644f00a
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/t/db788-optimize-index-name.test
@@ -0,0 +1,21 @@
+# test tokudb_optimize_index_name session variable
+set default_storage_engine='tokudb';
+source include/have_tokudb.inc;
+disable_warnings;
+drop table if exists t;
+enable_warnings;
+
+create table t (a int, b int, c int, primary key(a), key(b), key(c));
+# optimize primary key
+set tokudb_optimize_index_name='primary';
+optimize table t;
+
+# optimize key b
+set tokudb_optimize_index_name='b';
+optimize table t;
+
+# optimize key c
+set tokudb_optimize_index_name='c';
+optimize table t;
+
+drop table t;
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/db801.test b/storage/tokudb/mysql-test/tokudb_bugs/t/db801.test
new file mode 100644
index 0000000..8a8fcea
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/t/db801.test
@@ -0,0 +1,50 @@
+# test for the DB-801 bug on mysql-5.5.41
+source include/have_tokudb.inc;
+source include/have_partition.inc;
+set default_storage_engine=tokudb;
+
+disable_warnings;
+drop table if exists t;
+enable_warnings;
+
+# run the test on a tokudb table
+create table t (id int not null primary key, c int not null) engine=tokudb;
+
+insert into t values (1,0);
+
+connect(conn1,localhost,root,,);
+connection default;
+begin;
+update t set c=10 where id=1;
+
+connection conn1;
+--error ER_LOCK_WAIT_TIMEOUT
+update t set c=100;
+
+connection default;
+rollback;
+disconnect conn1;
+
+drop table t;
+
+# run the test on a partitioned tokudb table
+create table t (id int not null primary key, c int not null) engine=tokudb partition by hash(id) partitions 1;
+
+insert into t values (1,0);
+
+connect(conn1,localhost,root,,);
+connection default;
+begin;
+update t set c=10 where id=1;
+
+connection conn1;
+--error ER_LOCK_WAIT_TIMEOUT
+update t set c=100;
+
+connection default;
+rollback;
+disconnect conn1;
+
+drop table t;
+
+
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/db817.test b/storage/tokudb/mysql-test/tokudb_bugs/t/db817.test
new file mode 100644
index 0000000..53c9edc
--- /dev/null
+++ b/storage/tokudb/mysql-test/tokudb_bugs/t/db817.test
@@ -0,0 +1,38 @@
+# verify that duplicate savepoint names in innodb and tokudb work the same
+source include/have_innodb.inc;
+source include/have_tokudb.inc;
+disable_warnings;
+drop table if exists ti;
+enable_warnings;
+create table ti (id int primary key) engine=innodb;
+begin;
+insert into ti values (0);
+savepoint b;
+insert into ti values (1);
+savepoint a2;
+insert into ti values (2);
+savepoint b;
+insert into ti values (3);
+rollback to a2;
+commit;
+select * from ti;
+
+disable_warnings;
+drop table if exists tt;
+enable_warnings;
+create table tt (id int primary key) engine=tokudb;
+begin;
+insert into tt values (0);
+savepoint b;
+insert into tt values (1);
+savepoint a2;
+insert into tt values (2);
+savepoint b;
+insert into tt values (3);
+rollback to a2;
+commit;
+select * from tt;
+
+drop table ti,tt;
+
+
diff --git a/storage/tokudb/mysql-test/tokudb_bugs/t/memcache_dirty.test b/storage/tokudb/mysql-test/tokudb_bugs/t/memcache_dirty.test
deleted file mode 100644
index e66c4cf..0000000
--- a/storage/tokudb/mysql-test/tokudb_bugs/t/memcache_dirty.test
+++ /dev/null
@@ -1,25 +0,0 @@
---source include/have_tokudb.inc
-#
-# Record inconsistency.
-#
-#
-SET DEFAULT_STORAGE_ENGINE = 'tokudb';
-
---disable_warnings
-DROP TABLE IF EXISTS t1;
---enable_warnings
-create table t1 (i int, j int, primary key (i))engine=TokuDB;
-insert into t1 values (0,0) MEMCACHE_DIRTY 'a'; insert into t1 values (1,0) MEMCACHE_DIRTY 'b', 'c';
-
-update t1 set j=j+1 where i=0 MEMCACHE_DIRTY 'a'; update t1 set j=j+1 where i=1 MEMCACHE_DIRTY 'b', 'c';
-
-insert into t1 values (0,0) on duplicate key update j=j+1 MEMCACHE_DIRTY 'a'; insert into t1 values (2,0) on duplicate key update j=j+1 MEMCACHE_DIRTY 'a', 'b';
-
-replace into t1 values (0,3) MEMCACHE_DIRTY 'a'; replace into t1 values (3,3) MEMCACHE_DIRTY 'a', 'b';
-
-delete from t1 where i=0 MEMCACHE_DIRTY 'a'; delete from t1 where i=1 MEMCACHE_DIRTY 'b', 'c';
-
- 
-# Final cleanup.
-DROP TABLE t1;
-
diff --git a/storage/tokudb/scripts/common.sh b/storage/tokudb/scripts/common.sh
index fc676ce..fe39b9f 100644
--- a/storage/tokudb/scripts/common.sh
+++ b/storage/tokudb/scripts/common.sh
@@ -131,11 +131,20 @@ function parse_mysqlbuild() {
         tokudb_version=${BASH_REMATCH[6]}
         target_system=${BASH_REMATCH[7]}
         target_arch=${BASH_REMATCH[8]}
+
         # verify targets
         if [ $target_system != $system ] ; then exitcode=1; fi
         if [ $target_arch != $arch ] ; then exitcode=1; fi
 
+        # split the version string into major.minor.patch
+        if [[ $mysql_version =~ ^([0-9]+)\.([0-9]+)\.([0-9]+.*) ]] ; then
+            mysql_version_major=${BASH_REMATCH[1]}
+            mysql_version_minor=${BASH_REMATCH[2]}
+            mysql_version_patch=${BASH_REMATCH[3]}
+        fi
+
         local temp_tokudb_version=$tokudb_version
+
         # decode enterprise
         if [[ $temp_tokudb_version =~ (.*)-e$ ]] ; then
             build_type=enterprise
@@ -143,6 +152,7 @@ function parse_mysqlbuild() {
         else
             build_type=community
         fi
+
         # decode debug
         if [[ $temp_tokudb_version =~ (.*)-debug$ ]] ; then
             build_debug=1
@@ -151,8 +161,9 @@ function parse_mysqlbuild() {
         else
             build_debug=0
         fi
+
         # set tag or HEAD
-        if [[ $temp_tokudb_version =~ ^([0-9]+)\\.([0-9]+)\\.([0-9]+) ]] ; then
+        if [[ $temp_tokudb_version =~ ^([0-9]+)\.([0-9]+)\.([0-9]+) ]] ; then
             git_tag=tokudb-$temp_tokudb_version
         else
             git_tag=HEAD
@@ -160,6 +171,8 @@ function parse_mysqlbuild() {
             if [ -z $mysql_tree ] ; then mysql_tree=$mysql_distro-$mysql_version; fi
             if [ -z $jemalloc_tree ] ; then jemalloc_tree=$jemalloc_version; fi
         fi
+
+        # set repository
         mysql_repo=$mysql_distro
         if [[ $mysql_version =~ ^([0-9]+\.[0-9]+) ]] ; then mysql_repo=$mysql_distro-${BASH_REMATCH[1]}; else exitcode=1; fi
     else
@@ -174,6 +187,15 @@ function parse_mysql() {
     if [[ $mysql =~ ^(mysql|mariadb)-(.*)$ ]] ; then
         mysql_distro=${BASH_REMATCH[1]}
         mysql_version=${BASH_REMATCH[2]}
+
+        # split the version string into major.minor.patch
+        if [[ $mysql_version =~ ^([0-9]+)\.([0-9]+)\.([0-9]+.*) ]] ; then
+            mysql_version_major=${BASH_REMATCH[1]}
+            mysql_version_minor=${BASH_REMATCH[2]}
+            mysql_version_patch=${BASH_REMATCH[3]}
+        fi
+
+        # set repository
         mysql_repo=$mysql_distro
         if [[ $mysql_version =~ ^([0-9]+\.[0-9]+) ]] ; then mysql_repo=$mysql_distro-${BASH_REMATCH[1]}; else exitcode=1; fi
         exitcode=0
diff --git a/storage/tokudb/scripts/make.mysql.bash b/storage/tokudb/scripts/make.mysql.bash
index 5654c1c..c125979 100755
--- a/storage/tokudb/scripts/make.mysql.bash
+++ b/storage/tokudb/scripts/make.mysql.bash
@@ -103,10 +103,23 @@ fi
 cd $mysql_distro-$mysql_version
 if [ $? != 0 ] ; then exit 1; fi
 
+# extract mysql version patch number only
+if [[ $mysql_version_patch =~ ^([0-9]+) ]] ; then p=${BASH_REMATCH[1]}; else p=$mysql_version_patch; fi
+
 # install the backup source
-if [ ! -d toku_backup ] ; then
+tokudb_backup=
+if [ $mysql_version_major -eq 5 -a $mysql_version_minor -eq 5 -a $p -le 40 ] ; then
+    tokudb_backup=patch
     github_download Tokutek/backup-$build_type $(git_tree $git_tag $backup_tree) backup-$build_type
     cp -r backup-$build_type/backup toku_backup
+elif [ $build_type = enterprise ] ; then
+    tokudb_backup=plugin
+    github_download Tokutek/tokudb-backup-plugin $(git_tree $git_tag $backup_tree) tokudb-backup-plugin
+    mv tokudb-backup-plugin plugin
+    github_download Tokutek/backup-enterprise $(git_tree $git_tag $backup_tree) backup-enterprise
+    rm -rf plugin/tokudb-backup-plugin/backup
+    mv backup-enterprise/backup plugin/tokudb-backup-plugin
+    rm -rf backup-enterprise
 fi
 
 if [ ! -d tokudb-engine ] ; then
@@ -153,6 +166,7 @@ function generate_cmake_cmd () {
 
     echo -n CC=$cc CXX=$cxx cmake \
         -D BUILD_CONFIG=mysql_release \
+        -D MYSQL_MAINTAINER_MODE=OFF \
         -D CMAKE_BUILD_TYPE=$cmake_build_type \
         -D CMAKE_TOKUDB_REVISION=$ft_revision \
         -D TOKUDB_VERSION=tokudb-${tokudb_version} \
diff --git a/storage/tokudb/scripts/make.mysql.debug.env.bash b/storage/tokudb/scripts/make.mysql.debug.env.bash
index b7c270c..3f8b4e6 100755
--- a/storage/tokudb/scripts/make.mysql.debug.env.bash
+++ b/storage/tokudb/scripts/make.mysql.debug.env.bash
@@ -55,14 +55,14 @@ function github_clone() {
 
 git_tag=
 mysql=mysql-5.5
-mysql_tree=mysql-5.5.35
+mysql_tree=mysql-5.5.41
 jemalloc=jemalloc
 jemalloc_tree=3.6.0
 tokudbengine=tokudb-engine
 tokudbengine_tree=master
 ftindex=ft-index
 ftindex_tree=master
-backup=backup-community
+backup=tokudb-backup-plugin
 backup_tree=master
 cc=gcc
 cxx=g++
@@ -119,9 +119,9 @@ if [ $? != 0 ] ; then exit 1; fi
 ln -s ../../$tokudbengine/storage/tokudb tokudb
 if [ $? != 0 ] ; then exit 1; fi
 popd
-pushd $mysql_tree
+pushd $mysql_tree/plugin
 if [ $? != 0 ] ; then exit 1; fi
-ln -s ../$backup/backup toku_backup
+ln -s ../../$backup $backup
 if [ $? != 0 ] ; then exit 1; fi
 popd
 pushd $mysql_tree/scripts
@@ -148,13 +148,15 @@ fi
 pushd $build_dir
 if [ $? != 0 ] ; then exit 1; fi
 extra_cmake_options="-DCMAKE_LINK_DEPENDS_NO_SHARED=ON"
+extra_cmake_options+=" -DBUILD_TESTING=OFF"
+extra_cmake_options+=" -DMYSQL_MAINTAINER_MODE=OFF"
 if (( $cmake_valgrind )) ; then
     extra_cmake_options+=" -DUSE_VALGRIND=ON"
 fi
 if (( $cmake_debug_paranoid )) ; then
     extra_cmake_options+=" -DTOKU_DEBUG_PARANOID=ON"
 fi
-CC=$cc CXX=$cxx cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$install_dir -DBUILD_TESTING=OFF $extra_cmake_options ../$mysql_tree
+CC=$cc CXX=$cxx cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$install_dir $extra_cmake_options ../$mysql_tree
 if [ $? != 0 ] ; then exit 1; fi
 make -j4 install
 if [ $? != 0 ] ; then exit 1; fi
diff --git a/storage/tokudb/tokudb_card.h b/storage/tokudb/tokudb_card.h
index 797c705..22e6fb9 100644
--- a/storage/tokudb/tokudb_card.h
+++ b/storage/tokudb/tokudb_card.h
@@ -218,15 +218,32 @@ namespace tokudb {
         return error;
     }
 
+    struct analyze_card_cursor_callback_extra {
+        int (*analyze_progress)(void *extra, uint64_t rows);
+        void *analyze_extra;
+        uint64_t *rows;
+        uint64_t *deleted_rows;
+    };
+
+    bool analyze_card_cursor_callback(void *extra, uint64_t deleted_rows) {
+        analyze_card_cursor_callback_extra *a_extra = static_cast<analyze_card_cursor_callback_extra *>(extra);
+        *a_extra->deleted_rows += deleted_rows;
+        int r = a_extra->analyze_progress(a_extra->analyze_extra, *a_extra->rows);
+        sql_print_information("tokudb analyze_card_cursor_callback %u %" PRIu64 " %" PRIu64, r, *a_extra->deleted_rows, deleted_rows);
+        return r != 0;
+    }
+
     // Compute records per key for all key parts of the ith key of the table.
     // For each key part, put records per key part in *rec_per_key_part[key_part_index].
     // Returns 0 if success, otherwise an error number.
     // TODO statistical dives into the FT
     int analyze_card(DB *db, DB_TXN *txn, bool is_unique, uint64_t num_key_parts, uint64_t *rec_per_key_part,
                      int (*key_compare)(DB *, const DBT *, const DBT *, uint),
-                     int (*analyze_progress)(void *extra, uint64_t rows), void *progress_extra) {
+                     int (*analyze_progress)(void *extra, uint64_t rows), void *progress_extra,
+                     uint64_t *return_rows, uint64_t *return_deleted_rows) {
         int error = 0;
         uint64_t rows = 0;
+        uint64_t deleted_rows = 0;
         uint64_t unique_rows[num_key_parts];
         if (is_unique && num_key_parts == 1) {
             // dont compute for unique keys with a single part.  we already know the answer.
@@ -235,6 +252,8 @@ namespace tokudb {
             DBC *cursor = NULL;
             error = db->cursor(db, txn, &cursor, 0);
             if (error == 0) {
+                analyze_card_cursor_callback_extra e = { analyze_progress, progress_extra, &rows, &deleted_rows };
+                cursor->c_set_check_interrupt_callback(cursor, analyze_card_cursor_callback, &e);
                 for (uint64_t i = 0; i < num_key_parts; i++)
                     unique_rows[i] = 1;
                 // stop looking when the entire dictionary was analyzed, or a cap on execution time was reached, or the analyze was killed.
@@ -243,8 +262,8 @@ namespace tokudb {
                 while (1) {
                     error = cursor->c_get(cursor, &key, 0, DB_NEXT);
                     if (error != 0) {
-                        if (error == DB_NOTFOUND)
-                        error = 0; // eof is not an error
+                        if (error == DB_NOTFOUND || error == TOKUDB_INTERRUPTED)
+                            error = 0; // not an error
                         break;
                     }
                     rows++;
@@ -287,10 +306,12 @@ namespace tokudb {
             }
         }
         // return cardinality
-        if (error == 0 || error == ETIME) {
-            for (uint64_t i = 0; i < num_key_parts; i++)
-                rec_per_key_part[i]  = rows / unique_rows[i];
-        }
+        if (return_rows)
+            *return_rows = rows;
+        if (return_deleted_rows)
+            *return_deleted_rows = deleted_rows;
+        for (uint64_t i = 0; i < num_key_parts; i++)
+            rec_per_key_part[i]  = rows / unique_rows[i];
         return error;
     }
 }
diff --git a/storage/tokudb/tokudb_update_fun.cc b/storage/tokudb/tokudb_update_fun.cc
index 3ab7510..9754dc9 100644
--- a/storage/tokudb/tokudb_update_fun.cc
+++ b/storage/tokudb/tokudb_update_fun.cc
@@ -851,7 +851,7 @@ static int tokudb_expand_variable_offsets(
     DBT new_val; memset(&new_val, 0, sizeof new_val);
 
     if (old_val != NULL) {
-        assert(offset_start + number_of_offsets < old_val->size);
+        assert(offset_start + number_of_offsets <= old_val->size);
     
         // compute the new val from the old val
         uchar *old_val_ptr = (uchar *)old_val->data;
diff --git a/storage/xtradb/CMakeLists.txt b/storage/xtradb/CMakeLists.txt
index 50f0515..1c3bf76 100644
--- a/storage/xtradb/CMakeLists.txt
+++ b/storage/xtradb/CMakeLists.txt
@@ -330,6 +330,14 @@ SET(INNOBASE_SOURCES	btr/btr0btr.c btr/btr0cur.c btr/btr0pcur.c btr/btr0sea.c
 			ut/ut0byte.c ut/ut0dbg.c ut/ut0list.c ut/ut0mem.c ut/ut0rbt.c ut/ut0rnd.c
 			ut/ut0ut.c ut/ut0vec.c ut/ut0wqueue.c ut/ut0bh.c)
 
+# These files have unused result errors, so we skip Werror
+CHECK_C_COMPILER_FLAG("-Werror" HAVE_WERROR)
+IF(HAVE_WERROR)
+  INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake)
+  ADD_COMPILE_FLAGS(page/page0zip.c COMPILE_FLAGS "-Wno-error")
+  ADD_COMPILE_FLAGS(ut/ut0ut.c      COMPILE_FLAGS "-Wno-error")
+ENDIF()
+
 IF(WITH_INNODB)
   # Legacy option
   SET(WITH_INNOBASE_STORAGE_ENGINE TRUE)
diff --git a/storage/xtradb/dict/dict0dict.c b/storage/xtradb/dict/dict0dict.c
index cf246bc..bd0fdf6 100644
--- a/storage/xtradb/dict/dict0dict.c
+++ b/storage/xtradb/dict/dict0dict.c
@@ -42,6 +42,12 @@ UNIV_INTERN dict_index_t*	dict_ind_compact;
 UNIV_INTERN uint	ibuf_debug;
 #endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
 
+/**********************************************************************
+Issue a warning that the row is too big. */
+void
+ib_warn_row_too_big(const dict_table_t*	table);
+
+
 #ifndef UNIV_HOTBACKUP
 #include "buf0buf.h"
 #include "data0type.h"
@@ -1892,11 +1898,18 @@ dict_index_add_to_cache(
 
 	new_index->n_fields = new_index->n_def;
 
-	if (strict && dict_index_too_big_for_tree(table, new_index)) {
+	if (dict_index_too_big_for_tree(table, new_index)) {
+
+		if (strict) {
 too_big:
-		dict_mem_index_free(new_index);
-		dict_mem_index_free(index);
-		return(DB_TOO_BIG_RECORD);
+			dict_mem_index_free(new_index);
+			dict_mem_index_free(index);
+			return(DB_TOO_BIG_RECORD);
+		} else {
+
+			ib_warn_row_too_big(table);
+
+		}
 	}
 
 	if (UNIV_UNLIKELY(index->type & DICT_UNIVERSAL)) {
@@ -2650,8 +2663,17 @@ dict_foreign_remove_from_cache(
 			       foreign);
 
 		rbt = foreign->referenced_table->referenced_rbt;
-		if (rbt != NULL) {
-			rbt_delete(rbt, foreign->id);
+		if (rbt != NULL && foreign->id != NULL) {
+			const ib_rbt_node_t*	node
+				= rbt_lookup(rbt, foreign->id);
+
+			if (node) {
+				dict_foreign_t*	val = *(dict_foreign_t**) node->value;
+
+				if (val == foreign) {
+					rbt_delete(rbt, foreign->id);
+				}
+			}
 		}
 	}
 
@@ -2663,8 +2685,17 @@ dict_foreign_remove_from_cache(
 			       foreign);
 		rbt = foreign->foreign_table->foreign_rbt;
 
-		if (rbt != NULL) {
-			rbt_delete(rbt, foreign->id);
+		if (rbt != NULL && foreign->id != NULL) {
+			const ib_rbt_node_t*	node
+				= rbt_lookup(rbt, foreign->id);
+
+			if (node) {
+				dict_foreign_t*	val = *(dict_foreign_t**) node->value;
+
+				if (val == foreign) {
+					rbt_delete(rbt, foreign->id);
+				}
+			}
 		}
 	}
 
@@ -6031,11 +6062,11 @@ dict_set_corrupted(
 
 	dict_index_copy_types(tuple, sys_index, 2);
 
-	btr_cur_search_to_nth_level(sys_index, 0, tuple, PAGE_CUR_GE,
+	btr_cur_search_to_nth_level(sys_index, 0, tuple, PAGE_CUR_LE,
 				    BTR_MODIFY_LEAF,
 				    &cursor, 0, __FILE__, __LINE__, &mtr);
 
-	if (cursor.up_match == dtuple_get_n_fields(tuple)) {
+	if (cursor.low_match == dtuple_get_n_fields(tuple)) {
 		/* UPDATE SYS_INDEXES SET TYPE=index->type
 		WHERE TABLE_ID=index->table->id AND INDEX_ID=index->id */
 		ulint	len;
diff --git a/storage/xtradb/handler/ha_innodb.cc b/storage/xtradb/handler/ha_innodb.cc
index e4f5e08..ac883e9 100644
--- a/storage/xtradb/handler/ha_innodb.cc
+++ b/storage/xtradb/handler/ha_innodb.cc
@@ -6064,12 +6064,15 @@ ha_innobase::innobase_lock_autoinc(void)
 		break;
 
 	case AUTOINC_NEW_STYLE_LOCKING:
-		/* For simple (single/multi) row INSERTs, we fallback to the
-		old style only if another transaction has already acquired
-		the AUTOINC lock on behalf of a LOAD FILE or INSERT ... SELECT
-		etc. type of statement. */
+		/* For simple (single/multi) row INSERTs/REPLACEs and RBR
+		events, we fallback to the old style only if another
+		transaction has already acquired the AUTOINC lock on
+		behalf of a LOAD FILE or INSERT ... SELECT etc. type of
+		statement. */
 		if (thd_sql_command(user_thd) == SQLCOM_INSERT
-		    || thd_sql_command(user_thd) == SQLCOM_REPLACE) {
+		    || thd_sql_command(user_thd) == SQLCOM_REPLACE
+		    || thd_sql_command(user_thd) == SQLCOM_END // RBR event
+		) {
 			dict_table_t*	table = prebuilt->table;
 
 			/* Acquire the AUTOINC mutex. */
@@ -6078,9 +6081,11 @@ ha_innobase::innobase_lock_autoinc(void)
 			/* We need to check that another transaction isn't
 			already holding the AUTOINC lock on the table. */
 			if (table->n_waiting_or_granted_auto_inc_locks) {
-				/* Release the mutex to avoid deadlocks. */
+				/* Release the mutex to avoid deadlocks and
+				fall back to old style locking. */
 				dict_table_autoinc_unlock(table);
 			} else {
+				/* Do not fall back to old style locking. */
 				break;
 			}
 		}
@@ -10457,6 +10462,7 @@ ha_innobase::start_stmt(
 	thr_lock_type	lock_type)
 {
 	trx_t*		trx;
+	DBUG_ENTER("ha_innobase::start_stmt");
 
 	update_thd(thd);
 
@@ -10479,6 +10485,28 @@ ha_innobase::start_stmt(
 	prebuilt->hint_need_to_fetch_extra_cols = 0;
 	reset_template();
 
+	if (dict_table_is_temporary(prebuilt->table)
+	    && prebuilt->mysql_has_locked
+	    && prebuilt->select_lock_type == LOCK_NONE) {
+		ulint error;
+
+		switch (thd_sql_command(thd)) {
+		case SQLCOM_INSERT:
+		case SQLCOM_UPDATE:
+		case SQLCOM_DELETE:
+			init_table_handle_for_HANDLER();
+			prebuilt->select_lock_type = LOCK_X;
+			error = row_lock_table_for_mysql(prebuilt, NULL, 1);
+
+			if (error != DB_SUCCESS) {
+				error = convert_error_code_to_mysql(
+					(int) error, 0, thd);
+				DBUG_RETURN((int) error);
+			}
+			break;
+		}
+	}
+
 	if (!prebuilt->mysql_has_locked) {
 		/* This handle is for a temporary table created inside
 		this same LOCK TABLES; since MySQL does NOT call external_lock
@@ -10511,7 +10539,7 @@ ha_innobase::start_stmt(
 
 	innobase_register_trx(ht, thd, trx);
 
-	return(0);
+	DBUG_RETURN(0);
 }
 
 /******************************************************************//**
@@ -11690,10 +11718,8 @@ ha_innobase::cmp_ref(
 			len1 = innobase_read_from_2_little_endian(ref1);
 			len2 = innobase_read_from_2_little_endian(ref2);
 
-			ref1 += 2;
-			ref2 += 2;
-			result = ((Field_blob*)field)->cmp( ref1, len1,
-                                                            ref2, len2);
+			result = ((Field_blob*)field)->cmp(ref1 + 2, len1,
+							   ref2 + 2, len2);
 		} else {
 			result = field->key_cmp(ref1, ref2);
 		}
@@ -13958,6 +13984,37 @@ innobase_convert_to_filename_charset(
 }
 
 
+/**********************************************************************
+Issue a warning that the row is too big. */
+extern "C" UNIV_INTERN
+void
+ib_warn_row_too_big(const dict_table_t*	table)
+{
+	/* If prefix is true then a 768-byte prefix is stored
+	locally for BLOB fields. Refer to dict_table_get_format() */
+	const bool	prefix = ((table->flags & DICT_TF_FORMAT_MASK)
+				  >> DICT_TF_FORMAT_SHIFT) < UNIV_FORMAT_B;
+
+	const ulint	free_space = page_get_free_space_of_empty(
+		table->flags & DICT_TF_COMPACT) / 2;
+
+	THD*	thd = current_thd;
+
+	if (thd == NULL) {
+		return;
+	}
+
+	push_warning_printf(
+		thd, MYSQL_ERROR::WARN_LEVEL_WARN, HA_ERR_TO_BIG_ROW,
+		"Row size too large (> %lu). Changing some columns to TEXT"
+		" or BLOB %smay help. In current row format, BLOB prefix of"
+		" %d bytes is stored inline.", free_space
+		, prefix ? "or using ROW_FORMAT=DYNAMIC or"
+		" ROW_FORMAT=COMPRESSED ": ""
+		, prefix ? DICT_MAX_FIXED_COL_LEN : 0);
+}
+
+
 /****************************************************************************
  * DS-MRR implementation 
  ***************************************************************************/
diff --git a/storage/xtradb/ibuf/ibuf0ibuf.c b/storage/xtradb/ibuf/ibuf0ibuf.c
index e04b6ac..7811b6b 100644
--- a/storage/xtradb/ibuf/ibuf0ibuf.c
+++ b/storage/xtradb/ibuf/ibuf0ibuf.c
@@ -2775,6 +2775,12 @@ ibuf_contract_for_n_pages(
 	ulint	n_bytes;
 	ulint	n_pag2;
 
+#if defined UNIV_DEBUG || defined UNIV_IBUF_DEBUG
+	if (ibuf_debug) {
+		return(0);
+	}
+#endif /* UNIV_DEBUG || UNIV_IBUF_DEBUG */
+
 	while (sum_pages < n_pages) {
 		n_bytes = ibuf_contract_ext(&n_pag2, sync);
 
diff --git a/storage/xtradb/include/btr0cur.ic b/storage/xtradb/include/btr0cur.ic
index 5fc4651..5d12210 100644
--- a/storage/xtradb/include/btr0cur.ic
+++ b/storage/xtradb/include/btr0cur.ic
@@ -1,6 +1,6 @@
 /*****************************************************************************
 
-Copyright (c) 1994, 2012, Oracle and/or its affiliates. All Rights Reserved.
+Copyright (c) 1994, 2014, 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
@@ -28,7 +28,7 @@ Created 10/16/1994 Heikki Tuuri
 
 #ifdef UNIV_DEBUG
 # define LIMIT_OPTIMISTIC_INSERT_DEBUG(NREC, CODE)\
-if (btr_cur_limit_optimistic_insert_debug\
+if (btr_cur_limit_optimistic_insert_debug > 1\
     && (NREC) >= (ulint)btr_cur_limit_optimistic_insert_debug) {\
         CODE;\
 }
diff --git a/storage/xtradb/include/dict0dict.h b/storage/xtradb/include/dict0dict.h
index b03d258..3d05f40 100644
--- a/storage/xtradb/include/dict0dict.h
+++ b/storage/xtradb/include/dict0dict.h
@@ -1139,7 +1139,7 @@ recalculated
 */
 #define DICT_TABLE_CHANGED_TOO_MUCH(t) \
 	((ib_int64_t) (t)->stat_modified_counter > (srv_stats_modified_counter ? \
-	ut_min(srv_stats_modified_counter, (16 + (t)->stat_n_rows / 16)) : \
+	(ib_int64_t) ut_min(srv_stats_modified_counter, (16 + (t)->stat_n_rows / 16)) : \
 		16 + (t)->stat_n_rows / 16))
 
 /*********************************************************************//**
@@ -1399,6 +1399,14 @@ dict_table_init_referenced_rbt(
 /*===========================*/
 	dict_table_t*	table);	/*!< in: the table object whose
 				table->referenced_rbt will be initialized */
+/********************************************************************//**
+Check if it is a temporary table.
+ at return        true if temporary table flag is set. */
+UNIV_INLINE
+ibool
+dict_table_is_temporary(
+/*====================*/
+	const dict_table_t*     table);  /*!< in: table to check */
 
 #ifndef UNIV_NONINL
 #include "dict0dict.ic"
diff --git a/storage/xtradb/include/dict0dict.ic b/storage/xtradb/include/dict0dict.ic
index 00ae3d0..6836928 100644
--- a/storage/xtradb/include/dict0dict.ic
+++ b/storage/xtradb/include/dict0dict.ic
@@ -1017,3 +1017,15 @@ dict_table_init_referenced_rbt(
 	ut_a(table->referenced_rbt != NULL);
 	return(table->referenced_rbt);
 }
+
+/********************************************************************//**
+Check if it is a temporary table.
+ at return        true if temporary table flag is set. */
+UNIV_INLINE
+ibool
+dict_table_is_temporary(
+/*====================*/
+	const dict_table_t*     table)  /*!< in: table to check */
+{
+	return(table->flags & (DICT_TF2_TEMPORARY << DICT_TF2_SHIFT));
+}
diff --git a/storage/xtradb/include/os0stacktrace.h b/storage/xtradb/include/os0stacktrace.h
index 58e9a52..e79347c 100644
--- a/storage/xtradb/include/os0stacktrace.h
+++ b/storage/xtradb/include/os0stacktrace.h
@@ -20,7 +20,7 @@ this program; if not, write to the Free Software Foundation, Inc.,
 #ifndef os0stacktrace_h
 #define os0stacktrace_h
 
-#ifdef __linux__
+#if defined (__linux__) && HAVE_BACKTRACE && HAVE_BACKTRACE_SYMBOLS
 #if HAVE_EXECINFO_H
 #include <execinfo.h>
 #endif
@@ -40,5 +40,5 @@ os_stacktrace_print(
 	siginfo_t* info,     /*!< in: signal information */
 	void*      ucontext);/*!< in: signal context */
 
-#endif /*  __linux__ */
+#endif /* defined (__linux__) && HAVE_BACKTRACE && HAVE_BACKTRACE_SYMBOLS */
 #endif /* os0stacktrace.h */
diff --git a/storage/xtradb/include/os0sync.h b/storage/xtradb/include/os0sync.h
index 48b477d..ab7e8ba 100644
--- a/storage/xtradb/include/os0sync.h
+++ b/storage/xtradb/include/os0sync.h
@@ -403,7 +403,7 @@ amount of increment. */
 	atomic_add_long_nv(ptr, amount)
 
 # define os_atomic_increment_uint64(ptr, amount) \
-	atomic_add_64_nv(ptr, amount)
+	atomic_add_64_nv((uint64_t *) ptr, amount)
 
 /**********************************************************//**
 Returns the old value of *ptr, atomically sets *ptr to new_val */
diff --git a/storage/xtradb/include/univ.i b/storage/xtradb/include/univ.i
index af9560d..a377911 100644
--- a/storage/xtradb/include/univ.i
+++ b/storage/xtradb/include/univ.i
@@ -64,10 +64,10 @@ component, i.e. we show M.N.P as M.N */
 	(INNODB_VERSION_MAJOR << 8 | INNODB_VERSION_MINOR)
 
 #ifndef PERCONA_INNODB_VERSION
-#define PERCONA_INNODB_VERSION 36.1
+#define PERCONA_INNODB_VERSION 37.1
 #endif
 
-#define INNODB_VERSION_STR	"5.5.40-MariaDB-" IB_TO_STR(PERCONA_INNODB_VERSION)
+#define INNODB_VERSION_STR	"5.5.42-MariaDB-" IB_TO_STR(PERCONA_INNODB_VERSION)
 
 #define REFMAN "http://dev.mysql.com/doc/refman/"	\
 	IB_TO_STR(MYSQL_MAJOR_VERSION) "."		\
@@ -122,6 +122,10 @@ if we are compiling on Windows. */
 #  include <sched.h>
 # endif
 
+# ifdef HAVE_MALLOC_H
+#  include <malloc.h>
+# endif
+
 /* We only try to do explicit inlining of functions with gcc and
 Sun Studio */
 
diff --git a/storage/xtradb/lock/lock0lock.c b/storage/xtradb/lock/lock0lock.c
index 7330b06..9d0151f 100644
--- a/storage/xtradb/lock/lock0lock.c
+++ b/storage/xtradb/lock/lock0lock.c
@@ -4720,7 +4720,7 @@ loop:
 		}
 	}
 
-        if (!srv_print_innodb_lock_monitor && !srv_show_locks_held) {
+	if (!srv_print_innodb_lock_monitor || !srv_show_locks_held) {
 		nth_trx++;
 		goto loop;
 	}
diff --git a/storage/xtradb/log/log0log.c b/storage/xtradb/log/log0log.c
index ca866ab..bc208f4 100644
--- a/storage/xtradb/log/log0log.c
+++ b/storage/xtradb/log/log0log.c
@@ -260,7 +260,7 @@ log_buffer_extend(
 {
 	ulint	move_start;
 	ulint	move_end;
-	byte	*tmp_buf=alloca(OS_FILE_LOG_BLOCK_SIZE);
+	byte*	tmp_buf = alloca(OS_FILE_LOG_BLOCK_SIZE);
 
 	mutex_enter(&(log_sys->mutex));
 
diff --git a/storage/xtradb/log/log0online.c b/storage/xtradb/log/log0online.c
index 58f86d1..acb3bd5 100644
--- a/storage/xtradb/log/log0online.c
+++ b/storage/xtradb/log/log0online.c
@@ -1817,7 +1817,7 @@ log_online_purge_changed_page_bitmaps(
 		return TRUE;
 	}
 
-	if (srv_track_changed_pages && lsn >= log_bmp_sys->end_lsn) {
+	if (srv_track_changed_pages && lsn > log_bmp_sys->end_lsn) {
 		/* If we have to delete the current output file, close it
 		first. */
 		os_file_close(log_bmp_sys->out.file);
diff --git a/storage/xtradb/log/log0recv.c b/storage/xtradb/log/log0recv.c
index 61239df..cae3642 100644
--- a/storage/xtradb/log/log0recv.c
+++ b/storage/xtradb/log/log0recv.c
@@ -2996,10 +2996,10 @@ recv_recovery_from_checkpoint_start_func(
 #endif /* UNIV_LOG_ARCHIVE */
 	byte*		buf;
 	byte*		log_hdr_buf;
-	byte		*log_hdr_buf_base;
+	byte*		log_hdr_buf_base = alloca(LOG_FILE_HDR_SIZE
+						  + OS_FILE_LOG_BLOCK_SIZE);
 	ulint		err;
 
-        log_hdr_buf_base= alloca(LOG_FILE_HDR_SIZE + OS_FILE_LOG_BLOCK_SIZE);
 	log_hdr_buf = ut_align(log_hdr_buf_base, OS_FILE_LOG_BLOCK_SIZE);
 
 #ifdef UNIV_LOG_ARCHIVE
diff --git a/storage/xtradb/rem/rem0rec.c b/storage/xtradb/rem/rem0rec.c
index d938aa6..69d9e49 100644
--- a/storage/xtradb/rem/rem0rec.c
+++ b/storage/xtradb/rem/rem0rec.c
@@ -830,7 +830,7 @@ rec_get_converted_size_comp_prefix_low(
 		}
 
 		ut_ad(len <= col->len || col->mtype == DATA_BLOB
-		      || (col->len == 0 && col->mtype == DATA_VARCHAR));
+			|| (col->len == 0 && col->mtype == DATA_VARCHAR));
 
 		fixed_len = field->fixed_len;
 		if (temp && fixed_len
@@ -1257,7 +1257,7 @@ rec_convert_dtuple_to_rec_comp(
 			*lens-- = (byte) len;
 		} else {
 			ut_ad(len <= dtype_get_len(type)
-			      || dtype_get_mtype(type) == DATA_BLOB);
+				|| dtype_get_mtype(type) == DATA_BLOB);
 			if (len < 128
 			    || (dtype_get_len(type) < 256
 				&& dtype_get_mtype(type) != DATA_BLOB)) {
diff --git a/storage/xtradb/row/row0mysql.c b/storage/xtradb/row/row0mysql.c
index 7028c51..9496df8 100644
--- a/storage/xtradb/row/row0mysql.c
+++ b/storage/xtradb/row/row0mysql.c
@@ -1,6 +1,6 @@
 /*****************************************************************************
 
-Copyright (c) 2000, 2013, Oracle and/or its affiliates. All Rights Reserved.
+Copyright (c) 2000, 2014, 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
@@ -3227,6 +3227,9 @@ row_drop_table_for_mysql(
 	ulint		namelen;
 	ibool		locked_dictionary	= FALSE;
 	pars_info_t*    info			= NULL;
+	DBUG_ENTER("row_drop_table_for_mysql");
+
+	DBUG_PRINT("row_drop_table_for_mysql", ("table: %s", name));
 
 	ut_a(name != NULL);
 
@@ -3237,7 +3240,7 @@ row_drop_table_for_mysql(
 		      "InnoDB: Shut down mysqld and edit my.cnf so that newraw"
 		      " is replaced with raw.\n", stderr);
 
-		return(DB_ERROR);
+		DBUG_RETURN(DB_ERROR);
 	}
 
 	trx->op_info = "dropping table";
@@ -3644,7 +3647,7 @@ funct_exit:
 
 	srv_wake_master_thread();
 
-	return((int) err);
+	DBUG_RETURN((int) err);
 }
 
 /*********************************************************************//**
diff --git a/storage/xtradb/srv/srv0start.c b/storage/xtradb/srv/srv0start.c
index 7b336c8..39a6193 100644
--- a/storage/xtradb/srv/srv0start.c
+++ b/storage/xtradb/srv/srv0start.c
@@ -123,9 +123,16 @@ UNIV_INTERN enum srv_shutdown_state	srv_shutdown_state = SRV_SHUTDOWN_NONE;
 static os_file_t	files[1000];
 
 /** io_handler_thread parameters for thread identification */
-static ulint		n[SRV_MAX_N_IO_THREADS + 8];
-/** io_handler_thread identifiers */
-static os_thread_id_t	thread_ids[SRV_MAX_N_IO_THREADS + 8];
+static ulint		n[SRV_MAX_N_IO_THREADS];
+/** io_handler_thread identifiers. The extra elements at the end are allocated
+as follows:
+SRV_MAX_N_IO_THREADS + 1: srv_master_thread
+SRV_MAX_N_IO_THREADS + 2: srv_lock_timeout_thread
+SRV_MAX_N_IO_THREADS + 3: srv_error_monitor_thread
+SRV_MAX_N_IO_THREADS + 4: srv_monitor_thread
+SRV_MAX_N_IO_THREADS + 5: srv_LRU_dump_restore_thread
+SRV_MAX_N_IO_THREADS + 6: srv_redo_log_follow_thread */
+static os_thread_id_t	thread_ids[SRV_MAX_N_IO_THREADS + 7];
 
 /** We use this mutex to test the return value of pthread_mutex_trylock
    on successful locking. HP-UX does NOT return 0, though Linux et al do. */
@@ -1194,7 +1201,7 @@ init_log_online(void)
 		/* Create the thread that follows the redo log to output the
 		   changed page bitmap */
 		os_thread_create(&srv_redo_log_follow_thread, NULL,
-				 thread_ids + 5 + SRV_MAX_N_IO_THREADS);
+				 thread_ids + 6 + SRV_MAX_N_IO_THREADS);
 	}
 }
 
@@ -1274,7 +1281,7 @@ innobase_start_or_create_for_mysql(void)
 	stacktrace feature. */
 
 	if (srv_use_stacktrace) {
-#ifdef __linux__
+#if defined (__linux__) && HAVE_BACKTRACE && HAVE_BACKTRACE_SYMBOLS
 		 struct sigaction sigact;
 
 		 sigact.sa_sigaction = os_stacktrace_print;
@@ -1287,7 +1294,7 @@ innobase_start_or_create_for_mysql(void)
 			 srv_use_stacktrace = FALSE;
 
 		 }
-#endif /* __linux__ */
+#endif /* defined (__linux__) && HAVE_BACKTRACE && HAVE_BACKTRACE_SYMBOLS */
 	}
 
 
diff --git a/strings/ctype-uca.c b/strings/ctype-uca.c
index ad484ac..6bc71bc 100644
--- a/strings/ctype-uca.c
+++ b/strings/ctype-uca.c
@@ -7075,7 +7075,25 @@ static int my_uca_scanner_next_any(my_uca_scanner *scanner)
     if (((mb_len= scanner->cs->cset->mb_wc(scanner->cs, &wc, 
                                           scanner->sbeg,
                                           scanner->send)) <= 0))
-      return -1;
+    {
+      if (scanner->sbeg >= scanner->send)
+        return -1; /* No more bytes, end of line reached */
+      /*
+        There are some more bytes left. Non-positive mb_len means that
+        we got an incomplete or a bad byte sequence. Consume mbminlen bytes.
+      */
+      if ((scanner->sbeg+= scanner->cs->mbminlen) > scanner->send)
+      {
+        /* For safety purposes don't go beyond the string range. */
+        scanner->sbeg= scanner->send;
+      }
+      /*
+        Treat every complete or incomplete mbminlen unit as a weight which is
+        greater than weight for any possible normal character.
+        0xFFFF is greater than any possible weight in the UCA weight table.
+      */
+      return 0xFFFF;
+    }
     
     scanner->sbeg+= mb_len;
     if (wc > MAX_UCA_CHAR_WITH_EXPLICIT_WEIGHT)
diff --git a/support-files/build-tags b/support-files/build-tags
index 9c43e02..c37485e 100755
--- a/support-files/build-tags
+++ b/support-files/build-tags
@@ -1,10 +1,10 @@
 #! /bin/sh
 
 rm -f TAGS
-filter='\.cc$\|\.c$\|\.h$\|sql_yacc\.yy$'
+filter='\.cpp$\|\.cc$\|\.c$\|\.h$\|sql_yacc\.yy$\|\.hpp$\|\.ic$'
 
 list="find . -type f"
-bzr root >/dev/null 2>/dev/null && list="bzr ls --from-root -R --kind=file --versioned"
+git rev-parse >/dev/null 2>/dev/null && list="git ls-files"
 
 $list |grep $filter |while read f; 
 do
diff --git a/support-files/mysql.5.5.41.spec b/support-files/mysql.5.5.41.spec
deleted file mode 100644
index 638cc82..0000000
--- a/support-files/mysql.5.5.41.spec
+++ /dev/null
@@ -1,2064 +0,0 @@
-# Copyright (c) 2000, 2013, 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 Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; see the file COPYING. If not, write to the
-# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston
-# MA  02110-1301  USA.
-
-##############################################################################
-# Some common macro definitions
-##############################################################################
-
-# NOTE: "vendor" is used in upgrade/downgrade check, so you can't
-# change these, has to be exactly as is.
-%global mysql_old_vendor        MySQL AB
-%global mysql_vendor_2          Sun Microsystems, Inc.
-%global mysql_vendor            Oracle and/or its affiliates
-
-%global mysql_version   5.5.41
-
-%global mysqld_user     mysql
-%global mysqld_group    mysql
-%global mysqldatadir    /var/lib/mysql
-
-%global release         1 
-
-
-#
-# Macros we use which are not available in all supported versions of RPM
-#
-# - defined/undefined are missing on RHEL4
-#
-%if %{expand:%{?defined:0}%{!?defined:1}}
-%define defined()       %{expand:%%{?%{1}:1}%%{!?%{1}:0}}
-%endif
-%if %{expand:%{?undefined:0}%{!?undefined:1}}
-%define undefined()     %{expand:%%{?%{1}:0}%%{!?%{1}:1}}
-%endif
-
-# ----------------------------------------------------------------------------
-# RPM build tools now automatically detect Perl module dependencies.  This
-# detection causes problems as it is broken in some versions, and it also
-# provides unwanted dependencies from mandatory scripts in our package.
-# It might not be possible to disable this in all versions of RPM, but here we
-# try anyway.  We keep the "AutoReqProv: no" for the "test" sub package, as
-# disabling here might fail, and that package has the most problems.
-# See:
-#  http://fedoraproject.org/wiki/Packaging/Perl#Filtering_Requires:_and_Provides
-#  http://www.wideopen.com/archives/rpm-list/2002-October/msg00343.html
-# ----------------------------------------------------------------------------
-%undefine __perl_provides
-%undefine __perl_requires
-
-##############################################################################
-# Command line handling
-##############################################################################
-#
-# To set options:
-#
-#   $ rpmbuild --define="option <x>" ...
-#
-
-# ----------------------------------------------------------------------------
-# Commercial builds
-# ----------------------------------------------------------------------------
-%if %{undefined commercial}
-%define commercial 0
-%endif
-
-# ----------------------------------------------------------------------------
-# Source name
-# ----------------------------------------------------------------------------
-%if %{undefined src_base}
-%define src_base mysql
-%endif
-%define src_dir %{src_base}-%{mysql_version}
-
-# ----------------------------------------------------------------------------
-# Feature set (storage engines, options).  Default to community (everything)
-# ----------------------------------------------------------------------------
-%if %{undefined feature_set}
-%define feature_set community
-%endif
-
-# ----------------------------------------------------------------------------
-# Server comment strings
-# ----------------------------------------------------------------------------
-%if %{undefined compilation_comment_debug}
-%define compilation_comment_debug       MySQL Community Server - Debug (GPL)
-%endif
-%if %{undefined compilation_comment_release}
-%define compilation_comment_release     MySQL Community Server (GPL)
-%endif
-
-# ----------------------------------------------------------------------------
-# Product and server suffixes
-# ----------------------------------------------------------------------------
-%if %{undefined product_suffix}
-  %if %{defined short_product_tag}
-    %define product_suffix      -%{short_product_tag}
-  %else
-    %define product_suffix      %{nil}
-  %endif
-%endif
-
-%if %{undefined server_suffix}
-%define server_suffix   %{nil}
-%endif
-
-# ----------------------------------------------------------------------------
-# Distribution support
-# ----------------------------------------------------------------------------
-%if %{undefined distro_specific}
-%define distro_specific 0
-%endif
-%if %{distro_specific}
-  %if %(test -f /etc/enterprise-release && echo 1 || echo 0)
-    %define oelver %(rpm -qf --qf '%%{version}\\n' /etc/enterprise-release | sed -e 's/^\\([0-9]*\\).*/\\1/g')
-    %if "%oelver" == "4"
-      %define distro_description        Oracle Enterprise Linux 4
-      %define distro_releasetag         oel4
-      %define distro_buildreq           gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel
-      %define distro_requires           chkconfig coreutils grep procps shadow-utils net-tools
-    %else
-      %if "%oelver" == "5"
-        %define distro_description      Oracle Enterprise Linux 5
-        %define distro_releasetag       oel5
-        %define distro_buildreq         gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel
-        %define distro_requires         chkconfig coreutils grep procps shadow-utils net-tools
-      %else
-        %{error:Oracle Enterprise Linux %{oelver} is unsupported}
-      %endif
-    %endif
-  %else
-    %if %(test -f /etc/oracle-release && echo 1 || echo 0)
-      %define elver %(rpm -qf --qf '%%{version}\\n' /etc/oracle-release | sed -e 's/^\\([0-9]*\\).*/\\1/g')
-      %if "%elver" == "6" || "%elver" == "7"
-        %define distro_description      Oracle Linux %elver
-        %define distro_releasetag       el%elver
-        %define distro_buildreq         gcc-c++ ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel
-        %define distro_requires         chkconfig coreutils grep procps shadow-utils net-tools
-      %else
-        %{error:Oracle Linux %{elver} is unsupported}
-      %endif
-    %else
-      %if %(test -f /etc/redhat-release && echo 1 || echo 0)
-        %define rhelver %(rpm -qf --qf '%%{version}\\n' /etc/redhat-release | sed -e 's/^\\([0-9]*\\).*/\\1/g')
-        %if "%rhelver" == "4"
-          %define distro_description      Red Hat Enterprise Linux 4
-          %define distro_releasetag       rhel4
-          %define distro_buildreq         gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel
-          %define distro_requires         chkconfig coreutils grep procps shadow-utils net-tools
-        %else
-          %if "%rhelver" == "5"
-            %define distro_description    Red Hat Enterprise Linux 5
-            %define distro_releasetag     rhel5
-            %define distro_buildreq       gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel
-            %define distro_requires       chkconfig coreutils grep procps shadow-utils net-tools
-          %else
-            %if "%rhelver" == "6"
-              %define distro_description    Red Hat Enterprise Linux 6
-              %define distro_releasetag     rhel6
-              %define distro_buildreq       gcc-c++ ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel
-              %define distro_requires       chkconfig coreutils grep procps shadow-utils net-tools
-            %else
-              %{error:Red Hat Enterprise Linux %{rhelver} is unsupported}
-            %endif
-          %endif
-        %endif
-      %else
-        %if %(test -f /etc/SuSE-release && echo 1 || echo 0)
-          %define susever %(rpm -qf --qf '%%{version}\\n' /etc/SuSE-release | cut -d. -f1)
-          %if "%susever" == "10"
-            %define distro_description    SUSE Linux Enterprise Server 10
-            %define distro_releasetag     sles10
-            %define distro_buildreq       gcc-c++ gdbm-devel gperf ncurses-devel openldap2-client readline-devel zlib-devel cmake libaio-devel
-            %define distro_requires       aaa_base coreutils grep procps pwdutils
-          %else
-            %if "%susever" == "11"
-              %define distro_description  SUSE Linux Enterprise Server 11
-              %define distro_releasetag   sles11
-              %define distro_buildreq     gcc-c++ gdbm-devel gperf ncurses-devel openldap2-client procps pwdutils readline-devel zlib-devel cmake libaio-devel
-              %define distro_requires     aaa_base coreutils grep procps pwdutils
-            %else
-              %{error:SuSE %{susever} is unsupported}
-            %endif
-          %endif
-        %else
-          %{error:Unsupported distribution}
-        %endif
-      %endif
-    %endif
-  %endif
-%else
-  %define generic_kernel %(uname -r | cut -d. -f1-2)
-  %define distro_description            Generic Linux (kernel %{generic_kernel})
-  %define distro_releasetag             linux%{generic_kernel}
-  %define distro_buildreq               gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel
-  %define distro_requires               coreutils grep procps /sbin/chkconfig /usr/sbin/useradd /usr/sbin/groupadd
-%endif
-
-# Avoid debuginfo RPMs, leaves binaries unstripped
-%define debug_package   %{nil}
-
-# Hack to work around bug in RHEL5 __os_install_post macro, wrong inverted
-# test for __debug_package
-%define __strip         /bin/true
-
-# ----------------------------------------------------------------------------
-# Support optional "tcmalloc" library (experimental)
-# ----------------------------------------------------------------------------
-%if %{defined malloc_lib_target}
-%define WITH_TCMALLOC 1
-%else
-%define WITH_TCMALLOC 0
-%endif
-
-##############################################################################
-# Configuration based upon above user input, not to be set directly
-##############################################################################
-
-%if 0%{?commercial}
-%define license_files_server    %{src_dir}/LICENSE.mysql
-%define license_type            Commercial
-%else
-%define license_files_server    %{src_dir}/COPYING %{src_dir}/README
-%define license_type            GPL
-%endif
-
-##############################################################################
-# Main spec file section
-##############################################################################
-
-Name:           MySQL%{product_suffix}
-Summary:        MySQL: a very fast and reliable SQL database server
-Group:          Applications/Databases
-Version:        5.5.41
-Release:        %{release}%{?distro_releasetag:.%{distro_releasetag}}
-Distribution:   %{distro_description}
-License:        Copyright (c) 2000, 2014, %{mysql_vendor}. All rights reserved. Under %{license_type} license as shown in the Description field.
-Source:         http://www.mysql.com/Downloads/MySQL-5.5/%{src_dir}.tar.gz
-URL:            http://www.mysql.com/
-Packager:       MySQL Release Engineering <mysql-build at oss.oracle.com> 
-Vendor:         %{mysql_vendor}
-BuildRequires:  %{distro_buildreq}
-%{?el7:Patch0:         mysql-5.5-libmysqlclient-symbols.patch}
-
-# Regression tests may take a long time, override the default to skip them 
-%{!?runselftest:%global runselftest 1}
-
-# Think about what you use here since the first step is to
-# run a rm -rf
-BuildRoot:    %{_tmppath}/%{name}-%{version}-build
-
-# From the manual
-%description
-The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
-and robust SQL (Structured Query Language) database server. MySQL Server
-is intended for mission-critical, heavy-load production systems as well
-as for embedding into mass-deployed software. MySQL is a trademark of
-%{mysql_vendor}
-
-The MySQL software has Dual Licensing, which means you can use the MySQL
-software free of charge under the GNU General Public License
-(http://www.gnu.org/licenses/). You can also purchase commercial MySQL
-licenses from %{mysql_vendor} if you do not wish to be bound by the terms of
-the GPL. See the chapter "Licensing and Support" in the manual for
-further info.
-
-The MySQL web site (http://www.mysql.com/) provides the latest
-news and information about the MySQL software. Also please see the
-documentation and the manual for more information.
-
-##############################################################################
-# Sub package definition
-##############################################################################
-
-%package -n MySQL-server%{product_suffix}
-Summary:        MySQL: a very fast and reliable SQL database server
-Group:          Applications/Databases
-Requires:       %{distro_requires}
-%if 0%{?commercial}
-Obsoletes:      MySQL-server
-%else
-Obsoletes:      MySQL-server-advanced
-%endif
-Obsoletes:      mysql-server < %{version}-%{release}
-Obsoletes:      mysql-server-advanced
-Obsoletes:      MySQL-server-classic MySQL-server-community MySQL-server-enterprise
-Obsoletes:      MySQL-server-advanced-gpl MySQL-server-enterprise-gpl
-Provides:       mysql-server = %{version}-%{release}
-Provides:       mysql-server%{?_isa} = %{version}-%{release}
-
-%description -n MySQL-server%{product_suffix}
-The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
-and robust SQL (Structured Query Language) database server. MySQL Server
-is intended for mission-critical, heavy-load production systems as well
-as for embedding into mass-deployed software. MySQL is a trademark of
-%{mysql_vendor}
-
-The MySQL software has Dual Licensing, which means you can use the MySQL
-software free of charge under the GNU General Public License
-(http://www.gnu.org/licenses/). You can also purchase commercial MySQL
-licenses from %{mysql_vendor} if you do not wish to be bound by the terms of
-the GPL. See the chapter "Licensing and Support" in the manual for
-further info.
-
-The MySQL web site (http://www.mysql.com/) provides the latest news and 
-information about the MySQL software.  Also please see the documentation
-and the manual for more information.
-
-This package includes the MySQL server binary as well as related utilities
-to run and administer a MySQL server.
-
-If you want to access and work with the database, you have to install
-package "MySQL-client%{product_suffix}" as well!
-
-# ----------------------------------------------------------------------------
-%package -n MySQL-client%{product_suffix}
-Summary:        MySQL - Client
-Group:          Applications/Databases
-%if 0%{?commercial}
-Obsoletes:      MySQL-client
-%else
-Obsoletes:      MySQL-client-advanced
-%endif
-Obsoletes:      mysql < %{version}-%{release}
-Obsoletes:      mysql-advanced < %{version}-%{release}
-Obsoletes:      MySQL-client-classic MySQL-client-community MySQL-client-enterprise
-Obsoletes:      MySQL-client-advanced-gpl MySQL-client-enterprise-gpl
-Provides:       mysql = %{version}-%{release} 
-Provides:       mysql%{?_isa} = %{version}-%{release}
-
-%description -n MySQL-client%{product_suffix}
-This package contains the standard MySQL clients and administration tools.
-
-For a description of MySQL see the base MySQL RPM or http://www.mysql.com/
-
-# ----------------------------------------------------------------------------
-%package -n MySQL-test%{product_suffix}
-Summary:        MySQL - Test suite
-Group:          Applications/Databases
-%if 0%{?commercial}
-Requires:       MySQL-client-advanced perl
-Obsoletes:      MySQL-test
-%else
-Requires:       MySQL-client perl
-Obsoletes:      MySQL-test-advanced
-%endif
-Obsoletes:      mysql-test < %{version}-%{release}
-Obsoletes:      mysql-test-advanced
-Obsoletes:      mysql-bench MySQL-bench
-Obsoletes:      MySQL-test-classic MySQL-test-community MySQL-test-enterprise
-Obsoletes:      MySQL-test-advanced-gpl MySQL-test-enterprise-gpl
-Provides:       mysql-test = %{version}-%{release}
-Provides:       mysql-test%{?_isa} = %{version}-%{release}
-AutoReqProv:    no
-
-%description -n MySQL-test%{product_suffix}
-This package contains the MySQL regression test suite.
-
-For a description of MySQL see the base MySQL RPM or http://www.mysql.com/
-
-# ----------------------------------------------------------------------------
-%package -n MySQL-devel%{product_suffix}
-Summary:        MySQL - Development header files and libraries
-Group:          Applications/Databases
-%if 0%{?commercial}
-Obsoletes:      MySQL-devel
-%else
-Obsoletes:      MySQL-devel-advanced
-%endif
-Obsoletes:      mysql-devel < %{version}-%{release}
-Obsoletes:      mysql-embedded-devel mysql-devel-advanced mysql-embedded-devel-advanced
-Obsoletes:      MySQL-devel-classic MySQL-devel-community MySQL-devel-enterprise
-Obsoletes:      MySQL-devel-advanced-gpl MySQL-devel-enterprise-gpl
-Provides:       mysql-devel = %{version}-%{release}
-Provides:       mysql-devel%{?_isa} = %{version}-%{release}
-
-%description -n MySQL-devel%{product_suffix}
-This package contains the development header files and libraries necessary
-to develop MySQL client applications.
-
-For a description of MySQL see the base MySQL RPM or http://www.mysql.com/
-
-# ----------------------------------------------------------------------------
-%package -n MySQL-shared%{product_suffix}
-Summary:        MySQL - Shared libraries
-Group:          Applications/Databases
-%if 0%{?commercial}
-Obsoletes:      MySQL-shared
-%else
-Obsoletes:      MySQL-shared-advanced
-%endif
-Obsoletes:      MySQL-shared-standard MySQL-shared-pro
-Obsoletes:      MySQL-shared-pro-cert MySQL-shared-pro-gpl
-Obsoletes:      MySQL-shared-pro-gpl-cert
-Obsoletes:      MySQL-shared-classic MySQL-shared-community MySQL-shared-enterprise
-Obsoletes:      MySQL-shared-advanced-gpl MySQL-shared-enterprise-gpl
-
-%description -n MySQL-shared%{product_suffix}
-This package contains the shared libraries (*.so*) which certain languages
-and applications need to dynamically load and use MySQL.
-
-# ----------------------------------------------------------------------------
-%package -n MySQL-embedded%{product_suffix}
-Summary:        MySQL - Embedded library
-Group:          Applications/Databases
-%if 0%{?commercial}
-Requires:       MySQL-devel-advanced
-Obsoletes:      MySQL-embedded
-%else
-Requires:       MySQL-devel
-Obsoletes:      MySQL-embedded-advanced
-%endif
-Obsoletes:      mysql-embedded < %{version}-%{release}
-Obsoletes:      mysql-embedded-advanced
-Obsoletes:      MySQL-embedded-pro
-Obsoletes:      MySQL-embedded-classic MySQL-embedded-community MySQL-embedded-enterprise
-Obsoletes:      MySQL-embedded-advanced-gpl MySQL-embedded-enterprise-gpl
-Provides:       mysql-embedded = %{version}-%{release}
-Provides:       mysql-emdedded%{?_isa} = %{version}-%{release}
-
-%description -n MySQL-embedded%{product_suffix}
-This package contains the MySQL server as an embedded library.
-
-The embedded MySQL server library makes it possible to run a full-featured
-MySQL server inside the client application. The main benefits are increased
-speed and more simple management for embedded applications.
-
-The API is identical for the embedded MySQL version and the
-client/server version.
-
-For a description of MySQL see the base MySQL RPM or http://www.mysql.com/
-
-##############################################################################
-%prep
-%setup -T -a 0 -c -n %{src_dir}
-pushd %{src_dir}
-%{?el7:%patch0 -p1}
-##############################################################################
-%build
-
-# Fail quickly and obviously if user tries to build as root
-%if %runselftest
-    if [ x"`id -u`" = x0 ]; then
-        echo "The MySQL regression tests may fail if run as root."
-        echo "If you really need to build the RPM as root, use"
-        echo "--define='runselftest 0' to skip the regression tests."
-        exit 1
-    fi
-%endif
-
-# Be strict about variables, bail at earliest opportunity, etc.
-set -eu
-
-# Optional package files
-touch optional-files-devel
-
-#
-# Set environment in order of preference, MYSQL_BUILD_* first, then variable
-# name, finally a default.  RPM_OPT_FLAGS is assumed to be a part of the
-# default RPM build environment.
-#
-# We set CXX=gcc by default to support so-called 'generic' binaries, where we
-# do not have a dependancy on libgcc/libstdc++.  This only works while we do
-# not require C++ features such as exceptions, and may need to be removed at
-# a later date.
-#
-
-# This is a hack, $RPM_OPT_FLAGS on ia64 hosts contains flags which break
-# the compile in cmd-line-utils/readline - needs investigation, but for now
-# we simply unset it and use those specified directly in cmake.
-%if "%{_arch}" == "ia64"
-RPM_OPT_FLAGS=
-%endif
-
-export PATH=${MYSQL_BUILD_PATH:-$PATH}
-export CC=${MYSQL_BUILD_CC:-${CC:-gcc}}
-export CXX=${MYSQL_BUILD_CXX:-${CXX:-gcc}}
-export CFLAGS=${MYSQL_BUILD_CFLAGS:-${CFLAGS:-$RPM_OPT_FLAGS}}
-export CXXFLAGS=${MYSQL_BUILD_CXXFLAGS:-${CXXFLAGS:-$RPM_OPT_FLAGS -felide-constructors -fno-exceptions -fno-rtti}}
-export LDFLAGS=${MYSQL_BUILD_LDFLAGS:-${LDFLAGS:-}}
-export CMAKE=${MYSQL_BUILD_CMAKE:-${CMAKE:-cmake}}
-export MAKE_JFLAG=${MYSQL_BUILD_MAKE_JFLAG:-}
-
-# Build debug mysqld and libmysqld.a
-mkdir debug
-(
-  cd debug
-  # Attempt to remove any optimisation flags from the debug build
-  CFLAGS=`echo " ${CFLAGS} " | \
-            sed -e 's/ -O[0-9]* / /' \
-                -e 's/-Wp,-D_FORTIFY_SOURCE=2/ /' \
-                -e 's/ -unroll2 / /' \
-                -e 's/ -ip / /' \
-                -e 's/^ //' \
-                -e 's/ $//'`
-  CXXFLAGS=`echo " ${CXXFLAGS} " | \
-              sed -e 's/ -O[0-9]* / /' \
-                  -e 's/-Wp,-D_FORTIFY_SOURCE=2/ /' \
-                  -e 's/ -unroll2 / /' \
-                  -e 's/ -ip / /' \
-                  -e 's/^ //' \
-                  -e 's/ $//'`
-  # XXX: MYSQL_UNIX_ADDR should be in cmake/* but mysql_version is included before
-  # XXX: install_layout so we can't just set it based on INSTALL_LAYOUT=RPM
-  ${CMAKE} ../%{src_dir} -DBUILD_CONFIG=mysql_release -DINSTALL_LAYOUT=RPM \
-           -DCMAKE_BUILD_TYPE=Debug \
-           -DENABLE_DTRACE=OFF \
-           -DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \
-           -DFEATURE_SET="%{feature_set}" \
-           -DCOMPILATION_COMMENT="%{compilation_comment_debug}" \
-           -DMYSQL_SERVER_SUFFIX="%{server_suffix}"
-  echo BEGIN_DEBUG_CONFIG ; egrep '^#define' include/config.h ; echo END_DEBUG_CONFIG
-  make ${MAKE_JFLAG} VERBOSE=1
-)
-# Build full release
-mkdir release
-(
-  cd release
-  # XXX: MYSQL_UNIX_ADDR should be in cmake/* but mysql_version is included before
-  # XXX: install_layout so we can't just set it based on INSTALL_LAYOUT=RPM
-  ${CMAKE} ../%{src_dir} -DBUILD_CONFIG=mysql_release -DINSTALL_LAYOUT=RPM \
-           -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-           -DENABLE_DTRACE=OFF \
-           -DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \
-           -DFEATURE_SET="%{feature_set}" \
-           -DCOMPILATION_COMMENT="%{compilation_comment_release}" \
-           -DMYSQL_SERVER_SUFFIX="%{server_suffix}"
-  echo BEGIN_NORMAL_CONFIG ; egrep '^#define' include/config.h ; echo END_NORMAL_CONFIG
-  make ${MAKE_JFLAG} VERBOSE=1
-)
-
-%if %runselftest
-  MTR_BUILD_THREAD=auto
-  export MTR_BUILD_THREAD
-
-  (cd release && make test-bt-fast || true)
-%endif
-
-##############################################################################
-%install
-
-RBR=$RPM_BUILD_ROOT
-MBD=$RPM_BUILD_DIR/%{src_dir}
-
-# Ensure that needed directories exists
-install -d $RBR%{_sysconfdir}/{logrotate.d,init.d}
-install -d $RBR%{mysqldatadir}/mysql
-install -d $RBR%{_datadir}/mysql-test
-install -d $RBR%{_datadir}/mysql/SELinux/RHEL4
-install -d $RBR%{_includedir}
-install -d $RBR%{_libdir}
-install -d $RBR%{_mandir}
-install -d $RBR%{_sbindir}
-
-mkdir -p $RBR%{_sysconfdir}/my.cnf.d
-
-# Install all binaries
-(
-  cd $MBD/release
-  make DESTDIR=$RBR install
-)
-
-# For gcc builds, include libgcc.a in the devel subpackage (BUG 4921).  Do
-# this in a sub-shell to ensure we don't pollute the install environment
-# with compiler bits.
-(
-  PATH=${MYSQL_BUILD_PATH:-$PATH}
-  CC=${MYSQL_BUILD_CC:-${CC:-gcc}}
-  CFLAGS=${MYSQL_BUILD_CFLAGS:-${CFLAGS:-$RPM_OPT_FLAGS}}
-  if "${CC}" -v 2>&1 | grep '^gcc.version' >/dev/null 2>&1; then
-    libgcc=`${CC} ${CFLAGS} --print-libgcc-file`
-    if [ -f ${libgcc} ]; then
-      mkdir -p $RBR%{_libdir}/mysql
-      install -m 644 ${libgcc} $RBR%{_libdir}/mysql/libmygcc.a
-      echo "%{_libdir}/mysql/libmygcc.a" >>optional-files-devel
-    fi
-  fi
-)
-
-# FIXME: at some point we should stop doing this and just install everything
-# FIXME: directly into %{_libdir}/mysql - perhaps at the same time as renaming
-# FIXME: the shared libraries to use libmysql*-$major.$minor.so syntax
-mv -v $RBR/%{_libdir}/*.a $RBR/%{_libdir}/mysql/
-
-# Install logrotate and autostart
-install -m 644 $MBD/release/support-files/mysql-log-rotate $RBR%{_sysconfdir}/logrotate.d/mysql
-install -m 755 $MBD/release/support-files/mysql.server $RBR%{_sysconfdir}/init.d/mysql
-
-# Create a symlink "rcmysql", pointing to the init.script. SuSE users
-# will appreciate that, as all services usually offer this.
-ln -s %{_sysconfdir}/init.d/mysql $RBR%{_sbindir}/rcmysql
-
-# Touch the place where the my.cnf config file might be located
-# Just to make sure it's in the file list and marked as a config file
-touch $RBR%{_sysconfdir}/my.cnf
-
-# Install SELinux files in datadir
-install -m 600 $MBD/%{src_dir}/support-files/RHEL4-SElinux/mysql.{fc,te} \
-  $RBR%{_datadir}/mysql/SELinux/RHEL4
-
-%if %{WITH_TCMALLOC}
-# Even though this is a shared library, put it under /usr/lib*/mysql, so it
-# doesn't conflict with possible shared lib by the same name in /usr/lib*.  See
-# `mysql_config --variable=pkglibdir` and mysqld_safe for how this is used.
-install -m 644 "%{malloc_lib_source}" \
-  "$RBR%{_libdir}/mysql/%{malloc_lib_target}"
-%endif
-
-# Remove man pages we explicitly do not want to package, avoids 'unpackaged
-# files' warning.
-# This has become obsolete:  rm -f $RBR%{_mandir}/man1/make_win_bin_dist.1*
-
-##############################################################################
-#  Post processing actions, i.e. when installed
-##############################################################################
-
-%pre -n MySQL-server%{product_suffix}
-# This is the code running at the beginning of a RPM upgrade action,
-# before replacing the old files with the new ones.
-
-# ATTENTION: Parts of this are duplicated in the "triggerpostun" !
-
-# There are users who deviate from the default file system layout.
-# Check local settings to support them.
-if [ -x %{_bindir}/my_print_defaults ]
-then
-  mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | sed -n 's/--datadir=//p'`
-  PID_FILE_PATT=`%{_bindir}/my_print_defaults server mysqld | grep '^--pid-file=' | sed -n 's/--pid-file=//p'`
-fi
-if [ -z "$mysql_datadir" ]
-then
-  mysql_datadir=%{mysqldatadir}
-fi
-if [ -z "$PID_FILE_PATT" ]
-then
-  PID_FILE_PATT="$mysql_datadir/*.pid"
-fi
-
-# Check if we can safely upgrade.  An upgrade is only safe if it's from one
-# of our RPMs in the same version family.
-
-# Handle both ways of spelling the capability.
-installed=`rpm -q --whatprovides mysql-server 2> /dev/null`
-if [ $? -ne 0 -o -z "$installed" ]; then
-  installed=`rpm -q --whatprovides MySQL-server 2> /dev/null`
-fi
-if [ $? -eq 0 -a -n "$installed" ]; then
-  installed=`echo $installed | sed 's/\([^ ]*\) .*/\1/'` # Tests have shown duplicated package names
-  vendor=`rpm -q --queryformat='%{VENDOR}' "$installed" 2>&1`
-  version=`rpm -q --queryformat='%{VERSION}' "$installed" 2>&1`
-  myoldvendor='%{mysql_old_vendor}'
-  myvendor_2='%{mysql_vendor_2}'
-  myvendor='%{mysql_vendor}'
-  myversion='%{mysql_version}'
-
-  old_family=`echo $version \
-    | sed -n -e 's,^\([1-9][0-9]*\.[0-9][0-9]*\)\..*$,\1,p'`
-  new_family=`echo $myversion \
-    | sed -n -e 's,^\([1-9][0-9]*\.[0-9][0-9]*\)\..*$,\1,p'`
-
-  [ -z "$vendor" ] && vendor='<unknown>'
-  [ -z "$old_family" ] && old_family="<unrecognized version $version>"
-  [ -z "$new_family" ] && new_family="<bad package specification: version $myversion>"
-
-  error_text=
-  if [ "$vendor" != "$myoldvendor" \
-    -a "$vendor" != "$myvendor_2" \
-    -a "$vendor" != "$myvendor" ]; then
-    error_text="$error_text
-The current MySQL server package is provided by a different
-vendor ($vendor) than $myoldvendor, $myvendor_2, or $myvendor.
-Some files may be installed to different locations, including log
-files and the service startup script in %{_sysconfdir}/init.d/.
-"
-  fi
-
-  if [ "$old_family" != "$new_family" ]; then
-    error_text="$error_text
-Upgrading directly from MySQL $old_family to MySQL $new_family may not
-be safe in all cases.  A manual dump and restore using mysqldump is
-recommended.  It is important to review the MySQL manual's Upgrading
-section for version-specific incompatibilities.
-"
-  fi
-
-  if [ -n "$error_text" ]; then
-    cat <<HERE >&2
-
-******************************************************************
-A MySQL server package ($installed) is installed.
-$error_text
-A manual upgrade is required.
-
-- Ensure that you have a complete, working backup of your data and my.cnf
-  files
-- Shut down the MySQL server cleanly
-- Remove the existing MySQL packages.  Usually this command will
-  list the packages you should remove:
-  rpm -qa | grep -i '^mysql-'
-
-  You may choose to use 'rpm --nodeps -ev <package-name>' to remove
-  the package which contains the mysqlclient shared library.  The
-  library will be reinstalled by the MySQL-shared-compat package.
-- Install the new MySQL packages supplied by $myvendor
-- Ensure that the MySQL server is started
-- Run the 'mysql_upgrade' program
-
-This is a brief description of the upgrade process.  Important details
-can be found in the MySQL manual, in the Upgrading section.
-******************************************************************
-HERE
-    exit 1
-  fi
-fi
-
-# We assume that if there is exactly one ".pid" file,
-# it contains the valid PID of a running MySQL server.
-NR_PID_FILES=`ls -1 $PID_FILE_PATT 2>/dev/null | wc -l`
-case $NR_PID_FILES in
-	0 ) SERVER_TO_START=''  ;;  # No "*.pid" file == no running server
-	1 ) SERVER_TO_START='true' ;;
-	* ) SERVER_TO_START=''      # Situation not clear
-	    SEVERAL_PID_FILES=true ;;
-esac
-# That logic may be debated: We might check whether it is non-empty,
-# contains exactly one number (possibly a PID), and whether "ps" finds it.
-# OTOH, if there is no such process, it means a crash without a cleanup -
-# is that a reason not to start a new server after upgrade?
-
-STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER
-
-if [ -f $STATUS_FILE ]; then
-	echo "Some previous upgrade was not finished:"
-	ls -ld $STATUS_FILE
-	echo "Please check its status, then do"
-	echo "    rm $STATUS_FILE"
-	echo "before repeating the MySQL upgrade."
-	exit 1
-elif [ -n "$SEVERAL_PID_FILES" ] ; then
-	echo "You have more than one PID file:"
-	ls -ld $PID_FILE_PATT
-	echo "Please check which one (if any) corresponds to a running server"
-	echo "and delete all others before repeating the MySQL upgrade."
-	exit 1
-fi
-
-NEW_VERSION=%{mysql_version}-%{release}
-
-# The "pre" section code is also run on a first installation,
-# when there  is no data directory yet. Protect against error messages.
-if [ -d $mysql_datadir ] ; then
-	echo "MySQL RPM upgrade to version $NEW_VERSION"  > $STATUS_FILE
-	echo "'pre' step running at `date`"          >> $STATUS_FILE
-	echo                                         >> $STATUS_FILE
-	fcount=`ls -ltr $mysql_datadir/*.err 2>/dev/null | wc -l`       
-        if [ $fcount -gt 0 ] ; then
-             echo "ERR file(s):"                          >> $STATUS_FILE
-	     ls -ltr $mysql_datadir/*.err                 >> $STATUS_FILE
-	     echo                                         >> $STATUS_FILE
-	     echo "Latest 'Version' line in latest file:" >> $STATUS_FILE
-	     grep '^Version' `ls -tr $mysql_datadir/*.err | tail -1` | \
-		tail -1                              >> $STATUS_FILE
-	     echo                                         >> $STATUS_FILE
-        fi
-
-	if [ -n "$SERVER_TO_START" ] ; then
-		# There is only one PID file, race possibility ignored
-		echo "PID file:"                           >> $STATUS_FILE
-		ls -l   $PID_FILE_PATT                     >> $STATUS_FILE
-		cat     $PID_FILE_PATT                     >> $STATUS_FILE
-		echo                                       >> $STATUS_FILE
-		echo "Server process:"                     >> $STATUS_FILE
-		ps -fp `cat $PID_FILE_PATT`                >> $STATUS_FILE
-		echo                                       >> $STATUS_FILE
-		echo "SERVER_TO_START=$SERVER_TO_START"    >> $STATUS_FILE
-	else
-		# Take a note we checked it ...
-		echo "PID file:"                           >> $STATUS_FILE
-		ls -l   $PID_FILE_PATT                     >> $STATUS_FILE 2>&1
-	fi
-fi
-
-# Shut down a previously installed server first
-# Note we *could* make that depend on $SERVER_TO_START, but we rather don't,
-# so a "stop" is attempted even if there is no PID file.
-# (Maybe the "stop" doesn't work then, but we might fix that in itself.)
-if [ -x %{_sysconfdir}/init.d/mysql ] ; then
-        %{_sysconfdir}/init.d/mysql stop > /dev/null 2>&1
-        echo "Giving mysqld 5 seconds to exit nicely"
-        sleep 5
-fi
-
-%post -n MySQL-server%{product_suffix}
-# This is the code running at the end of a RPM install or upgrade action,
-# after the (new) files have been written.
-
-# ATTENTION: Parts of this are duplicated in the "triggerpostun" !
-
-# There are users who deviate from the default file system layout.
-# Check local settings to support them.
-if [ -x %{_bindir}/my_print_defaults ]
-then
-  mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | sed -n 's/--datadir=//p'`
-fi
-if [ -z "$mysql_datadir" ]
-then
-  mysql_datadir=%{mysqldatadir}
-fi
-
-NEW_VERSION=%{mysql_version}-%{release}
-STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER
-
-# ----------------------------------------------------------------------
-# Create data directory if needed, check whether upgrade or install
-# ----------------------------------------------------------------------
-if [ ! -d $mysql_datadir ] ; then mkdir -m 755 $mysql_datadir; fi
-if [ -f $STATUS_FILE ] ; then
-	SERVER_TO_START=`grep '^SERVER_TO_START=' $STATUS_FILE | cut -c17-`
-else
-	SERVER_TO_START=''
-fi
-# echo "Analyzed: SERVER_TO_START=$SERVER_TO_START"
-if [ ! -d $mysql_datadir/mysql ] ; then
-	mkdir $mysql_datadir/mysql $mysql_datadir/test
-	echo "MySQL RPM installation of version $NEW_VERSION" >> $STATUS_FILE
-else
-	# If the directory exists, we may assume it is an upgrade.
-	echo "MySQL RPM upgrade to version $NEW_VERSION" >> $STATUS_FILE
-fi
-
-# ----------------------------------------------------------------------
-# Make MySQL start/shutdown automatically when the machine does it.
-# ----------------------------------------------------------------------
-# NOTE: This still needs to be debated. Should we check whether these links
-# for the other run levels exist(ed) before the upgrade?
-# use chkconfig on Enterprise Linux and newer SuSE releases
-if [ -x /sbin/chkconfig ] ; then
-        /sbin/chkconfig --add mysql
-# use insserv for older SuSE Linux versions
-elif [ -x /sbin/insserv ] ; then
-        /sbin/insserv %{_sysconfdir}/init.d/mysql
-fi
-
-# ----------------------------------------------------------------------
-# Create a MySQL user and group. Do not report any problems if it already
-# exists.
-# ----------------------------------------------------------------------
-groupadd -r %{mysqld_group} 2> /dev/null || true
-useradd -M -r -d $mysql_datadir -s /bin/bash -c "MySQL server" \
-  -g %{mysqld_group} %{mysqld_user} 2> /dev/null || true
-# The user may already exist, make sure it has the proper group nevertheless
-# (BUG#12823)
-usermod -g %{mysqld_group} %{mysqld_user} 2> /dev/null || true
-
-# ----------------------------------------------------------------------
-# Change permissions so that the user that will run the MySQL daemon
-# owns all database files.
-# ----------------------------------------------------------------------
-chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir
-
-# ----------------------------------------------------------------------
-# Initiate databases if needed
-# ----------------------------------------------------------------------
-if ! grep '^MySQL RPM upgrade' $STATUS_FILE >/dev/null 2>&1 ; then
-	# Fix bug#45415: no "mysql_install_db" on an upgrade
-	# Do this as a negative to err towards more "install" runs
-	# rather than to miss one.
-	%{_bindir}/mysql_install_db --rpm --user=%{mysqld_user}
-fi
-
-# ----------------------------------------------------------------------
-# Upgrade databases if needed would go here - but it cannot be automated yet
-# ----------------------------------------------------------------------
-
-# ----------------------------------------------------------------------
-# Change permissions again to fix any new files.
-# ----------------------------------------------------------------------
-chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir
-
-# ----------------------------------------------------------------------
-# Fix permissions for the permission database so that only the user
-# can read them.
-# ----------------------------------------------------------------------
-chmod -R og-rw $mysql_datadir/mysql
-
-# ----------------------------------------------------------------------
-# install SELinux files - but don't override existing ones
-# ----------------------------------------------------------------------
-SETARGETDIR=/etc/selinux/targeted/src/policy
-SEDOMPROG=$SETARGETDIR/domains/program
-SECONPROG=$SETARGETDIR/file_contexts/program
-if [ -f /etc/redhat-release ] \
- && (grep -q "Red Hat Enterprise Linux .. release 4" /etc/redhat-release \
- || grep -q "CentOS release 4" /etc/redhat-release) ; then
-  echo
-  echo
-  echo 'Notes regarding SELinux on this platform:'
-  echo '========================================='
-  echo
-  echo 'The default policy might cause server startup to fail because it is'
-  echo 'not allowed to access critical files.  In this case, please update'
-  echo 'your installation.'
-  echo
-  echo 'The default policy might also cause inavailability of SSL related'
-  echo 'features because the server is not allowed to access /dev/random'
-  echo 'and /dev/urandom. If this is a problem, please do the following:'
-  echo
-  echo '  1) install selinux-policy-targeted-sources from your OS vendor'
-  echo '  2) add the following two lines to '$SEDOMPROG/mysqld.te':'
-  echo '       allow mysqld_t random_device_t:chr_file read;'
-  echo '       allow mysqld_t urandom_device_t:chr_file read;'
-  echo '  3) cd to '$SETARGETDIR' and issue the following command:'
-  echo '       make load'
-  echo
-  echo
-fi
-
-if [ -x sbin/restorecon ] ; then
-  sbin/restorecon -R var/lib/mysql
-fi
-
-# Was the server running before the upgrade? If so, restart the new one.
-if [ "$SERVER_TO_START" = "true" ] ; then
-	# Restart in the same way that mysqld will be started normally.
-	if [ -x %{_sysconfdir}/init.d/mysql ] ; then
-		%{_sysconfdir}/init.d/mysql start
-		echo "Giving mysqld 5 seconds to start"
-		sleep 5
-	fi
-fi
-
-# Collect an upgrade history ...
-echo "Upgrade/install finished at `date`"        >> $STATUS_FILE
-echo                                             >> $STATUS_FILE
-echo "====="                                     >> $STATUS_FILE
-STATUS_HISTORY=$mysql_datadir/RPM_UPGRADE_HISTORY
-cat $STATUS_FILE >> $STATUS_HISTORY
-mv -f  $STATUS_FILE ${STATUS_FILE}-LAST  # for "triggerpostun"
-
-
-#echo "Thank you for installing the MySQL Community Server! For Production
-#systems, we recommend MySQL Enterprise, which contains enterprise-ready
-#software, intelligent advisory services, and full production support with
-#scheduled service packs and more.  Visit www.mysql.com/enterprise for more
-#information."
-
-%preun -n MySQL-server%{product_suffix}
-
-# Which '$1' does this refer to?  Fedora docs have info:
-# " ... a count of the number of versions of the package that are installed.
-#   Action                           Count
-#   Install the first time           1
-#   Upgrade                          2 or higher (depending on the number of versions installed)
-#   Remove last version of package   0 "
-#
-#  http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch09s04s05.html
- 
-if [ $1 = 0 ] ; then
-        # Stop MySQL before uninstalling it
-        if [ -x %{_sysconfdir}/init.d/mysql ] ; then
-                %{_sysconfdir}/init.d/mysql stop > /dev/null
-                # Remove autostart of MySQL
-                # use chkconfig on Enterprise Linux and newer SuSE releases
-                if [ -x /sbin/chkconfig ] ; then
-                        /sbin/chkconfig --del mysql
-                # For older SuSE Linux versions
-                elif [ -x /sbin/insserv ] ; then
-                        /sbin/insserv -r %{_sysconfdir}/init.d/mysql
-                fi
-        fi
-fi
-
-# We do not remove the mysql user since it may still own a lot of
-# database files.
-
-%triggerpostun -n MySQL-server%{product_suffix} --MySQL-server-community
-
-# Setup: We renamed this package, so any existing "server-community"
-#   package will be removed when this "server" is installed.
-# Problem: RPM will first run the "pre" and "post" sections of this script,
-#   and only then the "preun" of that old community server.
-#   But this "preun" includes stopping the server and uninstalling the service,
-#   "chkconfig --del mysql" which removes the symlinks to the start script.
-# Solution: *After* the community server got removed, restart this server
-#   and re-install the service.
-#
-# For information about triggers in spec files, see the Fedora docs:
-#   http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch10s02.html
-# For all details of this code, see the "pre" and "post" sections.
-
-# There are users who deviate from the default file system layout.
-# Check local settings to support them.
-if [ -x %{_bindir}/my_print_defaults ]
-then
-  mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | sed -n 's/--datadir=//p'`
-fi
-if [ -z "$mysql_datadir" ]
-then
-  mysql_datadir=%{mysqldatadir}
-fi
-
-NEW_VERSION=%{mysql_version}-%{release}
-STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER-LAST  # Note the difference!
-STATUS_HISTORY=$mysql_datadir/RPM_UPGRADE_HISTORY
-
-if [ -f $STATUS_FILE ] ; then
-	SERVER_TO_START=`grep '^SERVER_TO_START=' $STATUS_FILE | cut -c17-`
-else
-	# This should never happen, but let's be prepared
-	SERVER_TO_START=''
-fi
-echo "Analyzed: SERVER_TO_START=$SERVER_TO_START"
-
-if [ -x /sbin/chkconfig ] ; then
-        /sbin/chkconfig --add mysql
-# use insserv for older SuSE Linux versions
-elif [ -x /sbin/insserv ] ; then
-        /sbin/insserv %{_sysconfdir}/init.d/mysql
-fi
-
-# Was the server running before the upgrade? If so, restart the new one.
-if [ "$SERVER_TO_START" = "true" ] ; then
-	# Restart in the same way that mysqld will be started normally.
-	if [ -x %{_sysconfdir}/init.d/mysql ] ; then
-		%{_sysconfdir}/init.d/mysql start
-		echo "Giving mysqld 5 seconds to start"
-		sleep 5
-	fi
-fi
-
-echo "Trigger 'postun --community' finished at `date`"        >> $STATUS_HISTORY
-echo                                             >> $STATUS_HISTORY
-echo "====="                                     >> $STATUS_HISTORY
-
-
-# ----------------------------------------------------------------------
-# Clean up the BuildRoot after build is done
-# ----------------------------------------------------------------------
-%clean
-[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] \
-  && rm -rf $RPM_BUILD_ROOT;
-
-##############################################################################
-#  Files section
-##############################################################################
-
-%files -n MySQL-server%{product_suffix} -f release/support-files/plugins.files
-%defattr(-,root,root,0755)
-
-%if %{defined license_files_server}
-%doc %{license_files_server}
-%endif
-%doc %{src_dir}/Docs/ChangeLog
-%doc %{src_dir}/Docs/INFO_SRC*
-%doc release/Docs/INFO_BIN*
-%doc release/support-files/my-*.cnf
-
-%if 0%{?commercial}
-%doc %attr(644, root, root) %{_infodir}/mysql.info*
-%endif
-
-%doc %attr(644, root, man) %{_mandir}/man1/innochecksum.1*
-%doc %attr(644, root, man) %{_mandir}/man1/my_print_defaults.1*
-%doc %attr(644, root, man) %{_mandir}/man1/myisam_ftdump.1*
-%doc %attr(644, root, man) %{_mandir}/man1/myisamchk.1*
-%doc %attr(644, root, man) %{_mandir}/man1/myisamlog.1*
-%doc %attr(644, root, man) %{_mandir}/man1/myisampack.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_convert_table_format.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_fix_extensions.1*
-%doc %attr(644, root, man) %{_mandir}/man8/mysqld.8*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqld_multi.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqld_safe.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqldumpslow.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_install_db.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_plugin.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_secure_installation.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_setpermission.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_upgrade.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlhotcopy.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlman.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql.server.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqltest.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_tzinfo_to_sql.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_zap.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlbug.1*
-%doc %attr(644, root, man) %{_mandir}/man1/perror.1*
-%doc %attr(644, root, man) %{_mandir}/man1/replace.1*
-%doc %attr(644, root, man) %{_mandir}/man1/resolve_stack_dump.1*
-%doc %attr(644, root, man) %{_mandir}/man1/resolveip.1*
-
-%ghost %config(noreplace,missingok) %{_sysconfdir}/my.cnf
-%dir %{_sysconfdir}/my.cnf.d
-
-%attr(755, root, root) %{_bindir}/innochecksum
-%attr(755, root, root) %{_bindir}/my_print_defaults
-%attr(755, root, root) %{_bindir}/myisam_ftdump
-%attr(755, root, root) %{_bindir}/myisamchk
-%attr(755, root, root) %{_bindir}/myisamlog
-%attr(755, root, root) %{_bindir}/myisampack
-%attr(755, root, root) %{_bindir}/mysql_convert_table_format
-%attr(755, root, root) %{_bindir}/mysql_fix_extensions
-%attr(755, root, root) %{_bindir}/mysql_install_db
-%attr(755, root, root) %{_bindir}/mysql_plugin
-%attr(755, root, root) %{_bindir}/mysql_secure_installation
-%attr(755, root, root) %{_bindir}/mysql_setpermission
-%attr(755, root, root) %{_bindir}/mysql_tzinfo_to_sql
-%attr(755, root, root) %{_bindir}/mysql_upgrade
-%attr(755, root, root) %{_bindir}/mysql_zap
-%attr(755, root, root) %{_bindir}/mysqlbug
-%attr(755, root, root) %{_bindir}/mysqld_multi
-%attr(755, root, root) %{_bindir}/mysqld_safe
-%attr(755, root, root) %{_bindir}/mysqldumpslow
-%attr(755, root, root) %{_bindir}/mysqlhotcopy
-%attr(755, root, root) %{_bindir}/mysqltest
-%attr(755, root, root) %{_bindir}/perror
-%attr(755, root, root) %{_bindir}/replace
-%attr(755, root, root) %{_bindir}/resolve_stack_dump
-%attr(755, root, root) %{_bindir}/resolveip
-
-%attr(755, root, root) %{_sbindir}/mysqld
-%attr(755, root, root) %{_sbindir}/mysqld-debug
-%attr(755, root, root) %{_sbindir}/rcmysql
-%attr(755, root, root) %{_libdir}/mysql/plugin/daemon_example.ini
-
-%if %{WITH_TCMALLOC}
-%attr(755, root, root) %{_libdir}/mysql/%{malloc_lib_target}
-%endif
-
-%attr(644, root, root) %config(noreplace,missingok) %{_sysconfdir}/logrotate.d/mysql
-%attr(755, root, root) %{_sysconfdir}/init.d/mysql
-
-%attr(755, root, root) %{_datadir}/mysql/
-
-# ----------------------------------------------------------------------------
-%files -n MySQL-client%{product_suffix}
-
-%defattr(-, root, root, 0755)
-%attr(755, root, root) %{_bindir}/msql2mysql
-%attr(755, root, root) %{_bindir}/mysql
-%attr(755, root, root) %{_bindir}/mysql_find_rows
-%attr(755, root, root) %{_bindir}/mysql_waitpid
-%attr(755, root, root) %{_bindir}/mysqlaccess
-# XXX: This should be moved to %{_sysconfdir}
-%attr(644, root, root) %{_bindir}/mysqlaccess.conf
-%attr(755, root, root) %{_bindir}/mysqladmin
-%attr(755, root, root) %{_bindir}/mysqlbinlog
-%attr(755, root, root) %{_bindir}/mysqlcheck
-%attr(755, root, root) %{_bindir}/mysqldump
-%attr(755, root, root) %{_bindir}/mysqlimport
-%attr(755, root, root) %{_bindir}/mysqlshow
-%attr(755, root, root) %{_bindir}/mysqlslap
-
-%doc %attr(644, root, man) %{_mandir}/man1/msql2mysql.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_find_rows.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_waitpid.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlaccess.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqladmin.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlbinlog.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlcheck.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqldump.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlimport.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlshow.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlslap.1*
-
-# ----------------------------------------------------------------------------
-%files -n MySQL-devel%{product_suffix} -f optional-files-devel
-%defattr(-, root, root, 0755)
-%doc %attr(644, root, man) %{_mandir}/man1/comp_err.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_config.1*
-%attr(755, root, root) %{_bindir}/mysql_config
-%dir %attr(755, root, root) %{_includedir}/mysql
-%dir %attr(755, root, root) %{_libdir}/mysql
-%{_includedir}/mysql/*
-%{_datadir}/aclocal/mysql.m4
-%{_libdir}/mysql/libmysqlclient.a
-%{_libdir}/mysql/libmysqlclient_r.a
-%{_libdir}/mysql/libmysqlservices.a
-
-# ----------------------------------------------------------------------------
-%files -n MySQL-shared%{product_suffix}
-%defattr(-, root, root, 0755)
-# Shared libraries (omit for architectures that don't support them)
-%{_libdir}/libmysql*.so*
-
-%post -n MySQL-shared%{product_suffix}
-/sbin/ldconfig
-
-%postun -n MySQL-shared%{product_suffix}
-/sbin/ldconfig
-
-# ----------------------------------------------------------------------------
-%files -n MySQL-test%{product_suffix}
-%defattr(-, root, root, 0755)
-%attr(-, root, root) %{_datadir}/mysql-test
-%attr(755, root, root) %{_bindir}/mysql_client_test
-%attr(755, root, root) %{_bindir}/mysql_client_test_embedded
-%attr(755, root, root) %{_bindir}/mysqltest_embedded
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_client_test.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql-stress-test.pl.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql-test-run.pl.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_client_test_embedded.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqltest_embedded.1*
-
-# ----------------------------------------------------------------------------
-%files -n MySQL-embedded%{product_suffix}
-%defattr(-, root, root, 0755)
-%attr(755, root, root) %{_bindir}/mysql_embedded
-%attr(644, root, root) %{_libdir}/mysql/libmysqld.a
-%attr(644, root, root) %{_libdir}/mysql/libmysqld-debug.a
-
-##############################################################################
-# The spec file changelog only includes changes made to the spec file
-# itself - note that they must be ordered by date (important when
-# merging BK trees)
-##############################################################################
-%changelog
-* Wed Jul 02 2014 Bjorn Munch <bjorn.munch at oracle.com>
-- Disable dtrace unconditionally, breaks after we install Oracle dtrace
-
-* Wed Oct 30 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy at oracle.com>
-- Removed non gpl file docs/mysql.info from community packages
-
-* Mon Sep 09 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy at oracle.com>
-- Updated logic to get the correct count of PID files 
-
-* Fri Aug 16 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy at oracle.com>
-- Added provides lowercase mysql tags  
-
-* Wed Jun 26 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy at oracle.com>
-- Cleaned up spec file to resolve rpm dependencies.
-
-* Tue Jul 24 2012 Joerg Bruehe <joerg.bruehe at oracle.com>
-
-- Add a macro "runselftest":
-  if set to 1 (default), the test suite will be run during the RPM build;
-  this can be oveeridden via the command line by adding
-      --define "runselftest 0"
-  Failures of the test suite will NOT make the RPM build fail!
-
-* Mon Jun 11 2012 Joerg Bruehe <joerg.bruehe at oracle.com>
-
-- Make sure newly added "SPECIFIC-ULN/" directory does not disturb packaging.
-
-* Wed Sep 28 2011 Joerg Bruehe <joerg.bruehe at oracle.com>
-
-- Fix duplicate mentioning of "mysql_plugin" and its manual page,
-  it is better to keep alphabetic order in the files list (merging!).
-
-* Wed Sep 14 2011 Joerg Bruehe <joerg.bruehe at oracle.com>
-
-- Let the RPM capabilities ("obsoletes" etc) ensure that an upgrade may replace
-  the RPMs of any configuration (of the current or the preceding release series)
-  by the new ones. This is done by not using the implicitly generated capabilities
-  (which include the configuration name) and relying on more generic ones which
-  just list the function ("server", "client", ...).
-  The implicit generation cannot be prevented, so all these capabilities must be
-  explicitly listed in "Obsoletes:"
-
-* Tue Sep 13 2011 Jonathan Perkin <jonathan.perkin at oracle.com>
-
-- Add support for Oracle Linux 6 and Red Hat Enterprise Linux 6.  Due to
-  changes in RPM behaviour ($RPM_BUILD_ROOT is removed prior to install)
-  this necessitated a move of the libmygcc.a installation to the install
-  phase, which is probably where it belonged in the first place.
-
-* Tue Sep 13 2011 Joerg Bruehe <joerg.bruehe at oracle.com>
-
-- "make_win_bin_dist" and its manual are dropped, cmake does it different.
-
-* Thu Sep 08 2011 Daniel Fischer <daniel.fischer at oracle.com>
-
-- Add mysql_plugin man page.
-
-* Tue Aug 30 2011 Joerg Bruehe <joerg.bruehe at oracle.com>
-
-- Add the manual page for "mysql_plugin" to the server package.
-
-* Fri Aug 19 2011 Joerg Bruehe <joerg.bruehe at oracle.com>
-
-- Null-upmerge the fix of bug#37165: This spec file is not affected.
-- Replace "/var/lib/mysql" by the spec file variable "%%{mysqldatadir}".
-
-* Fri Aug 12 2011 Daniel Fischer <daniel.fischer at oracle.com>
-
-- Source plugin library files list from cmake-generated file.
-
-* Mon Jul 25 2011 Chuck Bell <chuck.bell at oracle.com>
-
-- Added the mysql_plugin client - enables or disables plugins.
-
-* Thu Jul 21 2011 Sunanda Menon <sunanda.menon at oracle.com>
-
-- Fix bug#12561297: Added the MySQL embedded binary
-
-* Thu Jul 07 2011 Joerg Bruehe <joerg.bruehe at oracle.com>
-
-- Fix bug#45415: "rpm upgrade recreates test database"
-  Let the creation of the "test" database happen only during a new installation,
-  not in an RPM upgrade.
-  This affects both the "mkdir" and the call of "mysql_install_db".
-
-* Wed Feb 09 2011 Joerg Bruehe <joerg.bruehe at oracle.com>
-
-- Fix bug#56581: If an installation deviates from the default file locations
-  ("datadir" and "pid-file"), the mechanism to detect a running server (on upgrade)
-  should still work, and use these locations.
-  The problem was that the fix for bug#27072 did not check for local settings.
-
-* Mon Jan 31 2011 Joerg Bruehe <joerg.bruehe at oracle.com>
-
-- Install the new "manifest" files: "INFO_SRC" and "INFO_BIN".
-
-* Tue Nov 23 2010 Jonathan Perkin <jonathan.perkin at oracle.com>
-
-- EXCEPTIONS-CLIENT has been deleted, remove it from here too
-- Support MYSQL_BUILD_MAKE_JFLAG environment variable for passing
-  a '-j' argument to make.
-
-* Mon Nov 1 2010 Georgi Kodinov <georgi.godinov at oracle.com>
-
-- Added test authentication (WL#1054) plugin binaries
-
-* Wed Oct 6 2010 Georgi Kodinov <georgi.godinov at oracle.com>
-
-- Added example external authentication (WL#1054) plugin binaries
-
-* Wed Aug 11 2010 Joerg Bruehe <joerg.bruehe at oracle.com>
-
-- With a recent spec file cleanup, names have changed: A "-community" part was dropped.
-  Reflect that in the "Obsoletes" specifications.
-- Add a "triggerpostun" to handle the uninstall of the "-community" server RPM.
-- This fixes bug#55015 "MySQL server is not restarted properly after RPM upgrade".
-
-* Tue Jun 15 2010 Joerg Bruehe <joerg.bruehe at sun.com>
-
-- Change the behaviour on installation and upgrade:
-  On installation, do not autostart the server.
-  *Iff* the server was stopped before the upgrade is started, this is taken as a
-  sign the administrator is handling that manually, and so the new server will
-  not be started automatically at the end of the upgrade.
-  The start/stop scripts will still be installed, so the server will be started
-  on the next machine boot.
-  This is the 5.5 version of fixing bug#27072 (RPM autostarting the server).
-
-* Tue Jun 1 2010 Jonathan Perkin <jonathan.perkin at oracle.com>
-
-- Implement SELinux checks from distribution-specific spec file.
-
-* Wed May 12 2010 Jonathan Perkin <jonathan.perkin at oracle.com>
-
-- Large number of changes to build using CMake
-- Introduce distribution-specific RPMs
-- Drop debuginfo, build all binaries with debug/symbols
-- Remove __os_install_post, use native macro
-- Remove _unpackaged_files_terminate_build, make it an error to have
-  unpackaged files
-- Remove cluster RPMs
-
-* Wed Mar 24 2010 Joerg Bruehe <joerg.bruehe at sun.com>
-
-- Add "--with-perfschema" to the configure options.
-
-* Mon Mar 22 2010 Joerg Bruehe <joerg.bruehe at sun.com>
-
-- User "usr/lib*" to allow for both "usr/lib" and "usr/lib64",
-  mask "rmdir" return code 1.
-- Remove "ha_example.*" files from the list, they aren't built.
-
-* Wed Mar 17 2010 Joerg Bruehe <joerg.bruehe at sun.com>
-
-- Fix a wrong path name in handling the debug plugins.
-
-* Wed Mar 10 2010 Joerg Bruehe <joerg.bruehe at sun.com>
-
-- Take the result of the debug plugin build and put it into the optimized tree,
-  so that it becomes part of the final installation;
-  include the files in the packlist. Part of the fixes for bug#49022.
-
-* Mon Mar 01 2010 Joerg Bruehe <joerg.bruehe at sun.com>
-
-- Set "Oracle and/or its affiliates" as the vendor and copyright owner,
-  accept upgrading from packages showing MySQL or Sun as vendor.
-
-* Fri Feb 12 2010 Joerg Bruehe <joerg.bruehe at sun.com>
-
-- Formatting changes:
-  Have a consistent structure of separator lines and of indentation
-  (8 leading blanks => tab).
-- Introduce the variable "src_dir".
-- Give the environment variables "MYSQL_BUILD_CC(CXX)" precedence
-  over "CC" ("CXX").
-- Drop the old "with_static" argument analysis, this is not supported
-  in 5.1 since ages.
-- Introduce variables to control the handlers individually, as well
-  as other options.
-- Use the new "--with-plugin" notation for the table handlers.
-- Drop handling "/etc/rc.d/init.d/mysql", the switch to "/etc/init.d/mysql"
-  was done back in 2002 already.
-- Make "--with-zlib-dir=bundled" the default, add an option to disable it.
-- Add missing manual pages to the file list.
-- Improve the runtime check for "libgcc.a", protect it against being tried
-  with the Intel compiler "icc".
-
-* Mon Jan 11 2010 Joerg Bruehe <joerg.bruehe at sun.com>
-
-- Change RPM file naming:
-  - Suffix like "-m2", "-rc" becomes part of version as "_m2", "_rc".
-  - Release counts from 1, not 0.
-
-* Wed Dec 23 2009 Joerg Bruehe <joerg.bruehe at sun.com>
-
-- The "semisync" plugin file name has lost its introductory "lib",
-  adapt the file lists for the subpackages.
-  This is a part missing from the fix for bug#48351.
-- Remove the "fix_privilege_tables" manual, it does not exist in 5.5
-  (and likely, the whole script will go, too).
-
-* Mon Nov 16 2009 Joerg Bruehe <joerg.bruehe at sun.com>
-
-- Fix some problems with the directives around "tcmalloc" (experimental),
-  remove erroneous traces of the InnoDB plugin (that is 5.1 only).
-
-* Tue Oct 06 2009 Magnus Blaudd <mvensson at mysql.com>
-
-- Removed mysql_fix_privilege_tables
-
-* Fri Oct 02 2009 Alexander Nozdrin <alexander.nozdrin at sun.com>
-
-- "mysqlmanager" got removed from version 5.4, all references deleted.
-
-* Fri Aug 28 2009 Joerg Bruehe <joerg.bruehe at sun.com>
-
-- Merge up from 5.1 to 5.4: Remove handling for the InnoDB plugin.
-
-* Thu Aug 27 2009 Joerg Bruehe <joerg.bruehe at sun.com>
-
-- This version does not contain the "Instance manager", "mysqlmanager":
-  Remove it from the spec file so that packaging succeeds.
-
-* Mon Aug 24 2009 Jonathan Perkin <jperkin at sun.com>
-
-- Add conditionals for bundled zlib and innodb plugin
-
-* Fri Aug 21 2009 Jonathan Perkin <jperkin at sun.com>
-
-- Install plugin libraries in appropriate packages.
-- Disable libdaemon_example and ftexample plugins.
-
-* Thu Aug 20 2009 Jonathan Perkin <jperkin at sun.com>
-
-- Update variable used for mysql-test suite location to match source.
-
-* Fri Nov 07 2008 Joerg Bruehe <joerg at mysql.com>
-
-- Correct yesterday's fix, so that it also works for the last flag,
-  and fix a wrong quoting: un-quoted quote marks must not be escaped.
-
-* Thu Nov 06 2008 Kent Boortz <kent.boortz at sun.com>
-
-- Removed "mysql_upgrade_shell"
-- Removed some copy/paste between debug and normal build
-
-* Thu Nov 06 2008 Joerg Bruehe <joerg at mysql.com>
-
-- Modify CFLAGS and CXXFLAGS such that a debug build is not optimized.
-  This should cover both gcc and icc flags.  Fixes bug#40546.
-
-* Fri Aug 29 2008 Kent Boortz <kent at mysql.com>
-
-- Removed the "Federated" storage engine option, and enabled in all
-
-* Tue Aug 26 2008 Joerg Bruehe <joerg at mysql.com>
-
-- Get rid of the "warning: Installed (but unpackaged) file(s) found:"
-  Some generated files aren't needed in RPMs:
-  - the "sql-bench/" subdirectory
-  Some files were missing:
-  - /usr/share/aclocal/mysql.m4  ("devel" subpackage)
-  - Manual "mysqlbug" ("server" subpackage)
-  - Program "innochecksum" and its manual ("server" subpackage)
-  - Manual "mysql_find_rows" ("client" subpackage)
-  - Script "mysql_upgrade_shell" ("client" subpackage)
-  - Program "ndb_cpcd" and its manual ("ndb-extra" subpackage)
-  - Manuals "ndb_mgm" + "ndb_restore" ("ndb-tools" subpackage)
-
-* Mon Mar 31 2008 Kent Boortz <kent at mysql.com>
-
-- Made the "Federated" storage engine an option
-- Made the "Cluster" storage engine and sub packages an option
-
-* Wed Mar 19 2008 Joerg Bruehe <joerg at mysql.com>
-
-- Add the man pages for "ndbd" and "ndb_mgmd".
-
-* Mon Feb 18 2008 Timothy Smith <tim at mysql.com>
-
-- Require a manual upgrade if the alread-installed mysql-server is
-  from another vendor, or is of a different major version.
-
-* Wed May 02 2007 Joerg Bruehe <joerg at mysql.com>
-
-- "ndb_size.tmpl" is not needed any more,
-  "man1/mysql_install_db.1" lacked the trailing '*'.
-
-* Sat Apr 07 2007 Kent Boortz <kent at mysql.com>
-
-- Removed man page for "mysql_create_system_tables"
-
-* Wed Mar 21 2007 Daniel Fischer <df at mysql.com>
-
-- Add debug server.
-
-* Mon Mar 19 2007 Daniel Fischer <df at mysql.com>
-
-- Remove Max RPMs; the server RPMs contain a mysqld compiled with all
-  features that previously only were built into Max.
-
-* Fri Mar 02 2007 Joerg Bruehe <joerg at mysql.com>
-
-- Add several man pages for NDB which are now created.
-
-* Fri Jan 05 2007 Kent Boortz <kent at mysql.com>
-
-- Put back "libmygcc.a", found no real reason it was removed.
-
-- Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
-  correct "libgcc.a" path is returned for the 32/64 bit architecture.
-
-* Mon Dec 18 2006 Joerg Bruehe <joerg at mysql.com>
-
-- Fix the move of "mysqlmanager" to section 8: Directory name was wrong.
-
-* Thu Dec 14 2006 Joerg Bruehe <joerg at mysql.com>
-
-- Include the new man pages for "my_print_defaults" and "mysql_tzinfo_to_sql"
-  in the server RPM.
-- The "mysqlmanager" man page got moved from section 1 to 8.
-
-* Thu Nov 30 2006 Joerg Bruehe <joerg at mysql.com>
-
-- Call "make install" using "benchdir_root=%%{_datadir}",
-  because that is affecting the regression test suite as well.
-
-* Thu Nov 16 2006 Joerg Bruehe <joerg at mysql.com>
-
-- Explicitly note that the "MySQL-shared" RPMs (as built by MySQL AB)
-  replace "mysql-shared" (as distributed by SuSE) to allow easy upgrading
-  (bug#22081).
-
-* Mon Nov 13 2006 Joerg Bruehe <joerg at mysql.com>
-
-- Add "--with-partition" to all server builds.
-
-- Use "--report-features" in one test run per server build.
-
-* Tue Aug 15 2006 Joerg Bruehe <joerg at mysql.com>
-
-- The "max" server is removed from packages, effective from 5.1.12-beta.
-  Delete all steps to build, package, or install it.
-
-* Mon Jul 10 2006 Joerg Bruehe <joerg at mysql.com>
-
-- Fix a typing error in the "make" target for the Perl script to run the tests.
-
-* Tue Jul 04 2006 Joerg Bruehe <joerg at mysql.com>
-
-- Use the Perl script to run the tests, because it will automatically check
-  whether the server is configured with SSL.
-
-* Tue Jun 27 2006 Joerg Bruehe <joerg at mysql.com>
-
-- move "mysqldumpslow" from the client RPM to the server RPM (bug#20216)
-
-- Revert all previous attempts to call "mysql_upgrade" during RPM upgrade,
-  there are some more aspects which need to be solved before this is possible.
-  For now, just ensure the binary "mysql_upgrade" is delivered and installed.
-
-* Thu Jun 22 2006 Joerg Bruehe <joerg at mysql.com>
-
-- Close a gap of the previous version by explicitly using
-  a newly created temporary directory for the socket to be used
-  in the "mysql_upgrade" operation, overriding any local setting.
-
-* Tue Jun 20 2006 Joerg Bruehe <joerg at mysql.com>
-
-- To run "mysql_upgrade", we need a running server;
-  start it in isolation and skip password checks.
-
-* Sat May 20 2006 Kent Boortz <kent at mysql.com>
-
-- Always compile for PIC, position independent code.
-
-* Wed May 10 2006 Kent Boortz <kent at mysql.com>
-
-- Use character set "all" when compiling with Cluster, to make Cluster
-  nodes independent on the character set directory, and the problem
-  that two RPM sub packages both wants to install this directory.
-
-* Mon May 01 2006 Kent Boortz <kent at mysql.com>
-
-- Use "./libtool --mode=execute" instead of searching for the
-  executable in current directory and ".libs".
-
-* Fri Apr 28 2006 Kent Boortz <kent at mysql.com>
-
-- Install and run "mysql_upgrade"
-
-* Wed Apr 12 2006 Jim Winstead <jimw at mysql.com>
-
-- Remove sql-bench, and MySQL-bench RPM (will be built as an independent
-  project from the mysql-bench repository)
-
-* Tue Apr 11 2006 Jim Winstead <jimw at mysql.com>
-
-- Remove old mysqltestmanager and related programs
-* Sat Apr 01 2006 Kent Boortz <kent at mysql.com>
-
-- Set $LDFLAGS from $MYSQL_BUILD_LDFLAGS
-
-* Tue Mar 07 2006 Kent Boortz <kent at mysql.com>
-
-- Changed product name from "Community Edition" to "Community Server"
-
-* Mon Mar 06 2006 Kent Boortz <kent at mysql.com>
-
-- Fast mutexes is now disabled by default, but should be
-  used in Linux builds.
-
-* Mon Feb 20 2006 Kent Boortz <kent at mysql.com>
-
-- Reintroduced a max build
-- Limited testing of 'debug' and 'max' servers
-- Berkeley DB only in 'max'
-
-* Mon Feb 13 2006 Joerg Bruehe <joerg at mysql.com>
-
-- Use "-i" on "make test-force";
-  this is essential for later evaluation of this log file.
-
-* Thu Feb 09 2006 Kent Boortz <kent at mysql.com>
-
-- Pass '-static' to libtool, link static with our own libraries, dynamic
-  with system libraries.  Link with the bundled zlib.
-
-* Wed Feb 08 2006 Kristian Nielsen <knielsen at mysql.com>
-
-- Modified RPM spec to match new 5.1 debug+max combined community packaging.
-
-* Sun Dec 18 2005 Kent Boortz <kent at mysql.com>
-
-- Added "client/mysqlslap"
-
-* Mon Dec 12 2005 Rodrigo Novo <rodrigo at mysql.com>
-
-- Added zlib to the list of (static) libraries installed
-- Added check against libtool wierdness (WRT: sql/mysqld || sql/.libs/mysqld)
-- Compile MySQL with bundled zlib
-- Fixed %%packager name to "MySQL Production Engineering Team"
-
-* Mon Dec 05 2005 Joerg Bruehe <joerg at mysql.com>
-
-- Avoid using the "bundled" zlib on "shared" builds:
-  As it is not installed (on the build system), this gives dependency
-  problems with "libtool" causing the build to fail.
-  (Change was done on Nov 11, but left uncommented.)
-
-* Tue Nov 22 2005 Joerg Bruehe <joerg at mysql.com>
-
-- Extend the file existence check for "init.d/mysql" on un-install
-  to also guard the call to "insserv"/"chkconfig".
-
-* Thu Oct 27 2005 Lenz Grimmer <lenz at grimmer.com>
-
-- added more man pages
-
-* Wed Oct 19 2005 Kent Boortz <kent at mysql.com>
-
-- Made yaSSL support an option (off by default)
-
-* Wed Oct 19 2005 Kent Boortz <kent at mysql.com>
-
-- Enabled yaSSL support
-
-* Sat Oct 15 2005 Kent Boortz <kent at mysql.com>
-
-- Give mode arguments the same way in all places
-- Moved copy of mysqld.a to "standard" build, but
-  disabled it as we don't do embedded yet in 5.0
-
-* Fri Oct 14 2005 Kent Boortz <kent at mysql.com>
-
-- For 5.x, always compile with --with-big-tables
-- Copy the config.log file to location outside
-  the build tree
-
-* Fri Oct 14 2005 Kent Boortz <kent at mysql.com>
-
-- Removed unneeded/obsolete configure options
-- Added archive engine to standard server
-- Removed the embedded server from experimental server
-- Changed suffix "-Max" => "-max"
-- Changed comment string "Max" => "Experimental"
-
-* Thu Oct 13 2005 Lenz Grimmer <lenz at mysql.com>
-
-- added a usermod call to assign a potential existing mysql user to the
-  correct user group (BUG#12823)
-- Save the perror binary built during Max build so it supports the NDB
-  error codes (BUG#13740)
-- added a separate macro "mysqld_group" to be able to define the
-  user group of the mysql user seperately, if desired.
-
-* Thu Sep 29 2005 Lenz Grimmer <lenz at mysql.com>
-
-- fixed the removing of the RPM_BUILD_ROOT in the %clean section (the
-  $RBR variable did not get expanded, thus leaving old build roots behind)
-
-* Thu Aug 04 2005 Lenz Grimmer <lenz at mysql.com>
-
-- Fixed the creation of the mysql user group account in the postinstall
-  section (BUG 12348)
-- Fixed enabling the Archive storage engine in the Max binary
-
-* Tue Aug 02 2005 Lenz Grimmer <lenz at mysql.com>
-
-- Fixed the Requires: tag for the server RPM (BUG 12233)
-
-* Fri Jul 15 2005 Lenz Grimmer <lenz at mysql.com>
-
-- create a "mysql" user group and assign the mysql user account to that group
-  in the server postinstall section. (BUG 10984)
-
-* Tue Jun 14 2005 Lenz Grimmer <lenz at mysql.com>
-
-- Do not build statically on i386 by default, only when adding either "--with
-  static" or "--define '_with_static 1'" to the RPM build options. Static
-  linking really only makes sense when linking against the specially patched
-  glibc 2.2.5.
-
-* Mon Jun 06 2005 Lenz Grimmer <lenz at mysql.com>
-
-- added mysql_client_test to the "bench" subpackage (BUG 10676)
-- added the libndbclient static and shared libraries (BUG 10676)
-
-* Wed Jun 01 2005 Lenz Grimmer <lenz at mysql.com>
-
-- use "mysqldatadir" variable instead of hard-coding the path multiple times
-- use the "mysqld_user" variable on all occasions a user name is referenced
-- removed (incomplete) Brazilian translations
-- removed redundant release tags from the subpackage descriptions
-
-* Wed May 25 2005 Joerg Bruehe <joerg at mysql.com>
-
-- Added a "make clean" between separate calls to "BuildMySQL".
-
-* Thu May 12 2005 Guilhem Bichot <guilhem at mysql.com>
-
-- Removed the mysql_tableinfo script made obsolete by the information schema
-
-* Wed Apr 20 2005 Lenz Grimmer <lenz at mysql.com>
-
-- Enabled the "blackhole" storage engine for the Max RPM
-
-* Wed Apr 13 2005 Lenz Grimmer <lenz at mysql.com>
-
-- removed the MySQL manual files (html/ps/texi) - they have been removed
-  from the MySQL sources and are now available seperately.
-
-* Mon Apr 4 2005 Petr Chardin <petr at mysql.com>
-
-- old mysqlmanager, mysqlmanagerc and mysqlmanager-pwger renamed into
-  mysqltestmanager, mysqltestmanager and mysqltestmanager-pwgen respectively
-
-* Fri Mar 18 2005 Lenz Grimmer <lenz at mysql.com>
-
-- Disabled RAID in the Max binaries once and for all (it has finally been
-  removed from the source tree)
-
-* Sun Feb 20 2005 Petr Chardin <petr at mysql.com>
-
-- Install MySQL Instance Manager together with mysqld, touch mysqlmanager
-  password file
-
-* Mon Feb 14 2005 Lenz Grimmer <lenz at mysql.com>
-
-- Fixed the compilation comments and moved them into the separate build sections
-  for Max and Standard
-
-* Mon Feb 7 2005 Tomas Ulin <tomas at mysql.com>
-
-- enabled the "Ndbcluster" storage engine for the max binary
-- added extra make install in ndb subdir after Max build to get ndb binaries
-- added packages for ndbcluster storage engine
-
-* Fri Jan 14 2005 Lenz Grimmer <lenz at mysql.com>
-
-- replaced obsoleted "BuildPrereq" with "BuildRequires" instead
-
-* Thu Jan 13 2005 Lenz Grimmer <lenz at mysql.com>
-
-- enabled the "Federated" storage engine for the max binary
-
-* Tue Jan 04 2005 Petr Chardin <petr at mysql.com>
-
-- ISAM and merge storage engines were purged. As well as appropriate
-  tools and manpages (isamchk and isamlog)
-
-* Fri Dec 31 2004 Lenz Grimmer <lenz at mysql.com>
-
-- enabled the "Archive" storage engine for the max binary
-- enabled the "CSV" storage engine for the max binary
-- enabled the "Example" storage engine for the max binary
-
-* Thu Aug 26 2004 Lenz Grimmer <lenz at mysql.com>
-
-- MySQL-Max now requires MySQL-server instead of MySQL (BUG 3860)
-
-* Fri Aug 20 2004 Lenz Grimmer <lenz at mysql.com>
-
-- do not link statically on IA64/AMD64 as these systems do not have
-  a patched glibc installed
-
-* Tue Aug 10 2004 Lenz Grimmer <lenz at mysql.com>
-
-- Added libmygcc.a to the devel subpackage (required to link applications
-  against the the embedded server libmysqld.a) (BUG 4921)
-
-* Mon Aug 09 2004 Lenz Grimmer <lenz at mysql.com>
-
-- Added EXCEPTIONS-CLIENT to the "devel" package
-
-* Thu Jul 29 2004 Lenz Grimmer <lenz at mysql.com>
-
-- disabled OpenSSL in the Max binaries again (the RPM packages were the
-  only exception to this anyway) (BUG 1043)
-
-* Wed Jun 30 2004 Lenz Grimmer <lenz at mysql.com>
-
-- fixed server postinstall (mysql_install_db was called with the wrong
-  parameter)
-
-* Thu Jun 24 2004 Lenz Grimmer <lenz at mysql.com>
-
-- added mysql_tzinfo_to_sql to the server subpackage
-- run "make clean" instead of "make distclean"
-
-* Mon Apr 05 2004 Lenz Grimmer <lenz at mysql.com>
-
-- added ncurses-devel to the build prerequisites (BUG 3377)
-
-* Thu Feb 12 2004 Lenz Grimmer <lenz at mysql.com>
-
-- when using gcc, _always_ use CXX=gcc
-- replaced Copyright with License field (Copyright is obsolete)
-
-* Tue Feb 03 2004 Lenz Grimmer <lenz at mysql.com>
-
-- added myisam_ftdump to the Server package
-
-* Tue Jan 13 2004 Lenz Grimmer <lenz at mysql.com>
-
-- link the mysql client against libreadline instead of libedit (BUG 2289)
-
-* Mon Dec 22 2003 Lenz Grimmer <lenz at mysql.com>
-
-- marked /etc/logrotate.d/mysql as a config file (BUG 2156)
-
-* Sat Dec 13 2003 Lenz Grimmer <lenz at mysql.com>
-
-- fixed file permissions (BUG 1672)
-
-* Thu Dec 11 2003 Lenz Grimmer <lenz at mysql.com>
-
-- made testing for gcc3 a bit more robust
-
-* Fri Dec 05 2003 Lenz Grimmer <lenz at mysql.com>
-
-- added missing file mysql_create_system_tables to the server subpackage
-
-* Fri Nov 21 2003 Lenz Grimmer <lenz at mysql.com>
-
-- removed dependency on MySQL-client from the MySQL-devel subpackage
-  as it is not really required. (BUG 1610)
-
-* Fri Aug 29 2003 Lenz Grimmer <lenz at mysql.com>
-
-- Fixed BUG 1162 (removed macro names from the changelog)
-- Really fixed BUG 998 (disable the checking for installed but
-  unpackaged files)
-
-* Tue Aug 05 2003 Lenz Grimmer <lenz at mysql.com>
-
-- Fixed BUG 959 (libmysqld not being compiled properly)
-- Fixed BUG 998 (RPM build errors): added missing files to the
-  distribution (mysql_fix_extensions, mysql_tableinfo, mysqldumpslow,
-  mysql_fix_privilege_tables.1), removed "-n" from install section.
-
-* Wed Jul 09 2003 Lenz Grimmer <lenz at mysql.com>
-
-- removed the GIF Icon (file was not included in the sources anyway)
-- removed unused variable shared_lib_version
-- do not run automake before building the standard binary
-  (should not be necessary)
-- add server suffix '-standard' to standard binary (to be in line
-  with the binary tarball distributions)
-- Use more RPM macros (_exec_prefix, _sbindir, _libdir, _sysconfdir,
-  _datadir, _includedir) throughout the spec file.
-- allow overriding CC and CXX (required when building with other compilers)
-
-* Fri May 16 2003 Lenz Grimmer <lenz at mysql.com>
-
-- re-enabled RAID again
-
-* Wed Apr 30 2003 Lenz Grimmer <lenz at mysql.com>
-
-- disabled MyISAM RAID (--with-raid) - it throws an assertion which
-  needs to be investigated first.
-
-* Mon Mar 10 2003 Lenz Grimmer <lenz at mysql.com>
-
-- added missing file mysql_secure_installation to server subpackage
-  (BUG 141)
-
-* Tue Feb 11 2003 Lenz Grimmer <lenz at mysql.com>
-
-- re-added missing pre- and post(un)install scripts to server subpackage
-- added config file /etc/my.cnf to the file list (just for completeness)
-- make sure to create the datadir with 755 permissions
-
-* Mon Jan 27 2003 Lenz Grimmer <lenz at mysql.com>
-
-- removed unused CC and CXX variables
-- CFLAGS and CXXFLAGS should honor RPM_OPT_FLAGS
-
-* Fri Jan 24 2003 Lenz Grimmer <lenz at mysql.com>
-
-- renamed package "MySQL" to "MySQL-server"
-- fixed Copyright tag
-- added mysql_waitpid to client subpackage (required for mysql-test-run)
-
-* Wed Nov 27 2002 Lenz Grimmer <lenz at mysql.com>
-
-- moved init script from /etc/rc.d/init.d to /etc/init.d (the majority of
-  Linux distributions now support this scheme as proposed by the LSB either
-  directly or via a compatibility symlink)
-- Use new "restart" init script action instead of starting and stopping
-  separately
-- Be more flexible in activating the automatic bootup - use insserv (on
-  older SuSE versions) or chkconfig (Red Hat, newer SuSE versions and
-  others) to create the respective symlinks
-
-* Wed Sep 25 2002 Lenz Grimmer <lenz at mysql.com>
-
-- MySQL-Max now requires MySQL >= 4.0 to avoid version mismatches
-  (mixing 3.23 and 4.0 packages)
-
-* Fri Aug 09 2002 Lenz Grimmer <lenz at mysql.com>
-
-- Turn off OpenSSL in MySQL-Max for now until it works properly again
-- enable RAID for the Max binary instead
-- added compatibility link: safe_mysqld -> mysqld_safe to ease the
-  transition from 3.23
-
-* Thu Jul 18 2002 Lenz Grimmer <lenz at mysql.com>
-
-- Reworked the build steps a little bit: the Max binary is supposed
-  to include OpenSSL, which cannot be linked statically, thus trying
-  to statically link against a special glibc is futile anyway
-- because of this, it is not required to make yet another build run
-  just to compile the shared libs (saves a lot of time)
-- updated package description of the Max subpackage
-- clean up the BuildRoot directory afterwards
-
-* Mon Jul 15 2002 Lenz Grimmer <lenz at mysql.com>
-
-- Updated Packager information
-- Fixed the build options: the regular package is supposed to
-  include InnoDB and linked statically, while the Max package
-  should include BDB and SSL support
-
-* Fri May 03 2002 Lenz Grimmer <lenz at mysql.com>
-
-- Use more RPM macros (e.g. infodir, mandir) to make the spec
-  file more portable
-- reorganized the installation of documentation files: let RPM
-  take care of this
-- reorganized the file list: actually install man pages along
-  with the binaries of the respective subpackage
-- do not include libmysqld.a in the devel subpackage as well, if we
-  have a special "embedded" subpackage
-- reworked the package descriptions
-
-* Mon Oct  8 2001 Monty
-
-- Added embedded server as a separate RPM
-
-* Fri Apr 13 2001 Monty
-
-- Added mysqld-max to the distribution
-
-* Tue Jan 2  2001  Monty
-
-- Added mysql-test to the bench package
-
-* Fri Aug 18 2000 Tim Smith <tim at mysql.com>
-
-- Added separate libmysql_r directory; now both a threaded
-  and non-threaded library is shipped.
-
-* Tue Sep 28 1999 David Axmark <davida at mysql.com>
-
-- Added the support-files/my-example.cnf to the docs directory.
-
-- Removed devel dependency on base since it is about client
-  development.
-
-* Wed Sep 8 1999 David Axmark <davida at mysql.com>
-
-- Cleaned up some for 3.23.
-
-* Thu Jul 1 1999 David Axmark <davida at mysql.com>
-
-- Added support for shared libraries in a separate sub
-  package. Original fix by David Fox (dsfox at cogsci.ucsd.edu)
-
-- The --enable-assembler switch is now automatically disables on
-  platforms there assembler code is unavailable. This should allow
-  building this RPM on non i386 systems.
-
-* Mon Feb 22 1999 David Axmark <david at detron.se>
-
-- Removed unportable cc switches from the spec file. The defaults can
-  now be overridden with environment variables. This feature is used
-  to compile the official RPM with optimal (but compiler version
-  specific) switches.
-
-- Removed the repetitive description parts for the sub rpms. Maybe add
-  again if RPM gets a multiline macro capability.
-
-- Added support for a pt_BR translation. Translation contributed by
-  Jorge Godoy <jorge at bestway.com.br>.
-
-* Wed Nov 4 1998 David Axmark <david at detron.se>
-
-- A lot of changes in all the rpm and install scripts. This may even
-  be a working RPM :-)
-
-* Sun Aug 16 1998 David Axmark <david at detron.se>
-
-- A developers changelog for MySQL is available in the source RPM. And
-  there is a history of major user visible changed in the Reference
-  Manual.  Only RPM specific changes will be documented here.
diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh
index a19f09f..e23b837 100644
--- a/support-files/mysql.server.sh
+++ b/support-files/mysql.server.sh
@@ -146,6 +146,9 @@ parse_server_arguments() {
       --datadir=*)  datadir=`echo "$arg" | sed -e 's/^[^=]*=//'`
 		    datadir_set=1
 	;;
+      --log-basename=*|--hostname=*|--loose-log-basename=*)
+        mysqld_pid_file_path=`echo "$arg.pid" | sed -e 's/^[^=]*=//'`
+	;;
       --pid-file=*) mysqld_pid_file_path=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
       --service-startup-timeout=*) service_startup_timeout=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
     esac
diff --git a/support-files/rpm/server-postin.sh b/support-files/rpm/server-postin.sh
index 91885f7..cd2aec4 100644
--- a/support-files/rpm/server-postin.sh
+++ b/support-files/rpm/server-postin.sh
@@ -1,6 +1,10 @@
 
 # Make MySQL start/shutdown automatically when the machine does it.
 if [ $1 = 1 ] ; then
+  if [ -x /usr/bin/systemctl ] ; then
+          /usr/bin/systemctl daemon-reload >/dev/null 2>&1
+  fi
+
   if [ -x /sbin/chkconfig ] ; then
           /sbin/chkconfig --add mysql
   fi
@@ -51,30 +55,31 @@ fi
 SETARGETDIR=/etc/selinux/targeted/src/policy
 SEDOMPROG=$SETARGETDIR/domains/program
 SECONPROG=$SETARGETDIR/file_contexts/program
-if [ -f /etc/redhat-release ] \
-   && grep -q "Red Hat Enterprise Linux .. release 4" /etc/redhat-release \
-   || grep -q "CentOS release 4" /etc/redhat-release ; then
-   echo
-   echo
-   echo 'Notes regarding SELinux on this platform:'
-   echo '========================================='
-   echo
-   echo 'The default policy might cause server startup to fail because it is '
-   echo 'not allowed to access critical files. In this case, please update '
-   echo 'your installation. '
-   echo
-   echo 'The default policy might also cause inavailability of SSL related '
-   echo 'features because the server is not allowed to access /dev/random '
-   echo 'and /dev/urandom. If this is a problem, please do the following: '
-   echo 
-   echo '  1) install selinux-policy-targeted-sources from your OS vendor'
-   echo '  2) add the following two lines to '$SEDOMPROG/mysqld.te':'
-   echo '       allow mysqld_t random_device_t:chr_file read;'
-   echo '       allow mysqld_t urandom_device_t:chr_file read;'
-   echo '  3) cd to '$SETARGETDIR' and issue the following command:'
-   echo '       make load'
-   echo
-   echo
+if [ -f /etc/redhat-release ] ; then 
+   if grep '\(Red Hat Enterprise Linux ..\|CentOS\) release 4' \
+     /etc/redhat-release >/dev/null 2>&1; then
+     echo
+     echo
+     echo 'Notes regarding SELinux on this platform:'
+     echo '========================================='
+     echo
+     echo 'The default policy might cause server startup to fail because it is '
+     echo 'not allowed to access critical files. In this case, please update '
+     echo 'your installation. '
+     echo
+     echo 'The default policy might also cause inavailability of SSL related '
+     echo 'features because the server is not allowed to access /dev/random '
+     echo 'and /dev/urandom. If this is a problem, please do the following: '
+     echo 
+     echo '  1) install selinux-policy-targeted-sources from your OS vendor'
+     echo '  2) add the following two lines to '$SEDOMPROG/mysqld.te':'
+     echo '       allow mysqld_t random_device_t:chr_file read;'
+     echo '       allow mysqld_t urandom_device_t:chr_file read;'
+     echo '  3) cd to '$SETARGETDIR' and issue the following command:'
+     echo '       make load'
+     echo
+     echo
+  fi
 fi
 
 if [ -x sbin/restorecon ] ; then
diff --git a/support-files/rpm/server-postun.sh b/support-files/rpm/server-postun.sh
index dcf6717..412c6f4 100644
--- a/support-files/rpm/server-postun.sh
+++ b/support-files/rpm/server-postun.sh
@@ -6,3 +6,10 @@ if [ $1 -ge 1 ]; then
     fi
   fi
 fi
+
+if [ $1 = 0 ] ; then
+  if [ -x /usr/bin/systemctl ] ; then
+    /usr/bin/systemctl daemon-reload > /dev/null 2>&1
+  fi
+fi
+
diff --git a/vio/viosslfactories.c b/vio/viosslfactories.c
index 22645b1..41c1dbb 100644
--- a/vio/viosslfactories.c
+++ b/vio/viosslfactories.c
@@ -1,4 +1,5 @@
-/* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+/* Copyright (c) 2000, 2015, Oracle and/or its affiliates.
+   Copyright (c) 2011, 2015, MariaDB
 
    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
@@ -173,6 +174,7 @@ new_VioSSLFd(const char *key_file, const char *cert_file,
 {
   DH *dh;
   struct st_VioSSLFd *ssl_fd;
+  long ssl_ctx_options= SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3;
   DBUG_ENTER("new_VioSSLFd");
   DBUG_PRINT("enter",
              ("key_file: '%s'  cert_file: '%s'  ca_file: '%s'  ca_path: '%s'  "
@@ -200,7 +202,7 @@ new_VioSSLFd(const char *key_file, const char *cert_file,
     DBUG_RETURN(0);
   }
 
-  SSL_CTX_set_options(ssl_fd->ssl_context, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
+  SSL_CTX_set_options(ssl_fd->ssl_context, ssl_ctx_options);
 
   /*
     Set the ciphers that can be used
diff --git a/win/packaging/heidisql.cmake b/win/packaging/heidisql.cmake
index e429907..f9334f0 100644
--- a/win/packaging/heidisql.cmake
+++ b/win/packaging/heidisql.cmake
@@ -1,4 +1,4 @@
-SET(HEIDISQL_BASE_NAME "HeidiSQL_8.3_Portable")
+SET(HEIDISQL_BASE_NAME "HeidiSQL_9.1_Portable")
 SET(HEIDISQL_ZIP "${HEIDISQL_BASE_NAME}.zip")
 SET(HEIDISQL_URL "http://www.heidisql.com/downloads/releases/${HEIDISQL_ZIP}")
 SET(HEIDISQL_DOWNLOAD_DIR ${THIRD_PARTY_DOWNLOAD_LOCATION}/${HEIDISQL_BASE_NAME})
diff --git a/win/packaging/heidisql.wxi.in b/win/packaging/heidisql.wxi.in
index 1e6e3d5..6b11769 100644
--- a/win/packaging/heidisql.wxi.in
+++ b/win/packaging/heidisql.wxi.in
@@ -23,9 +23,10 @@
       uninstallation. We use RemoveFile to force delete in any case.
     -->
     <RemoveFile Id="Remove_HeidiSQL_exe" Name="heidisql.exe" On="uninstall" />
+    <!-- remove readme.txt too, it's not included in HeidiSQL-9.1-Portable.zip -->
+    <RemoveFile Id="Remove_readme_txt" Name="readme.txt" On="uninstall" />
 
     <File Id="heidisql.license.txt" Name="license.txt" Source="${HEIDISQL_DOWNLOAD_DIR}\license.txt" />
-    <File Id="heidisql.readme.txt" Name="readme.txt" Source="${HEIDISQL_DOWNLOAD_DIR}\readme.txt" />
     </Component>
     <Component Id="component.HeidiSQL_MenuShortcut" Guid="*" Win64="no">
       <RegistryValue  Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\Uninstall" Name="shortcuts.heidisql" Value="1" Type="string" KeyPath="yes"  />
@@ -34,6 +35,26 @@
     <Component Id="component.HeidiSQL_libmysql.dll" Guid="*" Win64="no">
       <File Id="heidisql.libmysql.dll" Name="libmysql.dll" Source="${HEIDISQL_DOWNLOAD_DIR}\libmysql.dll" />
     </Component>
+
+    <Component Id="component.HeidiSQL_libeay32.dll" Guid="*" Win64="no">
+      <File Id="heidisql.libeay32.dll" Name="libeay32.dll" Source="${HEIDISQL_DOWNLOAD_DIR}\libeay32.dll" />
+    </Component>
+    <Component Id="component.HeidiSQL_libpq.dll" Guid="*" Win64="no">
+      <File Id="heidisql.libpq.dll" Name="libpq.dll" Source="${HEIDISQL_DOWNLOAD_DIR}\libpq.dll" />
+    </Component>
+    <Component Id="component.HeidiSQL_ssleay32.dll" Guid="*" Win64="no">
+      <File Id="heidisql.ssleay32.dll" Name="ssleay32.dll" Source="${HEIDISQL_DOWNLOAD_DIR}\ssleay32.dll" />
+    </Component>
+    <Component Id="component.HeidiSQL_libintl.dll" Guid="*" Win64="no">
+      <File Id="heidisql.libintl.dll" Name="libintl.dll" Source="${HEIDISQL_DOWNLOAD_DIR}\libintl.dll" />
+    </Component>
+
+    <Directory Id="D.HeidiSQL.plugins" Name="plugins">
+      <Component Id="component.HeidiSQL_dialog.dll" Guid="*" Win64="no">
+        <File Id="heidisql.dialog.dll" Name="dialog.dll" Source="${HEIDISQL_DOWNLOAD_DIR}\plugins\dialog.dll" />
+      </Component>
+    </Directory>
+
     <Component Id="component.HeidiSQL_CleanupSettings" Guid="*" Win64="no">
      <Condition>HEIDISQLINSTALLED</Condition>
      <RegistryValue  Root="HKCU" Key="Software\@CPACK_WIX_PACKAGE_NAME@\UninstallCleanupHeidiSQLSettings" Name="cleanup.heidisql" Value="1" Type="string" KeyPath="yes"  />
@@ -46,6 +67,11 @@
   <ComponentRef Id="component.HeidiSQL"/>
   <ComponentRef Id="component.HeidiSQL_MenuShortcut"/>
   <ComponentRef Id="component.HeidiSQL_libmysql.dll"/>
+  <ComponentRef Id="component.HeidiSQL_libeay32.dll" />
+  <ComponentRef Id="component.HeidiSQL_libpq.dll" />
+  <ComponentRef Id="component.HeidiSQL_ssleay32.dll" />
+  <ComponentRef Id="component.HeidiSQL_libintl.dll" />
+  <ComponentRef Id="component.HeidiSQL_dialog.dll" />
   <ComponentRef Id="component.HeidiSQL_CleanupSettings"/>
 </ComponentGroup>
 </Include>

-- 
Alioth's hooks/post-receive on /srv/git.debian.org/git/pkg-mysql/mariadb-5.5.git



More information about the Pkg-mysql-commits mailing list